[英]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.