五.请求类型 ThinkPHP 提供了一组常量来判断当前请求是否是 GET、POST 等。通过判断请求处理不同的业务逻辑。 常量 含义 IS_GET 判断是否 GET 提交请求 IS_POST 判断是否 POST 提交请求 IS_PUT 判断是否 PUT 提交请求 IS_DELTE 判断是否 DELETE 提交请求 IS_AJAX 判断是否 AJAX 提交请求 //判断是否GET请求 if (IS_GET) { echo '是GET请求'; } else { echo '不是GET请求'; }
六.空操作 空操作是指系统在找不到请求的操作方法时,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些 URL 的优化。 //如果没有相关方法则执行 public function _empty($name) { echo '找不到方法:'.$name; } 七.空控制器 所谓空控制器, 就是请求不到指定控制器时, 调用一个专门的空控制器。 利用这个机制,我们可以实现错误页面和一些 URL 的优化。 //如果没有相关控制器则执行 class EmptyController extends Controller { public function index() { echo '找不到控制器:'.CONTROLLER_NAME;
} } 八.操作绑定到类 ThinkPHP 提供了把每个操作方法定位到一个类的功能,即每个把层次分的更加细腻。 //设置操作绑定到类 'ACTION_BIND_CLASS'=>True,
然后,在 Controller 目录下建立 User 目录,在 User 目录建立 index.class.php, 再建立 test.class.php。 //index.class.php namespace HomeControllerUser; use ThinkController; class index extends Controller { public function run() { echo 'User模块下的index类'; } } //test.class.php namespace HomeControllerUser; use ThinkController; class test extends Controller { public function run() { echo 'User模块下的test类'; } } 浏览器分别访问: http://localhost/demo39/User/ http://localhost/demo39/User/test/
//前置后置方法 public function _before_run() { echo 'before_'.ACTION_NAME; } public function _after_run() { echo 'after_'.ACTION_NAME; } 空方法,在目录里建立一个_empty.class.php
//空方法 class _empty extends Controller { public function run() { echo '找不到'.ACTION_NAME.'方法'; } } 空控制器,可以创建一个目录_empty,然后建立 index.class.php //空控制器 namespace HomeController_empty; use ThinkController; class index extends Controller { public function run() { echo '找不到'.CONTROLLER_NAME.'控制器的'.ACTION_NAME.'方法'; } }