Php 在Workbench包中添加Sentry 2配置
我正在使用Laravel4.1并在workbench中处理我自己的包。我在包composer.json中添加了额外的repo(sentry 2)。Sentry工作正常,但我无法通过从workbench/package/name/src/config/packages/cartalyst/Sentry/config.php加载配置文件来覆盖配置 我的服务提供商看起来是这样的:Php 在Workbench包中添加Sentry 2配置,php,symfony,laravel,Php,Symfony,Laravel,我正在使用Laravel4.1并在workbench中处理我自己的包。我在包composer.json中添加了额外的repo(sentry 2)。Sentry工作正常,但我无法通过从workbench/package/name/src/config/packages/cartalyst/Sentry/config.php加载配置文件来覆盖配置 我的服务提供商看起来是这样的: public function boot() { // https://coderwall.com/p/s
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包中正确加载配置我想你不能,因为正如cartalyst sentry官方网站上解释的,“sentry是第三方” 但您仍然可以在workbench中的composer文件中使用一些技巧 在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)
希望这能帮助你
或者(更简单)
在composer脚本中,按键添加:
"php artisan config:publish --package=cartalyst/sentry"
然后,在PackageServiceProvider中的启动方法处,
设置您自己的配置。
例如:
public function boot()
{
// for change user sentry model
\Config::set('sentry::config.user.model', 'Vendor\Package\YourUserModel');
}
我认为这是更简单的方法。:) 下面的示例显示如何在包(workbench)中添加Basset的配置覆盖。您必须将此代码放入服务提供商的
注册
方法中
// 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);