专注于WEB技术的IT博客

phpcms二次开发之base.php的桥梁作用

时间:2012-09-20分类: Phpcms浏览:6859
分享到:

  PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。


  入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行的。


PHPCMS框架入口文件base.php:


文件路径:根目录/phpcms/base.php 代码片段如下:

<?php 
define('IN_PHPCMS', true); 
    
define('PC_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); 
    
if(!defined('PHPCMS_PATH')) define('PHPCMS_PATH',PC_PATH.'..'.DIRECTORY_SEPARATOR); 
    
define('CACHE_PATH',PHPCMS_PATH.'caches'.DIRECTORY_SEPARATOR); 
…… 
?>


该文件为框架入口文件,包含实例化系统/模块类方法,调用系统/模块方法,系统常用常量等。如:

 pc_base::load_model('*_model') 加载数据库模型 类

 pc_base::load_sys_class('classname') 实例化系统类

 pc_base::load_app_class('classname’,’admin') 实例化模块类

 pc_base::load_sys_func (‘funcfile’) 调用系统函数库
 
 pc_base::load_sys_func('global','test'); //加载模块函数库(调用test模块的global函数包)


实例化一个应用


文件路径:根目录/index.php

<?php 
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR); 
    
include PHPCMS_PATH.'/phpcms/base.php'; 
    
pc_base::creat_app(); 
    
?>


这段代码首先加载了 phpcms 框架的引导文件 base.php,然后调用其静态方法creat_app()根据指定的配置文件建立了一个 Web 应用实例并运行。


数据库配置文件database.php的调用


文件路径:根目录/caches/configs/database.php

<?php 
defined('IN_PHPCMS') or exit('No permission resources.'); 
class index { 
    public function __construct() { 
    
     pc_base::load_app_func('global');      
    
   $this->db_config = pc_base::load_config('database'); 
    
 ...    
           
       } 
    
    }


这段代码首先使用 pc_base::load_app_func()加载了index模块自定义的函数库global.func.php,这样就可以随心所欲地调用global.func.php自定义的函数了。使用pc_base::load_config()静态方法加载了phpcms的数据库配置文件database.php,获取数据库的配置信息,这样可以摆脱PHPCMS框架的局限性,使用原生态的PHP+mysql去进行二次开发。


实例化模块类

<?php 
    
defined('IN_PHPCMS') or exit('No permission resources.'); 
    
pc_base::load_app_class('admin', 'admin', 0); 
    
class admin_fbteam extends admin { 
    
$this->db_config = pc_base::load_config('database'); 
    
... 
} 
?>


这段代码使用pc_base::load_app_class()方法实例化admin模块的admin.class类。


由此我们知道,不管我们是调用PHPCMS框架里面的系统类或函数库还是调用自定义的模块类或函数库等,我们都可以在base.php里找到需要的调用方法,所以PHPCMS二次开发,弄清base.php里面的静态方法至关重要。




猜你喜欢
phpcms微信插件自定义菜单绑定栏目获取消息的实现与应用
phpcms微信插件自动回复的优化方法
基于phpcms v9开发的微信公众号平台管理模块终于完成
phpcms v9 rss页面的伪静态实现
如何实现phpcms v9_4X版本tag的伪静态?
phpcms v9.4.2_utf8整合百度ueditor1.2.6.1utf8-php
如何修改phpcms v9 seo标题分隔符?
关于Phpcms V9.4.2缩略图上传问题
如何对phpcms v9的首页列表进行分页?
phpcms v9二次开发之表单类form.class.php的应用
除非注明,本文首发网志博客,欢迎转载!转载请注明本文地址:http://w3note.com/web/17.html,谢谢。
  • 评论
  • 赞助本站