ThinkPHP框架基础之控制器篇


 

ThinkPHP框架基于MVC模式,其中控制器则是重中之重,也是MVC中的核心部分。


 

自定义控制器:

<?php
namespace Home\Controller;
use Think\Controller;
class DemoController extends Controller
{
    public function test()
    {
        echo "hello world";
    }

以上则完成了控制器Demo的创建,如若访问,则需要访问其中的test方法;

tp框架url地址可以由以下四种

  1. http://网址/index.php?m=XX&c=XX&a=XX   基本get模式
  2. http://网址/index.php/模块/控制器/操作方法  路径模式pathinfo
  3. http://网址/模块/控制器/操作方法           rewrite重写模式
  4. 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 Home\Controller;
use Think\Controller;
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)

 
 
 
 
 
 
 

 

posted @ 2016-06-15 16:34  天照丶鼬  阅读(450)  评论(0编辑  收藏  举报