[英]Fallback location for psr-0/4 autoloading
我正在構建一個PHP包,在其中我有一個文件夾(比方說/vendor/myvendor/packagename/src/Classes
)我想用PSR-4自動加載。
但我還想提供一個選項,將該文件夾從當前位置復制到項目根目錄(比如/packagename/Classes
,這與Laravel的publish
命令一致)。
那么我該如何進行自動加載呢?
我希望Composer首先看看該文件夾是否存在於應用程序的根目錄下,如果確實存在,則自動加載。 否則回退到/vendor
的默認位置。 那可能嗎?
FWIW,這是Laravel特定包,這意味着我可以使用Laravel的publish
命令來復制整個文件夾,但隨后
我希望Composer首先看看該文件夾是否存在於應用程序的根目錄下,如果確實存在,則自動加載。 否則回退到/ vendor中的默認位置。 那可能嗎?
對的,這是可能的。
您需要在ServiceProvider
提及包的所有內容。
有關如何在文檔中發布視圖,資產以及它符合您需求的各種信息。
看看文檔:
我在這里為你復制一些例子:
如果要發布翻譯,則需要執行以下任務:
/**
* Perform post-registration booting of services.
*
* @return void
*/
public function boot()
{
$this->loadTranslationsFrom(__DIR__.'/path/to/translations', 'courier');
$this->publishes([
__DIR__.'/path/to/translations' => resource_path('lang/vendor/courier'),
]);
}
如果您沒有app's
lang/vendor/courier
翻譯,那么它將回退到您的包翻譯。
您無需復制類代碼,這些代碼可能保留在您的包目錄中。 您復制的唯一內容將是您的觀點,資產,翻譯文件等。
這應該對你有幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.