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

九、数据库操作

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

参考

Phpcms官网:http://www.phpcms.cn/

PHPCMS V9帮助中心:http://v9.help.phpcms.cn/html/dev/

phpcms v9二次开发笔记的更多相关文章

  1. PHPCMS V9二次开发便捷自定义后台入口文件夹

    phpcms v9二次开发便捷自定义后台入口文件夹 最新发布的phpcms v9由于采用了mvc的设计模式,所以它的后台访问地址是固定的,虽然可以通过修改路由配置文件来实现修改,但每次都修改路由配置文 ...

  2. phpcms v9二次开发之模型类的应用(1)

    在<phpcms二次开发之模型类model.class.php>中讲到了模型类的建立方法,接下来我讲一下模型类的应用.      前段时间我基于phpcms v9开发了一个足球网.足球网是 ...

  3. phpcms v9二次开发之模型类的应用(2)

    二.模型操作方法select()--查询语句         //查询级别管理列表信息    public function levellists() { $lelists = $this->l ...

  4. phpcms v9二次开发之数据模型类

    系统模型类:model.class.php数据模型类的位置:/phpcms/libs/classes phpcms v9二次开发中,我们要经常需要对模块的数据表进行查询.添加.修改和删除数据等操作,所 ...

  5. phpcms V9 二次开发------(获取点击数详解)

    关于phpcms V9的点击数的使用应该有不少数是直接调用网上搜索到的代码,但是对于一些想要深入研究开发的人来说,看到网上的代码后更是不解,本人这几天看了看,了解了一些东西,在这里写出来分享一下,首先 ...

  6. PHPCMS V9二次开发]自定义字段模型-文本组

    phpcms v9,我们在做类似于酒店房型等类型的时候,需要用到文本组字段模型,但phpcms并未提供该模型.如下图所示效果: 展示效果如下: 步骤/方法 打开phpcms\modules\conte ...

  7. PHPCMS V9 二次开发常用代码集

    0:调用最新文章,带所在版块 {pc:get sql="SELECT a.title, a.catid, b.catid, b.catname, a.url as turl ,b.url a ...

  8. PHPCMS v9 二次开发_验证码结合Session开发

    本文主要讲解了在V9中使用v9自带验证码并且需要使用session的情况下,多种问题的解决.:).如有问题或者更好的解决办法,希望不吝赐教. 1.前端调用验证码 pc_base::load_sys_c ...

  9. phpcms v9 二次开发 - 自己添加源文件

    一.在根目录添加入口文件, 我现在要在根目录添加一个文件名为test.php 这样一个文件,为了调用系统的公用类和函数,必须加入一下包含文件 test.php代码如下 <?phpdefine(' ...

随机推荐

  1. grep 和 wc命令 --- !管道命令!

    Linux系统中grep命令是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹 配的行打印出来.grep全称是Global Regular Expr ession Print,表示全局正则表 ...

  2. [原创]PCB知识补充

    近期又要使用Altium进行PCB板的绘制,算起来从大学课上第一次接触Protel99SE到现在已经算是半个熟练工了.不过现在想来还是能回忆起第一次使用的情景,对着一幅简单的原理图使用着自动连线的功能 ...

  3. PHP各种缓存

    缓存类型PHP缓存包括PHP变异缓存和PHP数据缓存两种:PHP编译缓存:        PHP数据缓存:    对数据库数据进行缓存    对PHP模板数据缓存 js数据缓存

  4. 奔小康赚大钱 hdu 2255( KM )

    http://acm.split.hdu.edu.cn/showproblem.php?pid=2255 带权匹配问题: #include <stdio.h> #include <a ...

  5. Unicode explorer

    It can be cumbersome to work out some of the details of this by hand, so you can use the little Java ...

  6. snmp switch traffic交换机带宽

    上代码 <?php function getstr1($strall,$str1,$str2,$html_charset='utf-8'){ $i1=mb_strpos($strall,$str ...

  7. 磁盘配额quota应用

    1.文件系统支持 quota是针对整个文件系统来进行规划,所以我们得先查一下/home是否是个独立的文件系统. [root@Monitor home]# df -h /home Filesystem ...

  8. 从php脚本到浏览器,编码方式浅析

    今天简单看了一下php,服务器,浏览器如何设定编码 1.php 在php配置文件php.ini中,可以设置字符编码 ; PHP's default character set is set to em ...

  9. [MyBean-插件]MyBean通用报表免费无限制版本发布

      [优点]    1.开发时无需安装报表组件(可以直接用编译好的文件,注意版权说明,请自行编译一次相应的报表插件文件).    2.无带包烦恼所有版本Delphi都可以使用,不拖累Delphi版本的 ...

  10. [Linux]服务管理:rpm包, 源码包

    --------------------------------------------------------------------------------------------------- ...