# 执行流程 ZhiCms 采用单一入口控制,具体执行过程为"index.php > core.php > App.php",最后到具体的模块内控制器。 模块与方法的访问方式: ~~~ http://域名/index.php?r=模块/控制器/方法 ~~~ ## 第一步:定义常量 | 常量 | 说明 | 示例 | | --- | --- | --- | | ROOT_PATH | 网站根目录物理路径 | /root/home/www/zhicms/ | | CONFIG_PATH | 配置文件物理路径 | /root/home/www/zhicms/data/config/ | | ROOT_URL | 网站根目录URL,不含HTTP域名 | / | | PUBLIC_URL | 公共资源目录URL,不含HTTP域名 | /public/ | ## 第二步:加载配置 加载"data/config/"目录中的global.php与development.php配置文件 ## 第三步:解析网址 通过访问方式解析得到以下常量: | 常量 | 说明 | 示例 | | --- | --- | --- | | APP_NAME | 模块名 | main | | CONTROLLER_NAME | 控制器名称 | Default | | ACTION_NAME | 方法名 | index | ## 第四步:执行模块和方法 检查app/main/controller/DefaultController.php是否存在,如果不存在则输出错误。 所有非语法类错误通过base/controller/ErrorController.php来显示具体错误。 通过debug配置来显示详细错误或不显示详细错误提示。 错误提示使用hook层的钩子,具体在app/base/hook/AppHook.php 中。 可以通过建立hook层的AppHook.php钩子来达到执行模块前后时的其他扩展方法。