簡體   English   中英

在我的命名空間中使用庫

[英]Using libraries in my namespace

我的項目中有幾個庫是在namespace 當我需要在控制器(MVC)使用它們之一時,我要包含一個require並使用該庫,該庫也位於同一名稱空間中。 我想知道我是否可以加入名稱空間,所以我不需要每次都在控制器內部使用這個需求。 我的autoload已加載到另一個文件中,然后調用controller以繼續執行規則。

實際控制人

namespace application\controller\rule;

use application\controller\database;
use application\model\object as object;

require '/xxx/xxx/autoloadLibary1.php';
require '/xxx/xxx/autoloadLibary2.php';
require '/xxx/xxx/autoloadLibary3.php';
require '/xxx/xxx/autoloadLibary4.php';

class MyClass {}

我想我可能尚未完全了解您,但我想您想使用

require '/xxx/xxx/autoloadLibary1.php'; 作為use application\\xxx\\xxx;

因此,為此,您必須使用composer或我經常使用的替代軟件來代替composer ,基本上,使用鏈接可以比composer更加安全地下載psr-4 / psr-0自動加載器,復制文件composer-file-loader-master / PackageLoader。 PHP到您的項目。

用這個

include __DIR__ . '/includes/PackageLoader.php';
$packageLoader = new PackageLoader\PackageLoader();
$packageLoader->load( __DIR__ . '/includes' );//change where your composer.json file located

使用此psr-4自動加載功能在單個名稱空間中定位兩個以上的位置

{
    "autoload": {
        "psr-4": {
            "Namespace\\": [
            "./xxx/xxx/",
            "./another-location"
        ]
        }
    }
}

現在,如果使用此語句:

use application\controller\database;
use application\model\object as object;

use application\xxx\xxx\autoloadLibary1;
use application\xxx\xxx\autoloadLibary2;
use application\xxx\xxx\autoloadLibary3;
use application\xxx\xxx\autoloadLibary4;

它工作得很好! 編碼愉快! 如果有幫助,一定要接受我的支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM