1 ThinkPHP MVC框架初识 (4)

入口文件是应用的单一入口,对应用的所有请求都定向到应用入口文件,系统会从URL参数中解析当前请求的模块、控制器和操作:

模块/控制器/操作

URI模式的配置在ThinkPHP--》Conf--》convention.php中进行配置。

/*表示URL区分大小写 true则表示不区分大小写*/
\'URL_MODEL\' =>  1,      
// URL访问模式,可选参数0、1、2、3,代表以下四种模式:
0 (普通模式);
1 (PATHINFO 模式);
2 (REWRITE  模式);
3 (兼容模式)  
默认为PATHINFO 模式

在默认的PATHINFO 模式下,我们也可以使用普通模式的方式进行访问:

?m=home&c=index&a=test
其中参数解释如下:
m:即Module,模式
c:controller,控制器
a:action,方法

1 ThinkPHP MVC框架初识

1 ThinkPHP MVC框架初识

URL模式

如果我们直接访问入口文件的话,由于URL中没有模块、控制器和操作,因此系统会访问默认模块(Home)下面的默认控制器(Index)的默认操作(index),因此下面的访问是等效的:


三、Thinkphp控制器 3.1、控制器的定义

ThinkPHP的控制器是一个类,而操作则是控制器类的一个公共方法(Public function)。

参考:https://www.kancloud.cn/manual/thinkphp/1713

<?php
namespace Home\Controller; //使用Home\Controller控制器,对应的目录文件
use Think\Controller; //表示引入 Think\Controller 类库.
class IndexController extends Controller {
   public function hello(){
       echo \'hello,thinkphp!\';
  }
}

Home\IndexController类就代表了Home模块下的Index控制器,而hello操作就是Home\IndexController类的hello(公共)方法。

当访问 后会输出:

hello,thinkphp! 3.2、控制器操作

A("[模块/]控制器标志")实例化控制器对象。

R("[模块/]控制器标志/操作方法")实例化控制器对象同时调用指定对象。

3.2.1 A方法

跨控制器实例化后,再调用被实例化对象的方法

UserControllerclass.php

$User = A(User); $User->index();

3.2.2 R方法

UserControllerclass.php

R(\'$User->index()\');

示例:

UserController.class.php内容如下

<?php

namespace Home\Controller;
use Think\Controller;

class UserController extends Controller {
   public function index(){
       echo \'User Controller\';
  }
}

使用Index控制器去调用User控制器中的方法

public function getUserIndex(){
  $User = A(\'User\');  
  $User -> index();   // A方法
  //R(\'User/index\'); // R方法
  }
3.2.3 Action参数绑定

参考:https://www.kancloud.cn/manual/thinkphp/1715

Action参数绑定是通过直接绑定URL地址中的变量作为操作方法的参数,可以简化方法的定义甚至路由的解析。

Action参数绑定功能默认是开启的,其原理是把URL中的参数(不包括模块、控制器和操作名)和操作方法中的参数进行绑定。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgzfjw.html