ThinkPHP基础-----第二章

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、新建控制器:

---------------------------------
访问: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 "
"; //2、 $model= new AdmainIndex(); //别名 echo $model->index(); echo "
"; //方法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 '
'; echo self::test(); echo "
"; echo Index::test(); echo "
"; echo action('test'); }

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

public function fanfas()
    {
        $model= new \app\index\controller\User;

        echo $model->index();

        echo "
"; echo action('User/index'); }

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

//不同模块下控制器方法的调用
    public function fanfat()
    {
        $model= new \app\admain\controller\Index;

        echo $model->index();

        echo "
"; 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基础-----第二章)