phpcms入口程序文件分析
PHPCMS是采用MVC设计模式开发,基于模块和操作的方式进行访问,采用单一入口模式进行项目部署和访问,无论访问任何一个模块或者功能,只有一个统一的入口。入口程序是在前期处理用户请求的引导程序。它是唯一一个可以被最终用户可以直接请求运行的。phpcms v9的入口程序index.php包含如下几行
define('PHPCMS_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR);
include PHPCMS_PATH.'/phpcms/base.php';
pc_base::creat_app();
这段代码首先加载了 phpcms框架的引导文件 base.php,然后它根据指定的配置文件建立了一个 Web 应用实例并运行。
phpcms配置文件使用
配置文件配置在caches/configs/目录下。配置文件调用:使用 load_config方法
示例:
$upload_url = pc_base::load_config('system','upload_url');//调用系统配置中的附件路径
$upload_url = pc_base::load_config('system','web_path');//调用系统配置中的网站主路径
$upload_url = pc_base::load_config('system','charset');//调用系统配置中的网站字符集
配置文件代码示例
/**
* 加载配置文件
* @param string $file 配置文件
* @param string $key 要获取的配置荐
* @param string $default 默认配置。当获取配置项目失败时该值发生作用。
* @param boolean $reload 强制重新加载。
*/
public static function load_config($file, $key = '', $default = '', $reload = false) {
static $configs = array();
if (!$reload && isset($configs[$file])) {
if (empty($key)) {
return $configs[$file];
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key];
} else {
return $default;
}
}
$path = CACHE_PATH.'configs'.DIRECTORY_SEPARATOR.$file.'.php';
if (file_exists($path)) {
$configs[$file] = include $path;
}
if (empty($key)) {
return $configs[$file];
} elseif (isset($configs[$file][$key])) {
return $configs[$file][$key];
} else {
return $default;
}
}
phpcms系统类库与函数库的调用
系统类库位于系统的phpcms/libs/classes目录下面,函数库文件名为*.class.php,其中global.func.php为框架中默认加载,global.func.php中函数可直接使用系统函数库位于系统的phpcms/libs/functions目录下面,函数库文件名为*.func.php
系统类库调用
/**
* 加载系统类方法
* @param string $classname 类名
* @param string $path 扩展地址
* @param intger $initialize 是否初始化
*/
public static function load_sys_class($classname, $path = '', $initialize = 1) {
return self::_load_class($classname, $path, $initialize);
}
调用方法
$http = pc_base::load_sys_class('http'); //实例化http类
pc_base::load_sys_class('format', '', 0); //调用form类,不进行实例化操作
系统函数库调用
/**
* 加载系统的函数库
* @param string $func 函数库名
*/
public static function load_sys_func($func) {
return self::_load_func($func);
}
调用方法
pc_base::load_sys_func('mail'); 调用mail函数包
phpcms脚本命名规范
PHPCMS其自身的一定规范。下面是使用PHPCMS做二次开发中应该遵循的命名规范:类文件需要以.class.php为后缀(这里是指的phpcms的系统类库文件和模块中的类库文件,第三方引入的不做要求),例如http.class.php。
函数文件需要以.func.php为后缀(第三方引入的不做要求),例如mail.func.php。
类名和文件名一致,例如 phpcmsapp类的文件命名是phpcmsapp.class.php。
数据模型需要以“数据表名称_model.class.php”为形式,类名称与文件名必须相同。
phpcms二次开发技巧
如果要对已存在的控制器进行二次开发,为了方便升级不建议直接对内核文件直接修改该,您可以通过"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 并且原文件的方法将被继承,可以直接使用。
以上就是青锋建站给大家分享的phpcms二次开发教程详解,主要从入口文件、命名规范、类库函数库调用、加载配置文件来分析二次开发的相关流程与技巧。青锋建站,提供专业的高品质网站制作服务,包括phpcms网站建设,SEO,网络营销,PHP网站建设。
转载请注明来源网址:青锋建站-http://www.sjzphp.com/webdis/ercidaifa_905.html