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

  • 相关阅读:
    POJ 1990 MooFest
    python的unittest測试框架的扩展浅谈
    星云測试- Android应用深度体检专业平台
    HDOJ 1507 Uncle Tom&#39;s Inherited Land*
    产品设计
    Linux网络编程--wireshark分析TCP包头的格式
    java读取中文分词工具(一)
    为datatable添加自增列
    Oracle 自己主动内存管理 SGA、PGA 具体解释
    TCP/IP基础
  • 原文地址:https://www.cnblogs.com/wangjiangze/p/2094630.html
Copyright © 2020-2023  润新知