是否有可能在做composer安装/更新时从'vendor'目录中安装文件?
如果你不明白我的意思,让我再详细说明一下。
我有一个配置文件(s),存储在/config/ini/<filename>.ini
和vendor
目录中的许多供应商模块。是否有可能将ini文件与供应商包打包,以便在安装时将它们写入正确的目录?
理想情况下,我需要能够实现这一点,因为我有一个认证供应商模块,将需要安装在各种不同的应用程序。能够做到这一点意味着私钥和其他共享配置选项可以存储在供应商模块中(在一个私有的仓库中)。
谢谢迈克
可以。您需要创建一个附加到post-install-cmd
或post-update-cmd
的脚本。该脚本将查看包目录,选择问题并将它们转储到正确的目录。
应该在这几行左右:
use ComposerScriptCommandEvent;
class ScriptHandler
{
public function bundleConfigs(CommandEvent $event)
{
$homeDir = $event->getComposer()->getConfig()->get('home');
$vendorDir = $event->getComposer()->getConfig()->get('vendor-dir');
$files = glob($vendorDir, '/*Module/config/*.ini');
foreach ($files as $file) {
copy($file, $homeDir.'/config/ini/'.basename($file));
}
}
}