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


    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('No permission resources.');
    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('No permission resources.');
    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里面的静态方法至关重要。

     

    本文首发君兰IT博客,欢迎转载!转载请注明本文地址,谢谢。


    本文地址:https://www.junlan365.com

    专注于手机端的app,小程序,H5以及微信公众号提供解决方案
  • 相关阅读:
    FileZilla相关配置说明
    pod install速度慢,pod repo update 速度慢解决方法
    Vue安装
    mac 远程桌面连接
    .NET MVC 支付宝支付(即时到账)
    windows下生成ssl
    gentelella 开源后台使用记录
    node、npm、gulp安装
    武汉在院新冠肺炎患者清零
    致最可爱的战疫人
  • 原文地址:https://www.cnblogs.com/ewblgo/p/2955514.html
Copyright © 2020-2023  润新知