2015-02-10 71 views
2

我正在使用Composer構建一個小型項目,但現在我必須在供應商文件夾的父文件夾中使用一些自定義代碼。使用Composer的自動加載器和個人代碼

類似的文件結構:>公司名稱>命名空間>classfile.php

是否可以有效地使用自動加載磁帶機的作曲家?看起來好像是這樣,但我無法繞過它。

使用第二個自動加載器腳本會更容易嗎?

回答

3

我們通過作曲家加載我們自己的代碼。

我們的代碼安裝在我們公司名下的lib文件夾中。我們的作曲家文件看起來像這樣。

{ 
    "config": { 
     "vendor-dir": "lib" 
    }, 
    "require": { 
     "twig/twig": "v1.15.1", 
     "symfony/symfony": "2.5.4" 
    }, 
    "autoload": { 
     "psr-4": { 
      "CompanyName\\": "lib/companyName/src" 
     } 
    } 
} 

自動加載psr4部分是重要部分。 CompanyName將解析位於lib/companyName/src的文件。

裏面的lib /的companyName/src目錄,你有一個文件名爲ThingDoer.php

<?php 

namespace CompanyName; 

class ThingDoer { 
    public static function doThings() {} 
} 

現在在你的代碼庫中的任何地方,你可以叫CompanyName\ThingDoer::doThings();

+0

在你的代碼,是公司名稱,命名空間? – nobrandheroes 2015-02-10 22:25:25

+0

正確(我認爲它的公司名稱,大寫事項的種類),爲清晰起見編輯了我的答案。 – castis 2015-02-10 22:27:50

+0

很酷。這很棒。隨機,問題你的情況。你有src文件夾中的類的任何特定原因?與僅在companyName文件夾中相反? – nobrandheroes 2015-02-10 22:29:43

相關問題