亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

快速入門ThinkPHP 5.0--基礎篇

難度中級
時長 5小時20分
學習人數
綜合評分9.63
150人評價 查看評價
9.8 內容實用
9.6 簡潔易懂
9.5 邏輯清晰
  • 響應對象:

    ????可在方法名中帶一個參數:type

    ????方法中判斷請求類型:

    ????if(!is_array($type,['json','jsonp','xml'])){$type = 'json';}

    ????Config::set('default_return_type',$type);


    查看全部
    0 采集 收起 來源:響應對象

    2018-10-30

  • request類input函數調用:

    ????文件中引入think\Request;

    ????在方法中引入,如:public function index(Request $request)

    ????可調用? 有:get、post、put、patch、delete、param、request、session、cookie、server、env、path、file

    ????操作:

    ????調用模式:$request->參數類型(key名,key值,函數名);

    ????$request->session('email','[email protected]','trim');

    ????input('patch.sid');


    查看全部
    0 采集 收起 來源:input助手函數

    2018-10-30

  • #獲取瀏覽器輸入框的值

    ? ? ? ? dump($request->domain());

    ? ? ? ? dump($request->pathinfo());

    ? ? ? ? dump($request->path());

    ? ? ? ? #請求類型

    ? ? ? ? dump($request->method());

    ? ? ? ? dump($request->isGet());

    ? ? ? ? dump($request->isPost());

    ? ? ? ? dump($request->isAjax());

    ? ? ? ??

    ? ? ? ? #獲取請求的參數

    ? ? ? ? dump($request->get());

    ? ? ? ? dump($request->param());

    ? ? ? ? dump($request->post());

    ? ? ? ? //session('name','sunxiaopeng');

    ? ? ? ? dump($request->session());

    ? ? ? ? cookie('email','[email protected]');

    ? ? ? ? dump($request->cookie());

    ? ? ? ??

    ? ? ? ? dump($request->param('type'));

    ? ? ? ? dump($request->cookie('email'));

    ? ? ? ??

    ? ? ? ? #獲取模塊 控制器 和操作

    ? ? ? ? dump($request->module());

    ? ? ? ? dump($request->controller());

    ? ? ? ? dump($request->action());

    ? ? ? ??

    ? ? ? ? dump($request->url());

    ? ? ? ? dump($request->baseUrl());


    查看全部
  • tp是一個單入口框架,所有請求都進入index.php入口文件;我們通過index.php來接受所有http請求(即用戶請求),請求中的所有參數,我們都可以通過Request這個對象接受和處理;

    獲取請求對象的三種方式:

    1、助手函數

    $request = request( );

    dump($request);//即可打印出請求的對象


    2、使用think下的request類獲取實例(單例模式))

    需要先加載request命名空間

    use think\Request;()

    public function index( ){

    ? $request = Request::instance( );

    dump($request);即可打印出請求的對象

    }

    3、直接注入到方法(建議使用)

    需要先加載request命名空間

    use think\Request;

    在方法中傳入request對象參數 如下:

    public function index(Request ?$request){

    ? ?dump($request);

    }

    單例模式,是一種常用的軟件設計模式。在它的核心結構中只包含一個被稱為單例的特殊類。通過單例模式可以保證系統中,應用該模式的類一個類只有一個實例。即一個類只有一個對象實例;比如Config類,Config::get('key'); Request類,Request::instance( );等等,框架中各自只有這一個類;
    并且單例模式那個類只需要實例化一次,在整個框架下都可以直接使用了


    查看全部
    0 采集 收起 來源:請求對象獲取

    2018-10-30

  • 路由:url簡化

    步驟:

    1.先在應用配置文件中定義


    conf/config.php配置里設置

    // 是否開啟路由

    'url_route_on' ?=> true,

    // 是否強制使用路由,當開啟強制路由,一定要用路由,值為true即為開啟

    'url_route_must'=> false

    2.然后再conf文件夾下新建自定義路由文件route.php(文件名稱必須為route.php)

    ? 在里面定義規則:

    ? return ['news/:id' =>'Index/index/index'];

    ? 這時訪問index模塊下的index控制器下的index方法,并傳參數id時,就可以這樣localhost/news/5訪問就可以


    ? url()助手函數,當采用路由時,可將頁面上的默認訪問URL改為路由訪問URL。

    ? ?即echo url('index/index/index',['id' => 10]);打印出來的結果是 localhost/news/10

    ? ?

    ? ?

    ? ?tp5路由

    ? 1.這里所說的路由是tp5才引入的路由概念

    ? 2.如何在tp5中使用路由

    ? ? a.通過配置url_route_on參數(默認為開啟),在config.php同級目錄下創建route.php文件配置路由規則,如圖所述

    ? ? b.通過配置url_route_must參數,如果強制開啟路由后,那么tp中通過path_info訪問的url規則將失效,所有操作的訪問都需要在route.php中配置


    查看全部
    1 采集 收起 來源:路由

    2018-10-30

  • 入口文件綁定

    就是說,通過在入口文件(index.php)里設置

    define('BIND_MODULE','admin');//定義此常量,綁定admin模塊,這時整個項目,只能訪問admin這個模塊

    define('BIND_MODULE','admin/index');//綁定admin模塊下的index控制器(只允許訪問admin模塊下的index控制器)

    define('BIND_MODULE','admin/index/index');//綁定admin模塊下的index控制器下的index方法(只允許訪問admin模塊下的index控制器下的index方法)

    可以使用戶在訪問網站時,只能訪問指定模塊下的控制器,或者只能訪問指定模塊下的指定控制器下的指定方法;


    這個功能存在的意義?

    當我們的項目在給第三方對接時,就可以重新定義一個入口文件(比如叫api.php),原本默認的入口文件是index.php依然存在,index.php這個入口文件是供正常用戶訪問項目的入口文件;

    通過定義一個新的入口文件來限制第三方訪問的模塊(比如叫api.php);并且第三方只能通過api.php這個入口文件訪問,才能得到他們想要的數據,同時我們一般把第三方想要的數據單獨放在一個模塊(比如api模塊);

    這時可以在api.php里面設置,只允許第三方訪問指定模塊,或者指定方法;其他模塊或者其他方法不允許其訪問;


    在public下可創建多個入口文件,可實現不同入口文件訪問不同模塊。入口文件名與模塊文件必須相同,自動訪問與之對應的模塊。

    這時需要在在conf->config.php 里配置自動綁定 "auto_bind_module" ?=> true ?

    相當于public下api.php文件define("BIND_MODULE","api");

    注意新建的入口文件里面的一些內容是默認的:

    <?php

    // 定義應用目錄

    define('APP_PATH', __DIR__ . '/../app/');

    define('CONF_PATH', __DIR__ . '/../conf/');

    // 加載框架引導文件

    require (__DIR__ . '/../thinkphp/start.php');

    ?>


    查看全部
  • 1、綁定模塊:

    1define('BIND_MODULE','admin');

    如果是這樣綁定的,那訪問admin模塊時只需要加上控制器名和方法名:

    如: http://localhost/index/index?

    或是?http://localhost/user/index?

    這種是只綁定模塊名,可以訪問模塊下的所有控制器

    1define('BIND_MODULE','admin/index');

    若是這種方式綁定了? 模塊名/控制器名? 那訪問時只可以訪問這個控制器的方法,不可以訪問其它控制器的方法

    如:?http://localhost/這種表示訪問?admin模塊下的index控制器下的index方法

    http://localhost/demo 訪問admin模塊下的index控制器下的demo方法

    http://localhost/user/index 表示訪問 admin模塊下的user控制器下的index方法,這種方式就不能訪問了

    2、大型項目時就不在這里設置 BIND_MODULE 的綁定了

    那就要新建一個入口文件了。比如第三方接口文件操作

    那就要新建 public/api.php文件 ,然后再開啟入口文件自動綁定,即? 訪問api.php文件時自動訪問 app/api/controller/Index.php文件。


    查看全部
  • 在入口文件中可以進行以下操作: 1.必須引入thinkphp框架的引導文件(它可以幫助過濾些網站的安全、檢測的問題) 2.可以在這里定義在thinkphp/base.php中有的一些常量,如應用目錄常量、配置文件目錄常量等。沒定義的話則會使用base.php中的默認值。

    查看全部
    0 采集 收起 來源:入口文件

    2018-10-30

  • 1.什么是環境變量

    tp除了加載項目配置config.php,還會去加載一個可能存在的 env.php ,位于項目根目錄下,也就是跟composer.json同級。

    有點類似于場景配置,就是說在不同的情況下,項目對配置的要求會有所不同,比如項目的開發環境、預上線環境、測試環境、生產環境等等對配置的要求都不同;這個時候我們就要切換到相應的配置;


    2.方法步驟:

    ? ? ?a.在和app文件夾同級目錄下,新建".env"或者env.php這個文件;

    ? ? ? env.php格式和配置文件一樣,返回一個數組,例如:

    ? ? ? ? ? ? ?<?php

    ? ? ? ? ? ? return [

    ? ? ? ? ? ? 'app_debug' =>false

    ? ? ? ? ? ? ? ? ? ?];

    ? ? ? ? ? ? ??>

    如果是新建的文件格式是.env,里面就不用<?php?>標識符了;直接書寫 ?'app_debug' =>false這樣就行;

    通過以上方式就算是初步把env配置設置好了,下面步驟就是開始使用env里面的配置了;

    b.接下來我們要掌握怎么獲取到.env文件里面的配置了;

    例:我們在.env文件里書寫了status=dev,接下來我們在conf文件下的config.php里面來獲取這個設置:

    在config.php文件里與環境變量相關的都從.env配置文件中獲取值

    <?php

    use think\Env;//注意這里別忘了寫

    return [

    //tp5提供了一個慣例參數app_status,只需要改變它的值就能實現一鍵切換運行環境

    'app_status' => Env::get('status','dev');

    ];

    使用Env::get()方法獲取配置的參數值;(或者$_ENV['a'])對于組參數需要這樣使用Env::get(database.user);

    同時系統也會自帶環境變量;查看所有環境變量的方式dump($_ENV);

    3.env.php優先級:高于config.php;就是說.env里的設置會覆蓋config.php里的配置;


    查看全部
  • .env文件寫法

    查看全部
  • config類和助手函數config();主要功能獲取和設置配置的兩種方法

    tp5的全局config()函數;

    ? 1.實現的原理

    ? ? a.config()函數的所有功能來源于thinkphp框架目錄下library目錄下的think目錄下的config.php類提供的方法

    ? ? b.通過thinkphp框架目錄下的helper.php文件定義了一個全局的function config()方法,根據傳參調用config.php類中不同的方法實現不同的功能,注意Config是首字母大寫,因為tp5中所有類首字母都是大寫

    ? 2.config()函數的使用

    ? ? a.可以在項目任何地方調用

    ? ? b.因為不能確保在helper.php文件定義全局function config()方法之前是否已經定義了,所以在項目中建議使用config.php中的類方法操作整個框架的配置參數

    ? ? c.項目文件中通過 use think\config 引入類方法,因為是靜態類,所以通過 Config::get() 可以獲取所有配置的參數

    ? ? 獲取配置參數的值:Config::get('key'); ? ?等價于 ? config('key');

    ? ? 設置配置參數的值:Config::set('key', 'value'); ? 等價于 ? config('key', 'value');

    ? ? 設置配置參數的作用域:Config::set('key', 'value', '作用域'); ? 等價于 ? Config('key','value','作用域');

    ? ? 檢測配置參數是否存在:Config::has('key'); ?等價于 ? Config('?key');

    ? ? 注意:參數不存在或者值為null,var_dump時都返回false;例:key=null; $a=Config::has('key'); var_dump($a);則返回false;

    ? ??

    設置配置時,注意所設置的配置的服務作用域;

    例:Config::set('key', 'value', 'index');設置配置的作用域是服務index模塊的,那么獲取的時候也要加上作用域

    Config::get('key','index');


    查看全部
  • 1、public function __construct(){} 在類文件中執行下面任何方法前都會用執行這個方法。

    在這方法中直接用助手函數。https://img1.sycdn.imooc.com//5b6c125c00010b0008550299.jpg

    運行結果為

    https://img1.sycdn.imooc.com//5b6c12b10001b75d03450126.jpg

    如果只在方法里動態配置應用項,那只有這個方法才可以使用,同文件的其它方法是不能使用的。如:

    https://img1.sycdn.imooc.com//5b6c15440001d87208670595.jpg


    查看全部
    0 采集 收起 來源:動態配置

    2018-10-29

  • 模塊配置:專門為單個模塊提供配置服務,之前的擴展配置和場景配置都是相對整個項目應用級別的,而模塊配置是相對模塊級別,作用域不同

    在conf文件夾下新建文件夾,文件夾的名字和相應的模塊名字必須一致,例如在conf文件夾下新建文件夾的名為index,則這個文件夾下的所有配置只對index這個模塊生效;

    1.在conf目錄下index文件夾下新建config.php文件來進行對單個模塊的配置進行設置,注意這個文件名必須為config.php;

    2.conf目錄下index文件夾下也可以通過創建extra目錄來擴展配置;

    |conf配置的作用域是整個項目應用

    |模塊配置作用域只對相應單個模塊生效;


    查看全部
    0 采集 收起 來源:模塊配置

    2018-10-29

  • 配置文件執行順序 conf/extra/database.php > conf/database.php > thinkphp/convention.php

    在不同的環境中使用不同的配置文件叫場景配置

    在conf/config.php文件中加多一項:

    home場景時就加conf/home.php文件,office環境就加一個conf/offic.php文件,下面的值也改成offic

    'app_status'	=>	'home',

    home場景時就在conf里加一個home文件

    場景配置文件 conf/home.php可以跟conf/config.php文件執行array_merge()操作

    database會替換掉全部,所以需要全部復制。tp5的bug

    查看全部
    1 采集 收起 來源:場景配置

    2018-10-29

  • extra->擴展配置

    config.php->應用配置

    database.php->數據庫的默認配置

    extra里面的database為擴展配置可以替換掉數據庫的默認配置convention下的database

    database.php可以跟extra同級目錄,而且可以替換掉應用配置config.php里面的database

    優先級:擴展配置>應用配置>默認配置


    查看全部
    1 采集 收起 來源:擴展配置

    2018-10-29

舉報

0/150
提交
取消
課程須知
1、有一定的php基礎。 2、對git composer 有一定的了解。 3、本機安裝好相應的開發環境 4、最好有一定的mvc 框架的使用經驗
老師告訴你能學到什么?
1、框架的搭建 2、目錄文件的介紹 3、環境的配置 (開發 測試 線上環境) 4、請求對象和數據請求參數獲取 5、相應對象和返回相應類型的數據 6、模板的使用 比較 判斷 循環

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!