标签:glob define index 二次 索引 resources mem sap 方法
PHPCMS V9 文件目录结构:
    根目录
    |  –  api  接口文件目录
    |  –  caches 缓存文件目录
           |  – configs 系统配置文件目录
           |  – caches_* 系统缓存目录
    |  –  phpcms  phpcms框架主目录
           |  – languages 框架语言包目录
           |  – libs 框架主类库、主函数库目录
           |  – model 框架数据库模型目录
           |  – modules 框架模块目录
           |  – templates 框架系统模板目录
    |  –  phpsso_server  phpsso主目录
    |  –  statics  系统附件包
           |  – css 系统css包
           |  – images 系统图片包
           |  – js 系统js包
    |  –  uploadfile  网站附件目录
    |  –  admin.php  后台管理入口
    |  –  index.php  程序主入口
    |  –  crossdomain.xml  FLASH跨域传输文件
    |  –  robots.txt 搜索引擎蜘蛛限制配置文件
    |  –  favicon.ico  系统icon图标
  2.url访问
  参数名称	      描述	                 位置	                           备注
    m	       模型/模块名称	     phpcms/modules中模块目录名称	           必须
    c	        控制器名称	        phpcms/modules/模块/*.php 文件名称	     必须
    a	        事件名称	         phpcms/modules/模块/*.php 中方法名称	 
  eg: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传递参数形式相同
  如果我们访问您的域名 如:http://www.yourdomain.com/index.php
  phpcms默认路由会定位到content模块的index控制器中的init操作,因为系统在没有指定模块和控制器的时候,会执行默认的模块和操作。因此下面的URL的结果是相同的:
  系统还支持URL路由的功能,这些都能够带来其他的url访问效果 http://www.yourdomain.com/index.php?m=content&c=index&a=init 一样效果
  3.系统类库与函数库调用
    1.系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用
2.系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php
      系统类库调用:
      $http = pc_base::load_sys_class(‘http‘); //实例化http类
      pc_base::load_sys_class(‘format‘, ‘‘, 0); //调用form类,不进行实例化操作
      系统函数库调用:
      pc_base::load_sys_func(‘mail‘); 调用mail函数包
  PHPCMS命名规范:
    类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php。
   函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php。
   类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php。
   数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。
4.配置文件调用:
    配置文件配置在caches/configs/目录下。
    配置文件调用:使用 load_config方法
    $upload_url = pc_base::load_config(‘system‘,‘upload_url‘);
5.二次开发小技巧:
  1.如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过"MY_*.php"的形式进行二次开发。
  例如您要对改phpcms/mood/index.php进行二次开发。您可以在与index.php同级的目录下建立"MY_index.php"
  MY_index.php代码如下
  <?php
  class MY_index extends index{
    function __construct() {
      parent::__construct();
    }
    ……your code
        }
    ?>
    这样当您通过url访问index控制器的时候,系统会默认指向MY_index.php 并且原文件的方法将被继承,可以直接使用。(继承)
配置:
1.数据库配置:
    数据库配置文件位置:caches/configs/database.php
    我们打开这个配置文件,加入我们的数据库配置信息。数据库配置信息为二维数组结构,默认为default,可以根据default结构配置多个数据库链接(如:extended_1)
2.路由配置
    路由配置文件位置:caches/configs/route.php
    我们打开这个配置文件,加入我们的路由配置信息。路由配置信息为二维数组结构,默认为default。
3.系统配置
    系统配置文件位置:caches/configs/system.php
在控制器中增加模板调用:
    phpcms 可以实现完全的模板与程序分离,所以在我们的控制器程序中要加载模板,才可以更友好的显示出来。
    1.加载前台模板
    前台模板文件在phpcms\templates\default\模块名称 目录中,本示例也就在phpcms\templates\default\test中
    加载模板方法如下:
    include template(‘test‘, ‘mytest‘, ‘default‘);
    其中 test为模块名称 mytest 为模板目录下模板名称,default为风格名称,默认不填为defalut
    2.加载后台模板
    后台模板文件在phpcms\modules\模块名称\templates 目录中,本示例也就在phpcms\modules\test\templates 中 加载模板方法如下:
      include $this->admin_tpl(‘mytest_admin_list‘);
  其中mytest_admin_list为phpcms\modules\test\templates中mytest_admin_list.tpl.php,注意:此处模板必须以.tpl.php 作为后缀
  数据模型类:
  数据库模型位于: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‘为数据表名称
控制器中使用:
  <?php
   defined(‘IN_PHPCMS‘) or exit(‘No permission resources.‘);
   class mytest {
     private $db;
      function __construct() {
       $this->db = pc_base::load_model(‘test_model‘);
     }
     public function init() {
       $result = $this->db->select();
       var_dump($result);
      }
   }
 ?>
模板标签使用:
常用:
{pc:get sql="SELECT * FROM phpcms_member" cache="3600" page="$page" dbsource="discuz" return="data"}
     <ul>
     {loop $data $key $val}
     {$val[username]}<br />
     {/loop}
     </ul>
     {$pages}
 {/pc}
开发流程
为你的phpcms创建一个模块的一般开发流程是:
      创建数据库和数据表;(没有数据库操作可略过)
      创建模块目录
      创建模块控制器类;
      创建模块类与模块函数;(如果只是简单的模块可以不必创建)
      创建模板文件;
      运行和调试。
标签:glob define index 二次 索引 resources mem sap 方法
原文地址:http://www.cnblogs.com/boundless-sky/p/6939531.html