美文网首页
ThinkPHP基础-----第二章

ThinkPHP基础-----第二章

作者: 大菜鸟呀 | 来源:发表于2018-08-22 17:57 被阅读5次

    TP架构的概述:
    1、Think PHP使用了MVC模式

    2、URL解析
        http://  www.tp.com     /index.php   /index     /index/     /index
        协议          域名          入口文件         模块     控制器     方法
    
    3、入口文件:
        public/index.php
        作用:负责整个TP的请求处理
    
    4、应用:
        1、应用地址:application
        2、作用:一个应用代表一个网站
    
    5、模块(前台模块):
        1、模块地址:appliction/index;
    
        2、作用: 网站所有的前台页面都与其相关
    
        3、新建模块:
            a、在appliction/下新建admain模块
    
            B、在admian目录下新建 M、V、C目录
    
            c、在Controller目录中新建控制器
              命名空间:namespace app\admain\controller;
    
    
    6、控制器:
        1、控制器目录:appliction/index/controller
    
        2、作用: 书写业务逻辑
    
        3、新建控制器:
    
    <?php
    新建控制器:
    --------------------------------
    namespace app\index\controller;//声明命名空间
    
    //声明控制器
    class User{
        //index 方法
       public function index(){
                return "我是前台User控制器中的index方法";
           
        }
    }
    ?>
    ---------------------------------
    访问:http://www.tp.com/index.php/index/User/index
    ----------------------------------
    注意:
    
                a、控制器的文件名必须首字母大写
    
                b、控制器必须声明命名空间
    
                c、控制器中类名必须和文件名一直
    

    7、操作(方法)

    1、操作地址
        操作一般都在控制器的文件中
    
    2、新建一个操作(以前台Index控制器为例)
    
        a、打开前台Index控制器
    
        b、在控制器中新建test方法:
            public function test()
                {
                    return "这是新建的test方法"
                }
    
        访问:http://www.tp.com/index.php/index/Index/test
    

    8、模型(数据模型)

    1、model目录
    
    2、作用: 负责数据库相关的处理
    

    9、视图(页面)

    1、view目录
    
    2、作用: 网站页面
    

    10、命名空间

    1、命名空间与目录有关:app\index\controller;
    

    11、夸控制器调用

    1、同一模块:public function diaoyong()
            {
                //调用前台User控制器
    
                //方法1、
                $model=new \app\index\controller\User;
    
                echo $model->Index();
    
                //方法2、
                $model= new User;
    
                echo $model->index();
    
                //方法3、
                $model= controller('User');
    
                echo $model->index()
            }
    2、不同模块:public function dys()
            {
                //二、调用其它模块的控制器
    
                //1、使用命名空间
                 $model=new \app\admain\controller\Index;
        
                        echo $model->Index();
                 echo "<hr>";
    
                 //2、
                 $model= new AdmainIndex();  //别名
    
                 echo $model->index();
         
                 echo "<hr>";
                //方法3、
                $model= controller('admain/Index');
        
                echo $model->index();
    
            }
    

    夸模块的话,在第二种方法里,需要给控制器取别名
    use \app\admain\controller\Index as AdmainIndex;


    12、当前控制器调用

    public function fanfa()
        {
            //return '123';
            //调用当前控制器的方法
            echo $this->test();
            
            echo '<hr>';
    
            echo self::test();
    
            echo "<hr>";
    
            echo Index::test();
    
            echo "<hr>";
    
            echo action('test');
        }
    

    13、调用不同控制器下的方法

    public function fanfas()
        {
            $model= new \app\index\controller\User;
    
            echo $model->index();
    
            echo "<hr>";
    
            echo action('User/index');
        }
    

    14、调用不同模块下的控制器方法

    //不同模块下控制器方法的调用
        public function fanfat()
        {
            $model= new \app\admain\controller\Index;
    
            echo $model->index();
    
            echo "<hr>";
    
            echo action('admain/Index/index');
    
        }  
    

    15、主要分析TP执行流程

    1、入口文件(public/index.php)
    
        1)、定义常量
    
        2)、加载框架引导目录
    
    2、加载框架引导文件(thinkphp/start.php)
        1)、加载基础文件
    
    3、加载框架的基础引导文件(thinkphp/base.php)
        1)、加载系统常量
    
        2)、引入loader类(thinkphp/library/think/loader.php)
    
        3)、引入环境变量
    
        4)、注册自动加载 和 异常处理
    
    4、运行应用(thinkphp/library/think/App.php)下面的run方法
    
        1)、加载当前控制器中 initCommon方法
    
        2)、加载当前控制器中 init()方法
            a、加载配置文件
            b、加载公共文件
            c、加载语言包
    
        3)、设置时区
    
        4)、检测路由
    
        5)、调用控制器中exec方法
            a、根据用户请求分发
    
        6)、根据不同的请求类型加载方法对应文件 module方法
            加载到对应的控制器和对应方法
    5、响应输出

    相关文章

      网友评论

          本文标题:ThinkPHP基础-----第二章

          本文链接:https://www.haomeiwen.com/subject/xebyiftx.html