码迷,mamicode.com
首页 > 其他好文 > 详细

控制器[1]

时间:2015-06-14 18:07:37      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

一. 控制器操作

我们首先复习一下基本的控制器定义和方法执行方式。
第一步:控制器默认创建在当前模块下的 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 }

 

控制器[1]

标签:

原文地址:http://www.cnblogs.com/jacson/p/4575260.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!