![](https://img.kancloud.cn/89/7a/897a2086ee7cd90836e999e2c5b8de50_968x414.jpeg)
# 1.入口文件
>默认入口文件为根目录下的index.php文件,我们可以对其入口文件进行配置 [假设我需要给admin模块设计一个a.php的入口文件,从而隐藏admin模块的真实地址]
~~~
<?php
/*
* +----------------------------------------------------------------------
* | ZrWebPHP [ WE CAN DO IT JUST CUMIN ]
* +----------------------------------------------------------------------
* | Copyright (c) 2020 http://zrv7.com All rights reserved.
* +----------------------------------------------------------------------
* | Author: Cumin <2937978586@qq.com>
* +----------------------------------------------------------------------
*/
/* 绑定模块 */
define('BIND_MODULE','admin');
/* 引入框架引导文件 */
require __DIR__ . '/zrwebphp/start.php';
~~~
> BIND_MODULE常量是绑定模块的默认值
> 如果不进行绑定则会直接获取入口文件的文件名作为入口文件的参数,如a.php 则会获取模块为a这时候去访问a.php系统会提示模块不存在!
> 这个时候 我们就需要进行绑定模块,在a.php中绑定admin模块,这样子访问a.php就能访问到admin模块啦,且不会报出真实地址!
# 2.自动加载
此操作由 \zrweb\Loader类完成
所以定义命名空间的时候必须遵循`PSR-2`命名规范和`PSR-4`自动加载规范
>特殊的两个命名空间规范:
>1. zrweb框架操作类的命名空间规范,在创建命名空间的时候格式为 zrweb\类名 [规范大小写]
>2.lib\类库名\类名 通常存放框架的第三方类如:smarty、PHPMailer
# 3.路由检查
## 3.1Mvc检测
>先判断是否写入路由规则 config/router.php 如果写有则判断此路由规则的mvc,无写有或者不匹配,就调用Request类中获取到路由中的mvc
## 3.2参数检测Xss
>将获取到的参数提交给\log\Xss类进行处理,如果config配置中xss为真就交给\log\Log类进行处理写入runtime目录中
此写法借鉴360safe
# 4.路由分发
>由App类中的dispatch方法操作,把类进行拼接,最后进行类的反射处理
# 5.处理结果
>Response类进行处理,注:不推荐echo输出参数,而是直接return