Php 在Workbench包中添加Sentry 2配置

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

我正在使用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/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);