正在加载文档...
后台方法重写
1. URL 路由规则
iCMS 后台的路由规则基于 URL 和参数 do
来确定调用的控制器和方法。URL 的格式通常为:
admincp.php/{模块}/{动作}
{模块}
:对应后台的模块名称,如article
、test_node
等。{动作}
:对应模块中的具体操作,如manage
、save
等。
2. 方法重写优先级
iCMS 后台方法的重写优先级遵循以下规则:
- 自定义方法文件:优先加载自定义的方法文件。
- 默认方法文件:如果自定义方法文件不存在,则加载默认的方法文件。
2.1 URL: admincp.php/article/index
对应方法:public function do_index(){}
优先级:
article/ArticleDoIndexAdmincp.php
如果存在该文件,则优先加载并执行其中的do_index
方法。article/ArticleDoAdmincp.php
如果ArticleDoIndexAdmincp.php
不存在,则加载该文件并执行其中的do_index
方法。article/ArticleAdmincp.php
(默认)
如果以上文件均不存在,则加载默认文件并执行其中的do_index
方法。
2.2 URL: admincp.php/article
参数:do=save
对应方法:public function done_save(){}
优先级:
article/ArticleDoneSaveAdmincp.php
如果存在该文件,则优先加载并执行其中的done_save
方法。article/ArticleDoneAdmincp.php
如果ArticleDoneSaveAdmincp.php
不存在,则加载该文件并执行其中的done_save
方法。article/ArticleAdmincp.php
(默认)
如果以上文件均不存在,则加载默认文件并执行其中的done_save
方法。
2.3 URL: admincp.php/test_node
或 admincp.php/testNode
对应文件:TestNodeAdmincp.php
- iCMS 支持 URL 中的下划线(
_
)和驼峰命名(camelCase
)自动转换。 - 例如,
admincp.php/test_node
和admincp.php/testNode
都会映射到TestNodeAdmincp.php
文件。
3. POST 请求处理
对于 POST 请求,iCMS 会根据 URL 和 do
参数调用对应的方法。
示例:保存文章
- URL:
admincp.php/article
- 参数:
do=save
- 对应方法:
public function done_save(){}
处理流程:
- 检查是否存在
article/ArticleDoneSaveAdmincp.php
,如果存在则加载并执行done_save
方法。 - 如果不存在,则检查
article/ArticleDoneAdmincp.php
,加载并执行done_save
方法。 - 如果以上文件均不存在,则加载默认的
article/ArticleAdmincp.php
并执行done_save
方法。
4. 默认方法文件
默认方法文件是 iCMS 后台模块的入口文件,通常命名为 {模块}Admincp.php
。例如:
article/ArticleAdmincp.php
testNode/TestNodeAdmincp.php
这些文件中定义了模块的默认方法,如 do_index
、done_save
等。
5. 自定义方法文件
自定义方法文件允许开发者扩展或重写默认方法。命名规则为:
{模块}/{模块}Do{动作}Admincp.php
例如:article/ArticleDoManageAdmincp.php
{模块}/{模块}Done{动作}Admincp.php
例如:article/ArticleDoneSaveAdmincp.php
6. 示例代码
6.1 默认方法文件:article/ArticleAdmincp.php
class ArticleAdmincp {
public function do_index() {
echo "默认的文章管理方法";
}
public function done_save() {
echo "默认的文章保存方法";
}
}
6.2 自定义方法文件:article/ArticleDoIndexAdmincp.php
class ArticleDoIndexAdmincp {
public function do_index() {
echo "自定义的文章管理方法";
}
}
6.3 自定义方法文件:article/ArticleDoneSaveAdmincp.php
class ArticleDoneSaveAdmincp {
public function done_save() {
echo "自定义的文章保存方法";
}
}
7. 总结
iCMS 后台方法重写规则提供了灵活的扩展机制,允许开发者通过自定义方法文件来覆盖默认行为。优先级规则确保自定义方法优先于默认方法执行,同时支持 URL 中的下划线和驼峰命名自动转换。开发者可以根据实际需求,灵活使用这些规则来实现功能扩展和定制。
全站缓存
自动调用包含makeCache, autoCache方法
//test/testAdmincp::do_autoCache
//test/testAdmincp::done_autoCache
//test/testAdmincp::autoCacheAaBb
//test/testAdmincp::makeCache