TP框架學習之一

0x00 TP目錄

1、目錄結構
application:代表網站應用,網站核心
    index:前臺目錄
        controller:控制器
        model:模型
        view:頁面
    admin:後臺目錄
extend:擴展類庫目錄
public:靜態資源和入口文件
    static:存放靜態資源
    index.php 入口文件
runtime:網站運行臨時目錄
thinkphp:TP框架核心文件
    lang:語言包
    library:TP核心文件
    tpl:模板頁面
vendor:第三方擴展


2、URL地址瞭解
http://www.tp/com/index.php/  Index   /  Index   /   index
                  入口文件    代表前臺     前臺控制器   index方法

3、瞭解TP開發模式:
    1、連接數據庫
    2、頁面數據展示

4、MVC模式
    1、控制器
    2、試圖
    3、模型



0x01 TP運行流程

1、入口文件:
    a、定義應用目錄
    b、加載框架的引導目錄
2、框架的引導目錄:
    a、thinkphp\start.php  加載base.php
        base.php
            定義系統常量等等
            引入一個load類 thinkphp\library\think\loader.php
            加載環境變量配置文件
            註冊自動加載
            註冊錯誤和異常處理機制
            加載慣例配置文件
    b、調用app類的run方法
        a、調用自身initcommon方法,初始化方法
        b、initCommon方法加載命名空間
        C、加載自身init方法,init方法加載各種配置文件等
    c、加載路由檢查方法
3、引導基礎文件(base.php)
    a、定義版本,常量,路徑等
    b、引入loader類:

0x03 TP架構

1、入口文件:public/index.php  負責處理這個url請求
2、應用地址:application/
3、模塊:
    前臺:application/index
    新建後臺模塊:
        a、新建admin模塊
        b、新建三個目錄
        c、新建控制器(以前臺爲例)
            http://www.tp5.com/index.php  /Index  /User   /index
                                          前臺模塊  控制器   方法

4、控制器:
    application/index/controller
    新建控制器:
        a、前臺控制器目錄下新建User.php
        b、聲明命名空間
        c、地址欄訪問
        d、控制器首字母大寫,必需聲明命名空間,控制器類名必須和文件名一致
        f、操作一般都在控制器中

     新建後臺模塊:



5、命名空間
    1、與目錄有關
        namespace app\index\controller
        application\index\controller

6、跨控制器調用:
略

7、方法調用
    1、系統方法:action()
        action("admin/stupid/index")
    2、實例化命名空間
        $module=new \app\admin\controller\Stupid;
        echo $module->index()



0x04跨控制器調用

在這裏插入圖片描述
index\controller\Index.php

<?php
namespace app\index\controller;
use app\index\controller\User;
use app\admin\controller\Stupid;
class Index
{
    public function index()
    {
        //return '<style type="text/css">*{ padding: 0; margin: 0; } .think_default_text{ padding: 4px 48px;} a{color:#2E5CD5;cursor: pointer;text-decoration: none} a:hover{text-decoration:underline; } body{ background: #fff; font-family: "Century Gothic","Microsoft yahei"; color: #333;font-size:18px} h1{ font-size: 100px; font-weight: normal; margin-bottom: 12px; } p{ line-height: 1.6em; font-size: 42px }</style><div style="padding: 24px 48px;"> <h1>:)</h1><p> ThinkPHP V5<br/><span style="font-size:30px">十年磨一劍 - 爲API開發設計的高性能框架</span></p><span style="font-size:22px;">[ V5.0 版本由 <a href="http://www.qiniu.com" target="qiniu">七牛雲</a> 獨家贊助發佈 ]</span></div><script type="text/javascript" src="https://tajs.qq.com/stats?sId=9347272" charset="UTF-8"></script><script type="text/javascript" src="https://e.topthink.com/Public/static/client.js"></script><think id="ad_bd568ce7058a1091"></think>';
        return "前臺Index控制器的index方法";
    }

    public function test(){
        return "前臺Index控制器的test方法";
    }

    public function diaoyong(){
        //調用前臺User控制器
        //1、通過命名空間進行實例化
        $module=new \app\index\controller\User;
        echo $module->index();

        //方法2、使用use
        $module2=new User();
        echo "<br>".$module2->use_fun();

        //方法3、使用系統方法
        $module3=controller('User');
        echo "<br>".$module3->sys_fun();
    }

    public function admin_diaoyong(){
        //調用後臺Stupid控制器
        //1、使用命名空間
        $module=new \app\admin\controller\Stupid;
        echo $module->index();
        //2、使用use
        $module2=new Stupid();
        echo "<br>".$module2->use_fun();

        //3、使用系統方法
        $module3=controller('admin/Stupid');
        echo "<br>".$module3->sys_fun();
    }
}

index\controller\User.php

<?php
namespace app\index\controller;
class User{
    public function index(){
        return "前臺新建user控制器的index方法";
    }

    public function use_fun(){
        return "使用use方法進行跨控制器調用";
    }

    public function sys_fun(){
        return "使用系統方法進行跨控制器調用";
    }
}

admin\controller\Index.php

<?php
namespace app\admin\controller;
class Index{
    public function index(){
        return "新建後臺模塊,Admin控制器下的index方法";
    }
}

admin\controller\Stupid.php

<?php
namespace app\admin\controller;
class Stupid{
    public function index(){
        return "新建後臺模塊的Stupid控制器下的index方法";
    }
    public function use_fun(){
        return "使用use方法跨模塊調用";
    }

    public function sys_fun(){
        return "使用系統方法跨模塊調用";
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章