PHPCMS V9二次开发简明手册

admin 发表于 [PHP] 分类,标签: 二次开发 phpcms
0

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.   运行和调试。

 

发表我的评论