• 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)

     
     
     
     
     
     
     
  • 相关阅读:
    3月工作问题总结
    【读书笔记】linux编程艺术
    项目管理工具 Trac入门
    [node.js]开放平台接口调用测试
    mysql 高并发更新计数问题
    memcache 问题 socket or its streams already null in trueClose call
    hadoop学习笔记
    node.js学习与应用
    mc参数备忘&javajson备忘
    WCF技术剖析_学习笔记之三
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5587994.html
Copyright © 2020-2023  润新知