• 专注于网站建设,网络推广,关键词优化,SEO优化,专业的网站建设开发团队!

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

2015-06-13 15:43:56   来源:叶景网络
    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里面的静态方法至关重要。
叶景网络,网络推广,网站建设
特别推荐RECOMMEND
搜索引擎网站关键词seo优化的意义
视频推广怎么做
网站seo优化怎么做关键词排上首页?
SEO介绍什么叫搜索引擎网站关键词优化
seo优化怎样做提升关键词排名
热点图文Hot
discuz插件开发的入门篇 discuz插件开发的入
彻底解决关于dedecms留言板的安装问题 彻底解决关于dedecm
DiscuzX2.5登录无法同步登录到PHPCMS v9解决办法 DiscuzX2.5登录无法
discuz X2.5安装手动选择ucenter时出错问题解决 discuz X2.5安装手
关注排行RANKING
1

discuz插件开发的入门篇

discuz插件开发的入门篇 在config config_global php 文件里设置$_config[ plugindeveloper ] = ...

2

彻底解决关于dedecms留言板的安装问题

彻底解决关于dedecms留言板的安装问题 先前使用dedecms5 5做的网站在服务器上运行两年了,某天突然想给网站加上个留言板模块...

3

DiscuzX2.5登录无法同步登录到PHPCM...

DiscuzX2.5登录无法同步登录到PHPCMS v9解决办法 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领...

4

discuz X2.5安装手动选择ucenter时...

discuz X2.5安装手动选择ucenter时出错问题解决 discuz X2 5安装时想自定义选择ucenter时出错,因为discuz X2 5中也有一个uc_server...

5

Discuz百万级数据的压力测试实现(...

Discuz百万级数据的压力测试实现(创建海量数据库) 由于开发的需求,对discuz创建海量数据库来进行压力测试,以下是对discuz百万级数据的压...

6

discuzX2.5安装不成功,到了正在安装...

discuzX2.5安装不成功,到了正在安装附加数据就不动了 叶景网络(www cngxit com),致力于互联网品牌建设与网络营销,专业领域包括网...

7

Discuz!中分表的实现方法

Discuz!中分表的实现方法 论坛系统中的帖子表,是访问量大很大的表,为了保证数据的快速提取返回给用户,...

8

什么情况下选用hdwiki(for discuz)?

什么情况下选用hdwiki(for discuz)? 如果您已经有了一个dz论坛,并且还想要一个自己专业的知识库,建个百科频道。建...

9

让hdwiki使用discuz的登录和注册

让hdwiki使用discuz的登录和注册 hdwiki是国内开源wki结构简单,安装使用还是很方便的。discuz是使用最多的开源BBS。