phpcms v9二次开发笔记

简介:

一、目录结构

根目录
| – 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\templates\default下创建一个您的模块目录来放置前台模板,"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\templates\default下。其中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 {}

目录
相关文章
|
Linux 开发工具 数据安全/隐私保护
Linux:文件权限管理小案例1:警察和土匪游戏
Linux:文件权限管理小案例1:警察和土匪游戏
540 0
Linux:文件权限管理小案例1:警察和土匪游戏
|
监控 物联网 开发者
NB-IoT 连接移动 OneNet 云平台产品及设备添加 | 学习笔记
快速学习 NB-IoT 连接移动 OneNet 云平台产品及设备添加
NB-IoT 连接移动 OneNet 云平台产品及设备添加 | 学习笔记
|
人工智能 安全 BI
L2-038 病毒溯源 (25 分)(dfs)
L2-038 病毒溯源 (25 分)(dfs)
560 0
L2-038 病毒溯源 (25 分)(dfs)
|
弹性计算 安全 网络协议
云服务器ECS安全组实践(三)Tips篇
在使用安全组的过程中,一个常见的错误是将所有的云服务器放置在一个安全组之中,这样虽然减少了初期配置的工作量,但是长期来看将会使得您的业务系统网络交互变得复杂和不可控,在执行安全组变更的时候没办法明确的知道添加和删除规则的影响范围。
32512 69
|
弹性计算 Ubuntu Unix
安装 NextCloud 网盘程序| 学习笔记
快速学习安装 NextCloud 网盘程序。
安装 NextCloud 网盘程序| 学习笔记
|
运维 Cloud Native 安全
我的云效评测体验(含使用视频)
我的云效评测体验(含使用视频)
66613 7
|
应用服务中间件 数据安全/隐私保护 nginx
Caddy Server使用进阶
Caddy Server使用进阶
1037 0
|
API 开发工具 Android开发
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
1294 0
Installed Build Tools revision 31.0.0 is corrupted. Remove and install again using the SDK Manager.
|
Java 调度 Spring
调度介绍 - Quartz是怎么调起来的
Quartz调度核心类QuartzSchedulerThread,是一个线程。在线程启动后,通过while循环不断去触发作业的执行。ps:源码版本2.3.2,
调度介绍 - Quartz是怎么调起来的
|
存储 BI 调度
xxl-job admin的使用
xxl-job admin的使用
1368 0