EASYLT文档 > 使用框架 > 控制/路由

开发场景

  • 传统MVC架构的C(controller)层,view视图与model模型之间的调配。
  • 通用控制器

  • Index控制器为通用控制器,默认无需创建新的控制器及任何改动,根据以下路由文档说明使用即可。
  •    如需在控制器中增加额外的业务处理,如API - Sign验签业务,直接在Index控制器类中的构造方法中实现即可。
  • 自定义控制器

  • 当业务模块化管理时,可能会自定义创建多个controller控制器,而不依赖于框架自带的Index通用控制器,如下为创建控制器示例:
  • <?php
    class Example{
        public function one($public_var){//类方法名请与model模型文件名对应
            //$public_var数据类型为array,包含了框架变量,如数据库连接变量等,不用在类方法中再次global引入。
            //函数中写你的业务,默认在logic中完成;
            response($code,$msg,$data);//调用API数据返回运行类库,该类库用于返回数据给请求方,必须实现,方法实参为选填项,如果需要在controller控制器中返回数据请填入。第一个参数为code【数据类型为int】、第二个参数为message【数据类型为string】、第三个参数为返回的数据【数据类型不限】。
            //通常默认在model模型/logic逻辑中返回数据给请求方,结构请参考【框架变量-$response】
        }
        public function two($public_var){
            response();
        }
    }
    
    
  •    当我们定义了多个控制器时,有一些公共类需要统一维护,而不需要在每个控制器中重复维护,此时直接将类写入Index控制器中并
    在指定控制器中继承类即可。
  • 路由

  • 路由示例:http://127.0.0.1/m/v/p/index/model/param/key1=value&key2=value
  • · m/为application应用目录路径
  • · v/p/为presenter/controller/控制器目录路径
  • · index/为Index控制器文件名,不包含.php扩展名,如自定义控制器请更换index为自定义控制器名称;
  • · model/为model模型目录下指定文件名,不包含.php扩展名;
  • · param/为路由参数,用于判断model文件下多接口业务分发对接,用$query_param[‘key’],取值可选项;
  • · key1=value为get请求入参,多参数用&连接,用$query_get['key']取值,可选项;
  •    默认已对路由进行重写,Apache/Nginx服务器请支持.htaccess/nginx.htaccess,否则请按照以下写法:
    http://127.0.0.1/application/presenter/controller/example.php/model/param/?key1=value&key2=value
  • 路由重写

  • 第一步 在config_route.php路由配置文件中修改常量ROUTE_RUN的值为1,开启配置运行;
  • 第二步 在config_route.php路由配置文件中修改常量API_URL_ROUTE的各个值用于API-URI重写;
  • 第三步 在config_route.php路由配置文件中修改常量APPLICATION_RENAME的各个值用于改变application下各个初始化目录名;
  • · 修改后目录名为修改的目录名+下划线+目录标识,如controller目录名改为init,则修改后控制器目录名为init_controller;
  • · 如果将目录名改为初始值,即model、server、presenter、controller、logic、view,则目录名不会拼接+下划线+目录标识,恢
       复初始化目录名。
  • 第四步 通过浏览器运行框架入口文件,如访问http://127.0.0.1则以上配置即可生效;
  • 第五步 在config_route.php路由配置文件中修改常量ROUTE_RUN的值为0,关闭配置运行;
  •    路由重写后路由URI将改变
  • · 更改常量API_URL_ROUTE值,当服务器支持.htaccess/nginx.htaccess时,路由URI中的M/V/P需替换为相应更改值。
  • · 更改常量APPLICATION_RENAME值,当服务器支不持.htaccess/nginx.htaccess时,路由URI中的路径需替换为相应更改值。如:
       http://127.0.0.1/application/presenter/controller/index.php/model
       当更改application/presenter/controller目录名后在路由URI中需相应替换
  • 重写支持

  •    Apache服务器的路由重定向文件为框架根目录下的.htaccess,Nginx服务器的路由重定向文件为框架根目录下的nginx.htaccess。
       Apache默认支持.htaccess,如果不支持请自行配置解决;Nginx默认不支持nginx.htaccess,请按照以下方法配置:
  • · 打开Nginx服务器的vhosts.conf,在该配置文件中引入nginx.htaccess,如下标黑部分为引入项,注意路径。
       server {
          listen 80;
          server_name localhost;
          root "D:/wamp/www/easylt";
          location / {
             index index.php index.html;
             autoindex off;
             include D:/wamp/www/easylt/nginx.htaccess;
          }
       }
  • · 如果项目采用宝塔等面板,可以复制nginx.htaccess中的内容到站点-设置-伪静态中即可。
  • · 首次配置nginx.htaccess或后续路由重写都需重启Nginx服务器才可生效。