您的位置:首页 > 编程语言 > PHP开发

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

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

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

PHPCMS框架入口文件base.php:

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

01
<?php
02
define(
'IN_PHPCMS'
,true);
03
04
define(
'PC_PATH'
,dirname(
__FILE__
).DIRECTORY_SEPARATOR);
05
06
if
(!defined(
'PHPCMS_PATH'
))define(
'PHPCMS_PATH'
,PC_PATH.
'..'
.DIRECTORY_SEPARATOR);
07
08
define(
'CACHE_PATH'
,PHPCMS_PATH.
'caches'
.DIRECTORY_SEPARATOR);
09
……
10
?>
该文件为框架入口文件,包含实例化系统/模块类方法,调用系统/模块方法,系统常用常量等。如:

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

1
<?php
2
define(
'PHPCMS_PATH'
,dirname(
__FILE__
).DIRECTORY_SEPARATOR);
3
4
include
PHPCMS_PATH.
'/phpcms/base.php'
;
5
6
pc_base::creat_app();
7
8
?>
这段代码首先加载了phpcms框架的引导文件base.php,然后调用其静态方法creat_app()根据指定的配置文件建立了一个Web应用实例并运行。

数据库配置文件database.php的调用
文件路径:根目录/caches/configs/database.php

01
<?php
02
defined(
'IN_PHPCMS'
)
or
exit
(
'Nopermissionresources.'
);
03
class
index{
04
public
function
__construct(){
05
06
pc_base::load_app_func(
'global'
);
07
08
$this
->db_config=pc_base::load_config(
'database'
);
09
10
...
11
12
}
13
14
}
这段代码首先使用pc_base::load_app_func()加载了index模块自定义的函数库global.func.php,这样就可以随心所欲地调用global.func.php自定义的函数了。使用pc_base::load_config()静态方法加载了phpcms的数据库配置文件database.php,获取数据库的配置信息,这样可以摆脱PHPCMS框架的局限性,使用原生态的PHP+mysql去进行二次开发。

实例化模块类

01
<?php
02
03
defined(
'IN_PHPCMS'
)
or
exit
(
'Nopermissionresources.'
);
04
05
pc_base::load_app_class(
'admin'
,
'admin'
,0);
06
07
class
admin_fbteam
extends
admin{
08
09
$this
->db_config=pc_base::load_config(
'database'
);
10
11
...
12
}
13
?>
这段代码使用pc_base::load_app_class()方法实例化admin模块的admin.class类。

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

本文首发网志博客,欢迎转载!转载请注明本文地址,谢谢。

本文地址:http://www.w3note.com/web/17.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: