ThinkPHP框架基于MVC模式,其中控制器则是重中之重,也是MVC中的核心部分。
自定义控制器:
<?php namespace HomeController; use ThinkController; class DemoController extends Controller { public function test() { echo "hello world"; }
以上则完成了控制器Demo的创建,如若访问,则需要访问其中的test方法;
tp框架url地址可以由以下四种
- http://网址/index.php?m=XX&c=XX&a=XX 基本get模式
- http://网址/index.php/模块/控制器/操作方法 路径模式pathinfo
- http://网址/模块/控制器/操作方法 rewrite重写模式
- http://网址/index.php?s=/模块/控制器/方法 兼容模式
注册变量,显示模板与smarty相似:
public function showtest() { $attr = array("one"=>100,"two"=>200); $this->assign("attr",$attr);//注册变量 $this->assign("example","sacrifice");//注册变量 $this->display();//显示模板 }
空操作和空控制器的相关处理:
空操作:
在控制器中定义一个方法:
public function _empty() //空操作时调用此方法 { echo "空操作"; }
空控制器:
在项目控制器文件中定义一个空控制器:
<?php namespace HomeController; use ThinkController; class EmptyController extends Controller { public function _empty() { echo "空控制器"; } }
跨控制器/模块调用:
//跨平台调用控制器方法 public function demo1() { //造对象 $demo = new IndexController(); echo $demo->index(); //A方法造对象 $oop = A("index"); echo $oop->index(); //R方法造对象同时执行里面的方法 echo R("index/index"); } //跨模块调用控制器方法 public function demo3() { $oop = A("模块名/方法名"); echo $oop->方法名; echo R("模块名/控制器/方法名"); }
获取系统常量:get_defined_constants(true)
几个常用常量:
以http://localhost/thinkphp/index.php/Home/Demo/xianshi为例:
'__ROOT__' =>
string
'/thinkphp' (length=9);
'__INFO__' => string'Home/Demo/xianshi' (length=17);
'__SELF__' => string'/thinkphp/index.php/Home/Demo/xianshi' (length=37);
'__APP__' => string'/thinkphp/index.php' (length=19);
'__MODULE__' => string'/thinkphp/index.php/Home' (length=24);
'__CONTROLLER__' => string'/thinkphp/index.php/Home/Demo' (length=29);
'__ACTION__' => string '/thinkphp/index.php/Home/Demo/xianshi' (length=37)