初识ThinkPHP控制器


Posted in PHP onApril 07, 2016

本文的重点讲解的ThinkPHP控制器的定义、基本操作内容,希望大家可以对ThinkPHP控制器有初步的了解。

初识ThinkPHP控制器

最基本的控制器:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function index(){

  }
  public function hello(){
    echo 'hello';
  }
}

控制器的名称采用驼峰法命名(首字母大写),控制器文件位于 Application/Home/Controller/IndexController.class.php

IndexController控制器类的hello方法就是操作方法,访问下面的URL地址:

http://serverName/Home/Index/hello
 就会输出"hello"

前置和后置操作:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {

  public function _before_index(){
    echo "index.before<br>";
  }

  public function index(){
    echo "index<br>";
  }

  public function _after_index(){
    echo "index.after<br>";
  }
}

配置ACTION_SUFFIX改变操作方法书写方式:

因为操作方法就是控制器的一个方法,所以遇到有和系统的关键字冲突的方法可能就不能定义了,这个时候我们可以设置操作方法的后缀来解决,例如

'ACTION_SUFFIX'         =>  'Action', // 操作方法后缀
设置操作方法的后缀为Action,这样,控制器的操作方法定义调整为:

<?php
namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller {
  public function listAction(){
    echo 'list';
  }

  public function helloAction(){
    echo 'hello';
  }

  public function testAction(){
    echo 'test';
  }
}

空控制器和空操作方法:

空操作是指系统在找不到请求的操作方法的时候,会定位到空操作(_empty)方法来执行,利用这个机制,我们可以实现错误页面和一些URL的优化。

初识ThinkPHP控制器

上图所示,当访问:

http://serverName/index.php/Home/City/beijing/
由于City控制器并没有定义beijing、shanghai或者shenzhen操作方法,因此系统会定位到空操作方法 _empty中去解析,_empty方法的参数就是当前URL里面的操作名,因此会看到依次输出的结果是:

你是怎么找到我的? 

操作绑定到类: (作用:可以实现为每个操作方法定义一个类,而不是控制器类的一个方法)

以URL访问为 http://serverName/Home/Index/index为例,

原来的控制器文件定义位置为:Application/Home/Controller/IndexController.class.php

控制器类的定义如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
  public function index(){
    echo '执行Index控制器的index操作';
  }
}

可以看到,实际上我们调用的是 Home\Controller\IndexController 类的index方法。

 通过配置文件设置参数

'ACTION_BIND_CLASS'    =>    True,
设置后,控制器文件位置改为:Application/Home/Controller/Index/index.class.php

控制器类的定义如下:

namespace Home\Controller\Index;
use Think\Controller;
class index extends Controller{
  public function run(){
    echo '执行Index控制器的index操作';
  }
}

现在,我们调用的其实是 Home\Controller\Index\index 类的run方法。
以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

PHP 相关文章推荐
?繁体转换的class
Oct 09 PHP
解决GD中文乱码问题
Feb 14 PHP
加速XP搜索功能堪比vista
Mar 22 PHP
php调整gif动画图片尺寸示例代码分享
Dec 05 PHP
叫你如何修改Nginx与PHP的文件上传大小限制
Sep 10 PHP
在Win7 中为php扩展配置Xcache
Oct 08 PHP
php通过递归方式复制目录和子目录的方法
Mar 13 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
[原创]php正则删除html代码中class样式属性的方法
May 24 PHP
YII2自动登录Cookie总是失效的解决方法
Jun 28 PHP
PHP实现深度优先搜索算法(DFS,Depth First Search)详解
Sep 16 PHP
tp5使用layui实现多个图片上传(带附件选择)的方法实例
Nov 17 PHP
PHP中PDO的事务处理分析
Apr 07 #PHP
PHP+Ajax实现无刷新分页实例详解(附demo源码下载)
Apr 07 #PHP
人脸识别测颜值、测脸龄、测相似度微信接口
Apr 07 #PHP
PHP的PDO常用类库实例分析
Apr 07 #PHP
PHP安全下载文件的方法
Apr 07 #PHP
php生成验证码,缩略图及水印图的类分享
Apr 07 #PHP
PHP使用token防止表单重复提交的方法
Apr 07 #PHP
You might like
PHP.MVC的模板标签系统(四)
2006/09/05 PHP
php5 图片验证码实现代码
2009/12/11 PHP
php获得用户ip地址的比较不错的方法
2014/02/08 PHP
php while循环控制的简单实例
2016/05/30 PHP
PHP防止图片盗用(盗链)的方法小结
2016/11/11 PHP
Yii2实现ActiveForm ajax提交
2017/05/26 PHP
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
jquery图片切换实例分析
2015/04/15 Javascript
JavaScript String 对象常用方法详解
2016/05/13 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
Windows下快速搭建NodeJS本地服务器的步骤
2017/08/09 NodeJs
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
JavaScript插件Tab选项卡效果
2017/11/14 Javascript
vue项目中用cdn优化的方法
2018/01/03 Javascript
Angularjs Ng_repeat中实现复选框选中并显示不同的样式方法
2018/09/12 Javascript
详解JavaScript 高阶函数
2020/09/14 Javascript
Python完全新手教程
2007/02/08 Python
Python中functools模块的常用函数解析
2016/06/30 Python
使用python爬取B站千万级数据
2018/06/08 Python
Python实现高斯函数的三维显示方法
2018/12/29 Python
详解python3 + Scrapy爬虫学习之创建项目
2019/04/12 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python代码如何实现余弦相似性计算
2020/02/09 Python
Python的in,is和id函数代码实例
2020/04/18 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
Crabtree & Evelyn英国官网:瑰珀翠护手霜、香水、沐浴和身体护理
2018/04/26 全球购物
Allsole美国/加拿大:英国一家专门出售品牌鞋子的网站
2018/10/21 全球购物
N:Philanthropy官网:美国洛杉矶基础款服装
2020/06/09 全球购物
财务主管的岗位职责
2013/12/30 职场文书
九年级英语教学反思
2014/01/31 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
置业顾问岗位职责
2014/03/02 职场文书
交通事故赔偿协议书怎么写
2014/10/04 职场文书
2015年项目经理工作总结
2015/04/30 职场文书
Zabbix对Kafka topic积压数据监控的解决方案
2022/07/07 Servers