标签:
一. 控制器操作
我们首先复习一下基本的控制器定义和方法执行方式。
第一步:控制器默认创建在当前模块下的 Controller 目录下;
第二步:按照指定的命名规则:控制器名(首字母大写)+Controller.class.php;
第三步:控制器里的方法必须是 public 公共的;
1 //控制器 2 class UserController s extends Controller { 3 public n function index() { 4 //index()方法在URL访问时可以忽略 5 } 6 }
URL 访问: http://localhost/demo39/User/index/
有时方法名可能和关键字冲突,那么定义起来就比较麻烦
在 WeiBo/home/controller/IndexController.class.php 中如果方法名与ThinkPHP中的关键字重合,则会出错,类似:
1 <?php 2 namespace Home\Controller; 3 use Think\Controller; 4 class IndexController extends Controller { 5 public function class() { 6 echo "this is class"; 7 } 8 }
报错如下:
控制器提供了一个配置定义:
在 WeiBo/Conf/config.php 中进行配置:
1 //配置控制器方法后缀 2 ‘ACTION_SUFFIX‘=>‘Action‘,
每个方法后面加上Action,对于URL访问不需要加Action
1 class IndexController extends Controller { 2 public function indexAction() { 3 echo ‘index‘; 4 } 5 public function classAction() { 6 echo ‘test‘; 7 } 8 }
这是在浏览器中输入 http://localhost/demo39/index/class 则可以访问,
注意,这是浏览器中的地址还是class,而不是classAction
默认情况下通过 URL 访问的页面是控制器模块下的方法,即:Controller 目录下的
UserController.class.php 类。它是对外公开可访问的,我们可以称为访问控制器。那
么很多时候,由于项目业务的高度繁杂,我们可能想法很多业务分离到另外的层,比如事件
控制器层。那么可以这么操作:
第一步:创建事件控制器目录:Event;(此时Event与Controller同级)
第二步:创建 UserEvent.class.php 类;
代码如下:
1 <?php 2 namespace Home\Event; 3 4 class UserEvent { 5 public function test() { 6 echo ‘这是事件控制器层的封装,不对外公开,属于内部调用!‘; 7 } 8 }
在 WeiBo/home/controller/IndexController.class.php 中调用是如下:
<?php namespace Home\Controller; use Think\Controller; use Home\Event\UserEvent; class indexController extends Controller { public function event() { $userEvent = new UserEvent(); $userEvent->test(); echo ‘test‘; } }
这时即可调用成功:
PS:这里调用别的控制器还可以使用快捷调用方法 A()。
1 $userEvent = A(‘User‘, ‘Event‘); 2 $userEvent = A(‘Admin/User‘, ‘Event‘); //在Admin下的user调用Event
代码如下:
1 <?php 2 3 namespace Home\Controller; 4 use Think\Controller; 5 use Home\Event\UserEvent; 6 7 class IndexController extends Controller { 8 public function event() { 9 //$userEvent = new UserEvent(); 10 $userEvent = A(‘User‘,‘Event‘); 11 $userEvent->test(); 12 echo "test"; 13 } 14 }
标签:
原文地址:http://www.cnblogs.com/jacson/p/4575260.html