Thinkphp5實現加載第三方類庫的方法

thinkphp5 很方便的加載我們自己的類庫的。但是得嚴格按照他的規則來。強制我們使用命名空間。今天那麼我精細的給大家講講該怎麼加載。


1.首先 我們按照默認的方式進行加載

我們在他默認的拓展目錄新建文件 如圖所示

這裏我新建一個lib1目錄 那麼我們的測試類庫是Test1.php

該文件的代碼如下

<?php
/**
 * Created by PhpStorm.
 * User: lenovo
 * Date: 2018/4/16
 * Time: 16:40
 */
namespace lib1;

class Test1{
    public function sh(){
        return '我是test1<br>';
    }
}

執行效果


說明一下:首先這個類的命名空間必須和該文件所在的子目錄保持一致。這裏是lib1  然後文件名必須和類名一致

反例效果



執行情況



他還支持多級目錄 和子命名空間定義,但是必須和目錄結構對應

舉個例子



我多級嵌套。。

文件代碼


<?php
/**
 * Created by PhpStorm.
 * User: lenovo
 * Date: 2018/4/16
 * Time: 17:15
 */

namespace lib1\lib2;

class test2{
    public function sh(){
        return '我是test2<br>';
    }
}

效果圖



看到沒

有些同學說 我不想把我的那個目錄放在extend下 我想自己弄個,好吧 也行的。不過你需要改改。

但是我們需要先配置一下在index.php

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2016 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <[email protected]>
// +----------------------------------------------------------------------

// [ 應用入口文件 ]

// 定義應用目錄
define('APP_PATH', __DIR__ . '/../application/');
// 加載框架引導文件

//重新定義自己的拓展目錄
$extend_path = str_replace('\\',DIRECTORY_SEPARATOR,dirname(__DIR__).DIRECTORY_SEPARATOR.'myextend'.DIRECTORY_SEPARATOR);
echo $extend_path;
define('EXTEND_PATH',$extend_path);
require __DIR__ . '/../thinkphp/start.php';

然後 我們目錄結構



文件代碼

<?php
/**
 * Created by PhpStorm.
 * User: lenovo
 * Date: 2018/4/16
 * Time: 17:23
 */

namespace lib3;

class test3{
    public function sh(){
        return '我是test3<br>';
    }
}

效果圖



這樣就ok 。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章