У меня очень странная проблема с моим проектом, которая возникла во время моей обычной повседневной работы. Я получаю сообщение об ошибке «Преобразование массива в строку», которое появляется на каждой странице моего проекта. SentryServiceProvider.php выдает это:
throw new \InvalidArgumentException("Invalid hasher [$hasher] chosen for Sentry.");
Я сделал некоторую отладку, и похоже, что значение $ hasher равно нулю. Когда я попытался жестко закодировать значение $ hasher следующим образом:
//$hasher = $app['config']['cartalyst/sentry::hasher'];
$hasher = 'sha256';
Это вроде нормально работало, однако я получал другие исключения запросов — я думаю, это потому, что он не мог найти другие конфигурации часового. Насколько я понимаю, файл конфигурации Sentry, который находится в app> config> packages> cartalyst> sentry, не был подобран должным образом. Есть идеи, почему это происходит?
Я возвращаюсь к Эта тема
Вот раздел, который вызывает ошибку:
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.");
});
}
Задача ещё не решена.
Других решений пока нет …