一个典型的URL访问规则是(我们以默认的PATHINFO模式为例说明,当然也可以支持普通的URL模式): http://serverName/index.php(或者其他应用入口文件)/模块/控制器/操作/[参数名/参数值...] ThinkPHP3.2的应用可以支持切换到命令行访问,如果切换到命令行模式下面的访问规则是: >php.exe index.php(或其它应用入口文件) 模块/控制器/操作/[参数名/参数值...] 解释下其中的几个概念:
Common模块是一个特殊的模块,是应用的公共模块,访问所有的模块之前都会首先加载公共模块下面的配置文件( 公共模块的位置可以通过COMMON_PATH常量改变,我们可以在入口文件中重新定义COMMON_PATH如下: define('COMMON_PATH','./Common/');define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php'; 禁止访问模块3.2对模块的访问是自动判断的,所以通常情况下无需配置模块列表即可访问,但可以配置禁止访问的模块列表(用于被其他模块调用或者不开放访问),默认配置中是禁止访问 // 设置禁止访问的模块列表'MODULE_DENY_LIST' => array('Common','Runtime','Api'), 设置后,Api模块不能通过URL直接访问,事实上,可能我们只是在该模块下面放置一些公共的接口文件,因此都是内部调用即可。 设置访问列表如果你的应用下面模块比较少,还可以设置允许访问列表和默认模块,这样可以简化默认模块的URL访问。 'MODULE_ALLOW_LIST' => array('Home','Admin','User'),'DEFAULT_MODULE' => 'Home', 设置之后,除了Home、Admin和User模块之外的模块都不能被直接访问,并且Home模块是默认访问模块(可以不出现在URL地址)。 单模块设计如果你的应用够简单,那么也许仅仅用一个模块就可以完成,那么可以直接设置: // 关闭多模块访问'MULTI_MODULE' => false,'DEFAULT_MODULE' => 'Home', 一旦关闭多模块访问后,就只能访问默认模块(这里设置的是Home)。
多入口设计可以给相同的应用及模块设置多个入口,不同的入口文件可以设置不同的应用模式或者绑定模块。 例如,我们在 3.2.0版本写法: $_GET['m'] = 'Home'; // 绑定Home模块到当前入口文件$_GET['c'] = 'Index'; // 绑定Index控制器到当前入口文件define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php'; 3.2.1以上版本写法: define('BIND_MODULE', 'Home'); // 绑定Home模块到当前入口文件define('BIND_CONTROLLER','Index'); // 绑定Index控制器到当前入口文件define('APP_PATH','./Application/');require './ThinkPHP/ThinkPHP.php'; 绑定模块和控制器后,原来的访问地址: http://serverName/index.php/Home/Index/index 就变成: http://serverName/home.php/index =========================================== |
|