zoukankan      html  css  js  c++  java
  • ThinkPHP之TP5 控制器

    TP5 框架控制器

    控制器的后缀

    • 打开配置文件application/config.php,有如下配置
      • 'controller_suffix' => false
      • 表示默认情况下,控制器无特殊后缀
      • 例如 Index控制器,文件名为Index.php
      • 如果需要进行设置,可以设置为(我们不需要这么设置)
      • 'controller_suffix' => 'Controller'
      • 表示控制器以Controller为后缀
      • 例如Index控制器,文件名为IndexController.php

    控制器的定义

    • 定义位置及命名规则

      • 定义位置:application/模块目录/controller/目录下
      • 命名规则:控制器名称(首字母大写) + (控制器后缀,默认没有) + .php
      • 默认
        • Index控制器 Index.php
        • User控制器 User.php
        • Test控制器 Test.php
    • 编写控制器

      • 声明命名空间 namespace app模块目录名controller
      • 引入控制器基类(可选)
        • use thinkController;
        • think是命名空间 Controller是基类控制器
      • 定义当前控制器类,继承控制器基类(可选)
    # 定义测试控制器Test.php
    <?php
    
    namespace appindexcontroller;
    
    use thinkController;
    
    class Test extends Controller
    {
      public function index()
      {
        echo 'Hello,This is Test Controller';
      }
    }
    ?>
    

    框架中的命名空间

    • 概念

      • 命名空间本身是PHP就有的,用来防止命名冲突问题的
      • TP框架中的命名空间,通常和目录挂钩
        • TP中的自动加载机制,会将类的命名空间作为加载路径的一部分
    • TP中命名空间使用

      • 声明命名空间,使用namespace关键字
      • 引入指定的类,使用use关键字 命名空间类名称
      • 完全限定式访问,在使用类时,完整命名空间类名称(继承和实例化)
      • 如果一个类没有命名空间,使用 类名

    URL访问

    • ThinkPHP5.0框架中,默认使用PATH_INFO方式的url进行访问

      • http://域名/入口文件/模块名/控制器名称/操作方法名称/参数名/参数值
      • http://www.tpshop.com/index.php/Index/Test/index/page/10
    • 隐藏入口文件写法

      • 需要对apache进行设置
      • http://域名/模块名/控制器名称/操作方法名称/参数名/参数值
    • URL重写

      • 使用PHPStudy需要将public目录的.htaccess文件中,index.php后面加上?
      • 重写条件(! 取反, d 目录, f 文件)
        • 请求的文件,不是已经存在的目录,也不是已经存在的文件
      • 重写规则
        • 将请求地址(不包含域名),放在index.php后面
        • 这里的重写,只是告诉Apache解析地址,并不会修改浏览器地址栏
    <IfModule mod_rewrite.c>
      Options +FollowSymlinks -Multiviews
      RewriteEngine On
    
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]
    </IfModule>
    
    • 伪静态
      • 使用Apapche的重写机制隐藏入口文件后,如果在整个url后面加上.html后缀
      • 让整个url看起来像是访问的静态页面,这叫做“伪静态”

    调试模式

    • 生产模式

      • 错误描述比较模糊,不方便进行错误调试
      • 这种模式通常叫做“部署模式”(生产模式)
      • 开发阶段可以将框架设置为调试模式,便于进行错误调试
    • 调试模式

      • 打开项目目录 applicationconfig.php
      • 修改应用调试模式为true 'app_debug' => true
  • 相关阅读:
    经典问题的非经典解法
    经典问题之树的深度
    35、AndroidView的滑动方式
    30、Android属性动画
    31、Android矢量动画
    36、AndroidCanvas画布
    27、AndroidEventBus
    28、AndroidRxjava
    32、Android事件分发机制
    29、Android基本动画
  • 原文地址:https://www.cnblogs.com/SharkJiao/p/14184609.html
Copyright © 2011-2022 走看看