我正在使用laravel 4.1并在工作台中使用我自己的包。我在我的包composer.json中添加了额外的repo(哨兵2)。 Sentry工作正常但我无法通过从workbench / package / name / src / config / packages / cartalyst / sentry / config.php加载配置文件来覆盖配置
我的服务提供商看起来像这样:
public function boot()
{
// https://coderwall.com/p/svocrg
$this->package('package/name');
$config_path = __DIR__ . "/../../config/packages/cartalyst/sentry";
$this->app['config']->package('cartalyst/sentry', $config_path, 'cartalyst/sentry');
$this->app->register('Cartalyst\Sentry\SentryServiceProvider');
include __DIR__.'/../../routes.php';
}
public function register()
{
$this->app->booting(function()
{
$loader = \Illuminate\Foundation\AliasLoader::getInstance();
$loader->alias('Sentry', 'Cartalyst\Sentry\Facades\Laravel\Sentry');
});
}
当我覆盖config.php(workbench / package / name / src / config / packages / cartalyst / sentry / config.php)中的内容时,我仍然从vendor / cartalyst / sentry / src / config / config.php获取内容。如何在Workbench包中正确加载配置
答案 0 :(得分:1)
我认为你不能,因为官方的卡拉斯特哨所网站上说“哨兵是第三方”
但你仍然可以在workbench的作曲家文件中做一些技巧。
在workbench中的composer.json:
"scripts": {
"post-install-cmd": [
"php artisan clear-compiled",
"php artisan optimize",
"php artisan app:sentry" /* add your own command which organize to create your own sentry configuration (remember mkdir cartalyst/sentry/config.php store to app/config/packages) */
],
// more
},
这意味着,当您的软件包安装时,您自己的命令(例如:php artisan app:sentry)将被执行
希望这能帮到你......
在你的作曲家脚本中添加键:
"php artisan config:publish --package=cartalyst/sentry"
然后,在PackageServiceProvider中的boot方法中, 设置您自己的配置。 例如:
public function boot()
{
// for change user sentry model
\Config::set('sentry::config.user.model', 'Vendor\Package\YourUserModel');
}
我认为这是更简单的方法。 :)
答案 1 :(得分:1)
下面的示例显示了如何在我的包(workbench)中添加Basset的配置覆盖。您必须将此代码放在服务提供商的register
方法中。
// Get config loader
$loader = $this->app['config']->getLoader();
// Add package namespace with path set base on your requirement
$loader->addNamespace('basset',__DIR__.'/../config/basset');
// Load package override config file
$configs = $loader->load($this->app['config']->getEnvironment(),'config','basset');
// Override value
$this->app['config']->set('basset::config',$configs);