PHPCMS 採用 MVC 設計模式,基於模塊與操作訪問,採用單一入口模式部署。所有請求統一通過入口文件分發,確保流程可控、安全性高。
路徑:根目錄/phpcms/base.php
此文件是框架引導程序,包含系統常量定義、核心類實例化方法、常用工具函數加載。掌握其靜態方法是二次開發的鑰匙。
| 方法 | 用途 | 示例 |
|---|---|---|
pc_base::load_model('*_model') | 加載數據庫模型類 | $db = pc_base::load_model('content_model'); |
pc_base::load_sys_class('classname') | 實例化系統核心類 | $auth = pc_base::load_sys_class('auth'); |
pc_base::load_app_class('classname', 'module') | 實例化指定模塊類 | $admin = pc_base::load_app_class('admin', 'admin'); |
pc_base::load_sys_func('funcfile') | 加載系統函數庫 | pc_base::load_sys_func('global'); |
pc_base::load_app_func('funcfile', 'module') | 加載模塊自定義函數庫 | pc_base::load_app_func('global', 'content'); |
pc_base::load_config('filename') | 加載配置文件 (返回數組) | $db_cfg = pc_base::load_config('database'); |
pc_base::creat_app($config) | 創建並運行 Web 應用實例 | 入口 index.php 中調用 |
<?php
// 1. 引導框架
define('PHPCMS_PATH', dirname(__FILE__).'/phpcms/');
include PHPCMS_PATH.'base.php';
// 2. 獲取數據庫配置
$db_config = pc_base::load_config('database');
$default = $db_config['default'];
$conn = new PDO(
"mysql:host={$default['hostname']};dbname={$default['database']};charset={$default['charset']}",
$default['username'],
$default['password']
);
// 3. 直接執行 SQL
$stmt = $conn->query("SELECT * FROM v9_category WHERE catid=1");
$row = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($row);
<?php
include 'phpcms/base.php';
// 加載 content 模塊的 global 函數庫
pc_base::load_app_func('global', 'content');
// 實例化內容模型
$content_db = pc_base::load_model('content_model');
// 調用模型方法
$data = $content_db->get_one(['catid'=>5], 'title,url', 'id DESC');
// modules/myapp/myapp.class.php
class myapp {
public function __construct() {
// 可在此加載所需模型、類
$this->db = pc_base::load_model('myapp_model');
}
public function my_action() {
// 業務邏輯
}
}
// 前端調用:index.php?m=myapp&c=myapp&a=my_action
load_config 讀取配置,避免硬編碼數據庫憑證。load_app_class/func,保持鬆耦合。phpcms/libs/classes/ 下核心類源碼,理解生命周期。