• ThinkPHP框架基础之控制器篇



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


     

    自定义控制器:

    <?php
    namespace HomeController;
    use ThinkController;
    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 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)

     
     
     
     
     
     
     
  • 相关阅读:
    学习shell script
    ubuntu11.10安装出现/cdrom问题以及不能格式成ext问题
    正则表达式
    认识与学习bash(2)
    UNIX网络编程 一个简单的时间获取客户程序
    HDU4522
    恢复引导
    认识与学习bash(1)
    文件格式化处理
    C++解析csv文件
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5587994.html
Copyright © 2020-2023  润新知