# 执行流程
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钩子来达到执行模块前后时的其他扩展方法。