Laravel 4 - 找不到Sentry config.php?

时间:2016-08-30 10:12:28

标签: php laravel laravel-4 sentry

我的项目出现了一个非常奇怪的问题,这个问题发生在我日常的普通工作中。我收到了一个“数组到字符串转换”错误,该错误出现在我项目的每一页上。 SentryServiceProvider.php抛出这个:

throw new \InvalidArgumentException("Invalid hasher [$hasher] chosen for Sentry.");

我做了一些调试,看起来值$ hasher为null。当我试图像这样硬编码值$ hasher时:

//$hasher = $app['config']['cartalyst/sentry::hasher'];

$hasher = 'sha256';

它有点工作但我得到不同的查询异常 - 我想这是因为它找不到其他的哨兵配置。根据我的理解,在app> config> packages> cartalyst> sentry中创建的Sentry配置文件未被正确选取。任何想法为什么会这样?

我正在回到this topic

以下是导致错误的部分:

class SentryServiceProvider extends ServiceProvider {

/**
 * Boot the service provider.
 *
 * @return void
 */
public function boot()
{
    $this->package('cartalyst/sentry', 'cartalyst/sentry', __DIR__ . '/../../vendor/cartalyst');
}

/**
 * Register the service provider.
 *
 * @return void
 */
public function register()
{
    $this->registerHasher();
    $this->registerUserProvider();
    $this->registerGroupProvider();
    $this->registerThrottleProvider();
    $this->registerSession();
    $this->registerCookie();
    $this->registerSentry();
}

/**
 * Register the hasher used by Sentry.
 *
 * @return void
 */
protected function registerHasher()
{
    $this->app['sentry.hasher'] = $this->app->share(function($app)
    {
        $hasher = $app['config']['cartalyst/sentry::hasher'];



        switch ($hasher)
        {
            case 'native':
                return new NativeHasher;
                break;

            case 'bcrypt':
                return new BcryptHasher;
                break;

            case 'sha256':
                return new Sha256Hasher;
                break;

            case 'whirlpool':
                return new WhirlpoolHasher;
                break;
        }


        throw new \InvalidArgumentException("Invalid hasher [$hasher] chosen for Sentry.");
    });
}

0 个答案:

没有答案