最近,由于phpcms官网上的phpcms_v9程序不能下载,很多小伙伴寻求帮助,为此,将​phpcms_v9简体中文​UTF8​打包上传服务器,供大家下载使用。
最近,由于phpcms官网上的phpcms_v9程序不能下载,很多小伙伴寻求php中文网的帮助,为此,将phpcms_v9简体中文UTF8打包上传服务器,供大家下载使用。

PHPCMS v9介绍

PHPCMS V9(简称V9)采用PHP5+MYSQL做为技术基础进行开发。V9采用OOP(面向对象)方式进行基础运行框架搭建。模块化开发方式做为功能开发形式。框架易于功能扩展,代码维护,优秀的二次开发能力,可满足所有网站的应用需求。
5年开发经验的优秀团队,在掌握了丰富的WEB开发经验和CMS产品开发经验的同时,勇于创新追求完美的设计理念,为全球多达10万网站提供助力,并被更多的政府机构、教育机构、事业单位、商业企业、个人站长所认可。
V9在保留2008版的特点的同时,对新版本作出重大的创新,为此我们做出了巨大的努力,希望能为更多的站长提供优质的建站系统!
目前已提供文章、图片、下载等内容模型,在此基础上可非常方便的扩展出信息、房产、交友、点评等功能。已有的模块有:会员、在线充值、全站搜索、评论、专题、新闻心情、短消息、投票、友情链接、公告、附件管理、数据源模块、广告、采集、表单向导、手机门户等模块。

文件:n459.com/file/25127180-477437797

以下内容无关:

-------------------------------------------分割线---------------------------------------------

文件目录结构
根目录
| – api 接口文件目录
| – caches 缓存文件目录
| – configs 系统配置文件目录
| – caches_* 系统缓存目录
| – phpcms phpcms框架主目录
| – languages 框架语言包目录
| – libs 框架主类库、主函数库目录
| – model 框架数据库模型目录
| – modules 框架模块目录
| – templates 框架系统模板目录
| – phpsso_server phpsso主目录
| – statics 系统附件包
| – css 系统css包
| – images 系统图片包
| – js 系统js包
| – uploadfile 网站附件目录
| – admin.php 后台管理入口
| – index.php 程序主入口
| – crossdomain.xml FLASH跨域传输文件
| – robots.txt 搜索引擎蜘蛛限制配置文件
| – favicon.ico 系统icon图标

URL访问
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。
参数名称 描述 位置 备注
m 模型/模块名称 phpcms/modules中模块目录名称 必须
c 控制器名称 phpcms/modules/模块/.php 文件名称 必须
a 事件名称 phpcms/modules/模块/
.php 文件中方法名称

模块访问方法[示例]:
http://yourdomain.com/index.php?m=content&c=index&a=show&id=1
其中
m = content 为模型/模块名称 位于phpcms/modules/content
c = index 为控制器名称 位于phpcms/modules/content/index.php
a = show 为方法名称 位于phpcms/modules/content/index.php 中show()方法
id = 1 为其他参数 与正常get传递参数形式相同

如果我们访问您的域名 如:
http://www.yourdomain.com/index.php
phpcms默认路由会定位到content模块的index控制器中的init操作,因为系统在没有指定模块和控制器的时候,会执行默认的模块和操作。
因此下面的URL的结果是相同的:系统还支持URL路由的功能,这些都能够带来其他的url访问效果。
http://www.yourdomain.com/index.php?m=content&c=index&a=init

系统类库与函数调用
1.系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php
2.系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
系统类库调用
pc_base::load_sys_class(‘类名’,‘扩展地址’,‘是否初始化’);
示例:
$http = pc_base::load_sys_class(‘http’); //实例化http类
pc_base::load_sys_class(‘format’, ‘’, 0); //调用form类,不进行实例化操作
系统函数库调用
pc_base::load_sys_func(‘函数库名’);
示例:
pc_base::load_sys_func(‘mail’); 调用mail函数包

模块
phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块。即url访问中的m
示例:
http://www.yourname.com/index.php?m=content
那么您访问的就是phpcms/modules/content 这个模块。
如果创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了

控制器
phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。类名成就是文件名+.php,例如一个名为mytest的控制器,那么他的命名为mytest.php即可。
控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同
如果您创建了一个mytest.php在test模块下,那么我们在浏览器里面输入URL:
http://www.yourname.com/index.php?m=test&c=mytest

下面是一个控制器类的基本格式,在构建模块部分会具体讲解

<?php defined('IN_PHPCMS') or exit('No permission resources.'); class mytest { function __construct() { } public function init() { echo 'hellp phpcms v9,my name is defalut action'; } } ?>

如果你添加的控制器类继承了其他的类,你要小心你的方法名不要和那个类中的方法名一样了,否则你的方法会覆盖原有的。

命名规范
PHPCMS其自身的一定规范。下面是使用PHPCMS做二次开发中应该遵循的命名规范:
类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php。
函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php。
类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php。
数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。

配置文件调用
配置文件配置在caches/configs/目录下。
配置文件调用:使用 load_config方法
$upload_url = pc_base::load_config(‘配置文件’,‘要获取的配置键’,‘默认配置。当获取配置项目失败时该值发生作用’,‘是否强制重新加载’);
示例:
调用系统配置中的附件路径
$upload_url = pc_base::load_config(‘system’,‘upload_url’);

二次开发技巧
1.如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过"MY_*.php"的形式进行二次开发。
例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php"
MY_index.php代码如下

<?php class MY_index extends index{ function __construct() { parent::__construct(); } //……your code } ?>

这样当您通过url访问index控制器的时候,系统会默认指向MY_index.php 并且原文件的方法将被继承,可以直接使用。

数据库配置
数据库配置文件位置:caches/configs/database.php
我们打开这个配置文件,加入我们的数据库配置信息。数据库配置信息为二维数组结构,默认为default,可以根据default结构配置多个数据库链接(如:extended_1)

<?php return array ( 'default' => array ( 'hostname' => 'localhost', 'database' => 'phpcms', 'username' => 'admin', 'password' => 'admin', 'tablepre' => 'v9_', 'charset' => 'gbk', 'type' => 'mysql', 'debug' => true, 'pconnect' => 0, 'autoconnect' => 0 ), /* 以下格外添加*/ 'extended_1' => array ( 'hostname' => '10.10.125.2', 'database' => 'phpcms', 'username' => 'admin', 'password' => 'admin', 'tablepre' => 'v9_', 'charset' => 'gbk', 'type' => 'mysql', 'debug' => true, 'pconnect' => 0, 'autoconnect' => 0 ), ); ?>

根据您的数据库连接信息修改上面的配置内容,修改完成后,保存该数据库配置文件。

路由配置
路由配置文件位置:caches/configs/route.php
我们打开这个配置文件,加入我们的路由配置信息。路由配置信息为二维数组结构,默认为default。
路由配置文件内容是这样的:

<?php return array( 'default'=>array('m'=>'admin', 'c'=>'index', 'a'=>'init'), 'test.youname.com'=>array('m'=>'test', 'c'=>'index', 'a'=>'init'), ); ?>

data为一个二维数组,可设置POST和GET的默认参数。POST和GET分别对应PHP中的 P O S T 和 _POST和 P​OST和_GET两个超全局变量。
如下面的例子,在程序中您可以使用$_POST[‘catid’]来得到data下面POST中的数组的值。
data中的所设置的参数等级比较低。如果外部程序有提交相同的名字的变量,将会覆盖配置文件中所设置的值。
如:

<?php return array( 'default'=>array( 'm'=>'phpcms', 'c'=>'index', 'a'=>'init', 'data'=>array( 'POST'=>array( 'catid'=>1 ), 'GET'=>array( 'contentid'=>1 ) ) ) ) ?>

外部程序POST了一个变量catid=2那么你在程序中使用$_POST取到的值是2,而不是配置文件中所设置的1。

系统配置
系统配置文件位置:caches/configs/system.php
具体详见该文件注释

构建模块
开发流程
为你的phpcms创建一个模块的一般开发流程是:

  1. 创建数据库和数据表;(没有数据库操作可略过)
  2. 创建模块目录
  3. 创建模块控制器类;
  4. 创建模块类与模块函数;(如果只是简单的模块可以不必创建)
  5. 创建模板文件;
  6. 运行和调试。

创建模块
phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块
如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。
例如我要开发一个叫做test的模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为test。
test文件夹下通常有三个文件夹:
classes 为模块类库包
functions 为模块函数库包
templates 为模块模板包 这里通常放置含有权限控制的控制器模板,也就是后台模板。

如果您的模板有单独的前台模板,你需要在phpcms\templates\default下创建一个您的模块目录来放置前台模板
"default"为你的风格包名称,我们默认适用default
这里我们在default文件夹下创建名为test的文件夹存放模板

创建模块控制器
在创建模块中我们已经创建好了一个名为“test”的模块,接下来我们继续为这个模块添加两个控制器类。
phpcms v9的控制器就是模块的类文件,位于phpcms/modules/模块/目录下面。
类名成就是文件名+.php,例如一个名为mytest的控制器,那么他的命名为mytest.php即可。
控制器类默认继承系统的函数库,可以直接使用。控制器类的类名称与控制器文件名必须相同。

控制器类文件包含两种形式:
1.mytest.php 控制器,前台浏览(不含权限控制)

<?php /* defined('IN_PHPCMS') or exit('No permission resources.'); class mytest { function __construct() { } public function init() { $myvar = 'hello world!'; echo $myvar; } public function mylist() { $myvar = 'hello world!this is a example!'; echo $myvar; } } */ ?>

这个控制器的url访问方法前面已经介绍过了
http://www.yourname.com/index.php?m=test&c=mytest
http://www.yourname.com/index.php?m=test&c=mytest&a=mylist
没有填写 “a” 的情况下,默认调用init方法

2.mytest_admin.php 控制器,后台管理(含权限控制)
后台控制控制器需要加载admin模块下的admin类,并继承该类。
需要注意的是因为你添加的控制器类继承了其他的类,你要小心你控制器的方法名不要和该类中的方法名一样了,否则会造成影响,具体请查看admin类中有哪些方法。

<?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_app_class('admin','admin',0); class mytest_admin extends admin { public function __construct() { } public function init() { $myvar = 'oh,i am phpcmser'; echo $myvar; } } ?>

在控制器中增加模板调用
phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。
1.加载前台模板
前台模板文件在phpcms\templates\default\模块名称 目录中,本示例也就在phpcms\templates\default\test中
加载模板方法如下:
include template(‘test’, ‘mytest’, ‘default’);
其中 test为模块名称 mytest 为模板目录下模板名称,default为风格名称,默认不填为defalut
在上面例子中如果要给mytest.php中init方法加载一个mytest的模板,如下
public function init() {
$var = ‘hello world!’;
include template(‘test’, ‘mytest’, ‘default’);
}
这样我们通过url访问该方法的时候也就加载了对应的模板。
2.加载后台模板
后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates 中
加载模板方法如下:
include $this->admin_tpl(‘mytest_admin_list’);
其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php,注意:后台模板必须以.tpl.php 作为后缀
在上面例子中如果要给mytest_admin.php中init方法加载一个mytest_admin_list的模板,如下
public function init() {
$myvar = ‘oh,i am phpcmser’;
include $this->admin_tpl(‘mytest_admin_list’);
}

创建数据库模型类
数据库模型位于:phpcms/model/ 目录下。
数据模型文件的命名规则建议为数据表名称+’_model.class.php’
如果在我们的创建的模块中我要使用一个数据库"test",首先需要建立一个数据库模型文件,文件名称为’test_model.class.php’
内容如下:

<?php defined('IN_PHPCMS') or exit('No permission resources.'); pc_base::load_sys_class('model', '', 0); class test_model extends model { public function __construct() { $this->db_config = pc_base::load_config('database'); $this->db_setting = 'default'; $this->table_name = 'test'; parent::__construct(); } } ?>

注意:
1.数据库模型类名称必须与文件名称相同;
2. t h i s − > d b s e t t i n g = ′ d e f a u l t ′ 为 数 据 库 配 置 文 件 中 配 置 数 据 库 链 接 池 名 称 , 默 认 为 d e f a u l t , 一 般 情 况 下 不 需 要 修 改 。 3. this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。 3. this−>dbs​etting=′default′为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。3.this->table_name = 'test’为数据表名称

这样我们就建立好了一个数据库模型类。
在模块的控制器中使用
$this->db = pc_base::load_model(‘test_model’);
来加载。
具体如下

<?php /* defined('IN_PHPCMS') or exit('No permission resources.'); class mytest { private $db; function __construct() { $this->db = pc_base::load_model('test_model'); } public function init() { $result = $this->db->select(); var_dump($result); } } */ ?>

其中$this->db中所支持的方法请参照phpcms/libs/classes/model.class.php中方法

phpcms_v9.6.3完整版相关推荐

  1. java web学习项目20套源码完整版

    java web学习项目20套源码完整版 自己收集的各行各业的都有,这一套源码吃遍所有作业项目! 1.BBS论坛系统(jsp+sql) 2.ERP管理系统(jsp+servlet) 3.OA办公自动化 ...

  2. Anaconda中安装Orange3脚本-完整版

    2019独角兽企业重金招聘Python工程师标准>>> #Anaconda中安装Orange3脚本,完整版.包括插件的安装,在脚本中一次完成. sudo apt-get update ...

  3. 图解GPT-2(完整版)!

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 译者:张贤, 哈尔滨工程大学,Datawhale原创作者 干货长文,建议 ...

  4. PyTorch核心贡献者开源书:《使用PyTorch进行深度学习》完整版现已发布!

    来源|新智元 [导读]<使用PyTorch进行深度学习>一书的完整版现已发布!教你如何使用PyTorch创建神经网络和深度学习系统,内含图解与代码,操作易上手. 由Luca Antiga. ...

  5. 甘肃省计算机二级考试题库,2011甘肃省计算机等级考试二级最新考试试题库(完整版)...

    2011甘肃省计算机等级考试二级最新考试试题库(完整版) 1.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是(D) A. 概要设计 B. 详细设计 C. 可行性分析 D. ...

  6. php留言板源码免mysql_PHPMYSQL留言板源码(终极完整版).doc

    PHPMYSQL留言板源码(终极完整版).doc 数据库结构?:(库名:lyb) 表一: admin? 字段: id(int11?) name(varch?vr) passw?ord(varch?vr ...

  7. c语言s开头的函数以及作用,C语言函数大全-s开头-完整版.doc

    C语言函数大全-s开头-完整版 C语言函数大全(s开头) 函数名: sbrk 功能: 改变数据段空间位置 用法: char *sbrk(int incr); 程序例: #include#include ...

  8. 计算机图形学画圆vc代码,计算机图形学实验--完整版-带结果--vc++实现.doc

    计算机图形学实验--完整版-带结果--vc实现 计算机图形学实验报告 信息学院计算机专业 20081060183 周建明 综括: 利用计算机编程语言绘制图形,主要实现以下内容: (1).中点算法生成任 ...

  9. 那些珍贵的「视觉SLAM」课程资料总结(补充版/完整版)

    文章目录 一 前言 二 干货 原文链接: 那些珍贵的「视觉SLAM」课程资料总结(补充版/完整版) 在公众号「3D视觉工坊」后台,回复「SLAM」,获得以下资源的完整下载链接. 一 前言 之前曾经总结 ...

最新文章

  1. python内置方法就是内置函数_python内置函数
  2. LTE MIB 的发送周期
  3. elastic的gc相关
  4. mysql获取当月数据_MySQL中获取天、周、月等数据
  5. 数据查询语言(DQL)
  6. elasticSearch 安装和 head插件使用
  7. Java消息服务~自动分配的消息头
  8. 在VUE项目中使用SCSS,从安装步骤到语法说明,带你快速入门!!
  9. IDEA报错Target Level '1.5' Is Incompatible With Source Level '1.8'
  10. 帆软报表判断传入条件是否为空,根据逗号分隔
  11. websocket 应用实例
  12. 第1章 初始JAVA
  13. springboot传图片到前端之有手就行
  14. 《APP逆向学习》课程介绍和什么是安卓app逆向?
  15. 为RMI实现类Jini的发现机制
  16. requires the ionCube PHP Loader
  17. Spring中把一个bean对象交给Spring容器管理的三种方式
  18. 【陨石坠落的速度是每秒10千米】
  19. ps转手绘课程眼睛绘制--day03学习笔记
  20. 蓝叠安卓模拟器开启开发人员模式 VS ADB连接蓝叠

热门文章

  1. babel源码解析之(@babel/preset-env)
  2. **龙战于野大数据MR原理启动hive查询表分区,表结构,完整流程*
  3. YOLO5实战口罩检测识别(win下 + 环境部署配置 + 口罩YOLO格式数据集+训练好的权重)
  4. xcrun simctl
  5. 用创意点亮生活——魔法师刘谦
  6. python怎样安装词云_在python中怎样安装词云-女性时尚流行美容健康娱乐mv-ida网...
  7. androidx.recyclerview:recyclerview的使用
  8. Jzoj5422 天才绅士少女助手克里斯蒂娜
  9. PHP上传rar获取不到文件,WordPress不让上传.rar格式附件的原因及解决办法
  10. 世界智能驾驶挑战赛圆满落幕,智能科技引领汽车行业创新发展