thinkphp5.0學習筆記


2019-11-11學習筆記php

安裝TP5.0
  a)源代碼包下載
    在thinkphp官網下載(www.thinkphp.cn)下載 完整版本的TP5.0css

  b) composer 安裝
    切換到網站的根目錄
    切換國內鏡像 composer config -g repo.packagist composer https://packagist.phpcomposer.com
    下載源碼包composer create-project topthink/think composer_tp5 --prefer-dist
                               項目名
  c) git 安裝TP5.0
    首先命令行切換到網站根目錄
      拷貝項目倉庫git clone https://github.com/top-think/think git_tp5
      切換到git_tp5目錄下
      拷貝核心框架代碼 git clone https://github.com/top-think/framework thinkphpgit

1.目錄結構
|--applcation 應用目錄 是整個網站的核心目錄
|-----|-----index 前臺目錄
|-----|-------|----controller 控制器
|-----|-------|----modle 數據模型
|-----|-------|----view 頁面
|-----|-----admin 後臺目錄
|--extend 擴展類庫目錄
|--public 靜態資源和入口文件
|-----|-----static 存放靜態資源 css js img
|-----|-----index.php 入口文件
|--runtime 網站運行臨時目錄
|--tests 測試目錄
|--thinkphp TP框架的核心文件
|-----|-----lang 語言包
|-----|-----library TP核心文件
|-----|-----tpl 模板頁面
|--vendor 第三方擴展目錄github

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

3.瞭解TP開發模式
  (0) 開啓調試模式 application\config.php
    app_debug' => true,
  (1) 鏈接數據庫 application\database.php
  (2)在控制器中書寫代碼
  (3)視圖頁面數據庫

2019-11-12學習筆記數組

1.TP架構的概述
  Thinkphp使用了MVC模式,她強制性的使應用程序的輸入 處理和輸出分開.使用MVC應用程序被分紅三個核心部件:模型(M) 視圖(V) 控制器(C),他們各自處理本身的任務瀏覽器

2.入口文件 ( public\index.php)
  入口文件負責整個TP的請求架構

3.應用 整個application文件
  一個應用表明一個網站app

4.模塊(之前臺爲例)模塊地址在(application\index)
  網站的全部前臺相關的都與其有關

  新建後臺模塊
    在應用目錄下(application下)新建一個admin目錄
    在admin目錄下新建model view controller目錄

    控制器中新建一個Index.php控制器
    重複操做,聲明命名空間,聲明控制器,聲明方法

    經過地址欄訪問http://www.thinkphp.com/index.php/admin/Index/index

5.控制器 控制器目錄在(application\index\controller)
  書寫業務邏輯

  //在controller下新建一個User.php控制器,裏面應該先寫命名空間
  namespace app\index\controller
  //聲明控制器(控制器類名必須跟文件名一致)
  class User{
  //inedx方法
    public function index(){

    }
  }

  地址欄訪問 http://www.thinkphp.com/index.php/index/User/index

  注意事項:
    a.控制器的文件名必須首字母大寫
    b.控制器必須聲明命名空間
    c.控制器中類名必須和文件名一致

6.操做方法
  操做地址:通常都是在控制器的文件中

  新建一個操做(以 前臺Index控制器爲例)
    打開前臺控制器(application\index\controller\Index.php)
    在控制器中新建test方法
  地址欄訪問

7.模型(通常都只數據模型 以 前臺模型爲例)
  模型的地址(application\index\model)
  做用:負責數據庫的相關的處理

8.視圖(頁面 以 前臺頁面)
  視圖地址(application\index\view)
  做用:就是網站的頁面

9.命名控制
  與目錄有關(以 前臺index控制器命名空間爲例)
  地址 C:\composer\tp5\application\index\controller
  命名空間 namespace app \index\controller

10.跨控制器調用  

    調用當前模塊的控制器例如(application\index\controller\Index.php)裏面的index方法調用(application\index\controller\User.php)User控制器

      a.使用命名空間
         $model = new \app\index\controller\User;
        echo $model -> index();
      b. 使用use
        use app\index\controller\User
        $model = new User;
        echo $model -> index();
      c. 使用系統的方法
        $model = controller('User');
        echo $model -> index();
    調用後臺模塊的控制器例如(application\index\controller\Index.php)裏面的index方法調用(application\admin\controller\Index.php)Index控制器
    a. 使用命名空間
      $model = new \app\admin\controller\Index;
       echo $model -> index();
    b. 使用use
      use app\admin\controller\Index as AdminIndex ------->與當前的控制器名Index同名的時候須要起別名
      $model -> new AdminIndex;或($model -> AdminIndex())
      echo $model -> index();
    c.使用系統方法
       $model -> controller('admin/Index'); 注意注意 '/'必定不能錯,否則會打印不出來
      echo $midol -> index();
11.調用方法
  調用當前控制器中的方法例如application\index\controller\Index.php下的index方法)裏面的index方法調用(application\index\controller\Index.php下的test方法)
    使用面向對象的方法
      a. echo $this -> test();
      b. echo self::test();
      c. echo Index::test(); ---------> Index是當前的控制器
    使用系統方法
      d. echo action('test');

  調用同一個模塊下的其餘控制器的方法例如(application\index\controller\Index.php下的index方法)裏面的index方法調用(application\index\controller\User.php下的test方法)
    使用命名空間
       $model = new \app\index\controller\User;
       echo $model -> test();
    使用系統方法
      echo action('User/test');
  調用其餘模塊的其餘控制器的方法例如(application\index\controller\Index.php下的index方法)裏面的index方法調用(application\admin\controller\User.php下的test方法)
    使用命名空間
       $model = new \app\admin\controller\User;
       echo $model -> tset();
    使用系統方法
      echo action('admin/User/test');
12.主要分析TP執行的流程
  a.入口文件(public\index.php)
    做用:定義應用目錄常量,定義了一些基礎配置
    加載框架的引導目錄
      b.加載框架的引導文件(thinkphp\start.php)
        做用:對應用進行運轉
        引導基礎文件
        c.加載框架的基礎引導文件(thinkphp\base.php)
          做用:加載了系統常量
          引入了一個loader類(thinkphp\library\think\Loader.php)
          引入環境變量
          註冊自動加載機制
          註冊異常處理機制(thinkphp\library\think\Error.php)
          加載管理配置(thinkphp\convention.php)
  d.運行應用(thinkphp\library\think\App.php)下的run方法
    作了什麼操做:加載當前控制器中的initCommon()方法
    加載當前控制器的init()方法
    加載各類配置文件
    加載公共文件
    加載語言包
    設置時區
    記載當前控制器routeCheck() 方法 路由檢測
    調用控制器中的exec方法
    根據用戶請求進行分發處理
    根據不一樣請求類型加載對應文件 module方法
    加載到對應的控制器和對應的方法
  e.響應輸出
    用戶看到的全部界面就加載出來了

2019-11-15

1.配置文件的格式
  thinkphp支持多種格式的配置格式,可是最終都是解析爲php數組
  咱們主要的形式就是數組
    return[
      'name' => '',
      'age' => '',
    ]
2.配置
  a.慣例配置
    慣例配置的目錄(thinkphp\convention.php)
    注意: 通常不建議修改慣例配置
  b.應用配置
    應用配置目錄(application\config.php)
  c.擴展配置
    擴展配置目錄(application\database.php)數據庫配置目錄 (application\extra\queue.php)用戶能夠自定義配置目錄
    擴展配置其實就是對配置文件進行分目錄管理
    讀取database中的擴展項
      dump(config(擴展文件名.password));
      dump(config(database.password));
    讀取全部的database擴展
      dump(config('database'));
      自定義擴展配置(application\extra)下能夠新建user.php擴展項
  d.場景配置
    解決問題
      開發過程當中可能在不一樣環境下進行開發
    如何使用
      修改應用配置(application\config.php)裏面的第22行,應用模式狀態
        'app_status' => 'home', 指的是家庭環境下
      在應用目錄下新建(application)對應的文件名(home.php)
      在home.php裏面書寫相關配置
  e.模塊配置
    解決問題
      每個模塊都有本身特有的配置
    如何使用(之前臺模塊爲例)
      在前臺模塊下(application\index)新建一個config.php
      打開配置文件書寫配置
        <?php
          return [
            'index' => '我是前臺配置',
          ];
   f.動態配置
    系統方法
      //config('參數1','參數2');
      config('name','php開發');
    系統類
      \think\Config::get('name','php開發');

      use \think\Config;
      Config::set('name','php開發');
3.讀取配置
  當慣例配置文件存儲的是一條配置
    'name' => 'mryang'
  系統函數讀取配置
    config('name');

  經過系統類讀取配置 若是配置項存在直接輸出 , 不存在輸出爲NULL
    \Think\Config::get('name');
    dump('\Think\Config::get('abc'));

  使用use
    use \think\Config;
    echo Config::get('name');

  當慣例配置文件存儲的是數組
    people =>[
      'name' => 'mryang',
      'age' => 24,
      'sex' => '男',
    ]

  系統函數讀取配置
    echo config('people'); 輸出爲數組裏面的值

  經過系統類讀取配置
    \Think\Config::get('people.name'); 輸出數組裏面的name值

  使用use
    use \think\Config;
    echo Config::get('people');

  讀取全部配置
    dump(config());這樣就能夠讀取全部配置


4.環境變量配置
  a.tp5.0支持環境變量配置
  b.設置環境變量配置
    打開網站的根目錄(D:\www\tp5)新建.env
    書寫環境配置(注意不支持中文)
      name = yunzhimeng
      age = 18
  c.讀取環境配置
    命名空間
      dump(\think\Env::get('name'));
      dump(\think\Env::get('abc','不存在時使用默認值'))
      dump(\think)Env::get('database.type') 不能讀取所有數組配置,只能讀取數組中配置中的某一個
    使用use
      use \think\Env;
      dump(Env::get('name'));
      dump(Env::get('database.type')) 不能讀取所有數組配置,只能讀取數組中配置中的某一個
  d.如何使用
    打開配置文件
      use \think\Env
      return [
        //應用調試模式
        'app_debug' => Env::get('app_debug',false),
        //應用模式狀態
        'app_status' => Env::get('app_status',''),
      ];

配置文件的加載順序
優先級
動態配置 > 模塊配置 > 場景配置 > 擴展配置 > 應用配置 > 慣例配置
加載順序
慣例配置 > 應用配置 > 擴展配置 > 場景配置 > 模塊配置 > 動態配置
配置的實現原理
後面的加載的配置,把前面同名覆蓋

總結: 系統類(thinkphp\library\think) Config 設置和獲取配置文件 系統方法(thinkphp) Controller 實例化控制器 action 調用模塊的方法 config 設置和讀取配置 dump 瀏覽器友好的變量輸出

相關文章
相關標籤/搜索