zoukankan      html  css  js  c++  java
  • 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)

     
     
     
     
     
     
     
  • 相关阅读:
    EF Code First一对一、一对多、多对多关联关系配置
    ASP.NET Core 运行原理剖析2:Startup 和 Middleware(中间件)
    ASP.NET Core 运行原理剖析1:初始化WebApp模版并运行
    ASP.NET Core 1.0 入门——Application Startup¶
    ASP.NET Core管道深度剖析(1):采用管道处理HTTP请求
    EF Code First 学习笔记:约定配置
    ASPNET CORE初探
    EntityFramework 7.0之初探【基于VS 2015】(
    ASP.NET Core 开发
    sqlite3 外键作用原理和使用方法
  • 原文地址:https://www.cnblogs.com/Itwonderful/p/5587994.html
Copyright © 2011-2022 走看看