2012年12月26日星期三

PHPCMS V9二次开发简明手册


PHPCMS V9二次开发简明手册

模型-视图-控制器 (MVC)

现在我们总结MVC的处理过程,首先控制器接收用户的请求,并决定应该调用哪个模型来进行处理,然后模型用业务逻辑来处理用户的请求并返回数据,最后控制器用相应的视图格式化模型返回的数据,并通过表示层呈现给用户。

URL访问

URL参数说明
参数
描述
位置
备注
m
模块目录名
phpcms/modules中模块目录名称
必须
c
控制器名称
phpcms/modules/模块/*.php文件名称(与此文件中的类名称相同)
必须
a
事件名称
phpcms/modules/模块/*.php中的方法名称
默认为init 

系统类库与函数库调用

1.   系统类库位于系统的phpcms/libs/classes目录下面,类库文件名为*.class.php
2.   系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
系统类库调用
$http = pc_base::load_sys_class('http'); //实例化http
pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作
注解:
pc_base::load_sys_class(
'
类库名',
'
类库所处文件夹(相对于网站根目录,默认为: libs/classes)', 是否(1/0)实例化并返回实例
);
系统函数库调用
pc_base::load_sys_func('mail'); //调用mail函数包,即载入mail.func.php文件
注解:
pc_base::load_sys_func('函数库名称');

命名规范

   1.类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php
   2.函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php
   3.类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php
   4.数据模型需要以数据表名称_model.class.php”为形式,类名称与文件名必须相同。

配置文件调用

$upload_url = pc_base::load_config('system','upload_url'); //返回caches/configs/system.php文件中数组的关键字为upload_url的值
注解:
pc_base::load_config(
'配置文件的文件名',
'指定关键字以便返回其对应的元素值,不指定则返回整个数组',
'默认值(默认为空)',
是否(1/0)强制重新加载,默认为false,即调用上次加载的结果
);
对已存在的控制器、类库进行二次开发
在原文件的相同位置创建 MY_原文件名 的文件,其内容一般格式为:
<?php
defined('IN_PHPCMS') or exit('No permission resources.');
class MY_原文件中的类名称 extends原文件中的类名称{
     function __construct() {
       parent::__construct();
     }
    ……your code
}
以上并不是通用格式,具体格式要参照着你要二次开发的原文件来书写。
要注意的是,不需要在二次开发的版本中手动载入你扩展的原文件,PHPCMS框架会自动载入的。

创建模块开发流程

为你的phpcms创建一个模块的一般开发流程是:
1.   创建数据库和数据表(没有数据库操作可略过);
2.   创建模块目录(位于 phpcms/modules/ 目录中,可以通过 index.php?m=模块文件夹名 来访问);
3.   创建模块控制器类(通过 index.php?m=模块文件夹名&c=控制器名 来访问控制器类中的init方法,可以通过指定a参数来指定要访问的类方法)、模块类库包(位于phpcms/modules/模块名/classes / 目录下,在控制器类中用 $var = pc_base :: load_app_class('类库名'); 载入)和模块函数库包(位于phpcms/modules/模块名/functions / 目录下,在控制器类中用pc_base :: load_app_func('函数库名'); 载入
4.   创建模型类(位于 phpcms/model/模块名目录中,并在控制器类中使用 $this->db =pc_base::load_model('模型类名'); 来加载。如果只是简单的模块可以不必创建);
5.   创建模板文件(后台模板放在 phpcms/modules/模块名/templates/ 目录下前台模板放在phpcms/templates/default/模块名目录下);
6.   运行和调试。

没有评论:

发表评论