开发者社区> 飞鸿影~> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

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 {}

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
入坑 docsify,一款神奇的文档生成利器!(3)
入坑 docsify,一款神奇的文档生成利器!
0 0
入坑 docsify,一款神奇的文档生成利器!(1)
入坑 docsify,一款神奇的文档生成利器!
0 0
Magento开发的特点有哪些?
这个现代化的,模块化的架构降低了复杂性和维护网站的成本。他的升级也很简单,因为他是开源的,这意味着你可以将创新性的功能整合进去。通过magento电商平台来实现每季更高的销售和更高的效率。
1265 0
Magento开发有哪些功能呢?
电子商务系统的数据是企业的商业机密。 Magento支持SSL加密传输前台和后台数据并且支持后台权限的分级控制,确保您的数据万无一失。
1416 0
Laravel 开发笔记
Laravel 4.2  鉴权使用加盐密码 刚开始接触laravel,发现laravel默认的鉴权模块密码并未加盐处理(密码由password_hash方法创建)。所以自己琢磨着对密码加盐。像下面这样校验密码(密码在最初创建时,也以md5(salt .
793 0
EcShop二次开发学习方法
EcShop二次开发学习方法  (2012-03-08 11:10:08) 转载▼ 标签:  京东   公用函数库   二次开发   sql语言   数据库设计   杂谈 分类: ecshop     近年来,随着互联网的发展,电子商务也跟着一起成长,B2B,C2C,B2C的电子商务模式也不断的成熟。
1029 0
php开发工具
phpDesigner教程:http://hi.baidu.com/gofight/item/99d2b3df521670fbca0c3965 php的ECSHOP 最大的开源网店系统-商派旗下
537 0
+关注
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Became OpenSource Project——Weex开源经验谈
立即下载
PHP与APM_技术内幕和最佳实践
立即下载
低代码开发师(初级)实战教程
立即下载