zoukankan      html  css  js  c++  java
  • phpcms v9二次开发笔记

    phpcms是基于MVC结构的。

    安装:
    下载phpcms_v9.5.9_UTF8.zip;新建目录phpcms,将压缩包里install_package目录下所有文件复制到phpcms目录。浏览器输入类似于http://localhost/phpcms便可以进入安装过程了。接下来安照步骤走下去即可。

    一、目录结构

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

    二、路由

    单入口,模块访问方法[示例]:
    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传递参数形式相同

    路由配置:
    phpcms/caches/configs/route.php
    默认是

    return array(
    	'default'=>array('m'=>'content', 'c'=>'index', 'a'=>'init'),
    );
    

    即定义了m,c,a以及默认会访问content模块的index控制器的init方法

    三、模块

    phpcms v9框架中的模块,位于phpcms/modules目录中 每一个目录称之为一个模块。即url访问中的m。

    如果要创建一个模块,只要在 phpcms/modules 目录下创建文件夹并放入你的控制器类就可以了。

    例如我要开发一个叫做test的模块,那么首先在 phpcms/modules 目录下创建文件夹,并将其命名为test。

    test模块的标准结构通常是这样的。

    classes 为模块类库包
    functions 为模块函数库包
    templates 为模块模板包。这里通常放置含有权限控制的控制器模板,也就是后台模板。

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

    四、控制器

    位于phpcms/modules/模块/目录下面。
    类名就是文件名.php,例如一个名为mytest的控制器,那么他的命名为mytest.php即可。
    控制器类的类名称与控制器文件名必须相同。
    控制器类默认继承系统的函数库,可以直接使用。

    phpcms还有模块体系,即控制器属于模块。

    五、模型

    数据库模型位于: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.$this->db_setting = 'default'为数据库配置文件中配置数据库链接池名称,默认为default,一般情况下不需要修改。
    3.$this->table_name = 'test'为数据表名称

    这样我们就建立好了一个数据库模型类。
    在模块的控制器中使用

    $this->db = pc_base::load_model('test_model');
    

    来加载。

    六、视图

    视图位于phpcms emplatesdefault下。其中default表示默认主题目录。default下的视图文件夹与模块文件夹一一对应。

    七、配置

    配置文件位置:caches/configs/,其中:

    database.php数据库
    route.php路由
    system.php系统配置

    八、系统类库及函数调用

    1、系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
    2、系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php

    使用pc_base::load_sys_class()加载类
    使用pc_base::load_sys_func()加载函数
    使用pc_base::load_model()加载数据模型
    使用pc_base::load_config()加载配置文件

    我们可以在类的前面加载需要的类库。例如:

    pc_base::load_sys_class('model', '', 0);
    class test_model extends model {}
    

    九、数据库操作

    参照phpcms/libs/classes/model.class.php中方法

    参考
    Phpcms官网:http://www.phpcms.cn/
    PHPCMS V9帮助中心:http://v9.help.phpcms.cn/html/dev/

  • 相关阅读:
    Oracle函数如何把符串装换为小写的格式
    Oralce中的synonym同义词
    JS中getYear()的兼容问题
    How to do SSH Tunneling (Port Forwarding)
    所谓深度链接(Deep linking)
    upload size of asp.net
    发一个自动刷网站PV流量的小工具
    解决Visual Studio 2008 下,打开.dbml(LINQ) 文件时,提示"The operation could not be completed." 的问题。
    在资源管理器中使鼠标右键增加一个命令,运行cmd,同时使得当前路径为资源管理器当前的目录
    使用SQL语句获取Sql Server数据库的版本
  • 原文地址:https://www.cnblogs.com/52fhy/p/4930266.html
Copyright © 2011-2022 走看看