phpcms二次开发教程详解

更新时间:2022-05-28 20:45:02 来源:phpcms官方 作者:青锋建站
  现在进行phpcms二次开发的人员和利用phpcms框架进行程序开发的人员逐渐多起来,phpcms集成了官方自己的框架结构,采用了MVC模式设计,基于事件的开发模式。以下是青锋建站给大家分享的phpcms二次开发教程分析。更多phpcms教程请访问青锋建站栏目-建站教程的其他文章。

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

电话 15632335515 | 邮箱 943703539@qq.com | QQ 943703539 | 微信 qingfengjianzhan

Copyright © 2016-2026 青锋建站 版权所有