初识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 相关文章推荐
新版mysql+apache+php Linux安装指南
Oct 09 PHP
操作Oracle的php类
Oct 09 PHP
PHP中的integer类型使用分析
Jul 27 PHP
php数组函数序列之array_flip() 将数组键名与值对调
Nov 07 PHP
php 阴历-农历-转换类代码
Jan 16 PHP
PHP持久连接mysql_pconnect()函数使用介绍
Feb 05 PHP
关于php程序报date()警告的处理(date_default_timezone_set)
Oct 22 PHP
PHP has encountered a Stack overflow问题解决方法
Nov 03 PHP
php实现将任意进制数转换成10进制的方法
Apr 17 PHP
php中文乱码问题的终极解决方案汇总
Aug 01 PHP
Laravel 将数据表的数据导出,并生成seeds种子文件的方法
Oct 09 PHP
laravel5.6实现数值转换
Oct 23 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输出表格的实现代码(修正版)
2010/12/29 PHP
php中取得URL的根域名的代码
2011/03/23 PHP
php设计模式之命令模式的应用详解
2013/05/21 PHP
PHP+Ajax实现的检测用户名功能简单示例
2019/02/12 PHP
Yii框架日志操作图文与实例详解
2019/09/09 PHP
Laravel 模型使用软删除-左连接查询-表起别名示例
2019/10/24 PHP
JavaScript URL参数读取改进版
2009/01/16 Javascript
javascript 获取图片颜色
2009/04/05 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
nodejs文件操作模块FS(File System)常用函数简明总结
2014/06/05 NodeJs
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
详解AngularJS中的表单验证(推荐)
2016/11/17 Javascript
DVA框架统一处理所有页面的loading状态
2017/08/25 Javascript
react在安卓中输入框被手机键盘遮挡问题的解决方法
2018/09/03 Javascript
vue-cli脚手架build目录下utils.js工具配置文件详解
2018/09/14 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
微信小程序中悬浮窗功能的实现代码
2019/08/02 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
使用纯前端JavaScript实现Excel导入导出方法过程详解
2020/08/07 Javascript
[01:04:01]2014 DOTA2华西杯精英邀请赛5 24 DK VS VG
2014/05/25 DOTA
Python中用Decorator来简化元编程的教程
2015/04/13 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
jupyter notebook清除输出方式
2020/04/10 Python
python-图片流传输的思路及示例(url转换二维码)
2020/12/21 Python
Canvas引入跨域的图片导致toDataURL()报错的问题的解决
2018/09/19 HTML / CSS
英国美发和美容产品商城:HQhair
2019/02/08 全球购物
Timberland澳大利亚官网:全球领先的户外品牌
2019/12/10 全球购物
竞聘上岗演讲稿范文
2014/01/10 职场文书
《石榴》教学反思
2014/03/02 职场文书
机关作风整顿个人整改措施思想汇报
2014/09/29 职场文书
法定代表人授权委托书格式
2014/10/14 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
学生检讨书范文
2015/01/27 职场文书
幼儿园百日安全活动总结
2015/05/07 职场文书
2015年机关党建工作总结
2015/05/22 职场文书
公司转让协议书
2016/03/19 职场文书