Uncaught ReflectionException: хэш класса не существует в развертывании посланника

Я использую посланника как обычно. Единственное предостережение в том, что во время разработки моего локального хоста (и когда я переключал ветки git) .. Я столкнулся с этой ошибкой:

[ReflectionException] Класс App \ Http \ Controllers \ Admin \ BatchUpdateStoresController не существует

Я решил это путем очистки кэша маршрутов (подробности см. Вот).

Проблема сейчас в том, что когда я развернул на envoyer .. Я получаю эту ошибку в журналах nginx:

PHP message: PHP Fatal error:  Uncaught ReflectionException: Class hash does not exist in /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php:1479
Stack trace:
#0 /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php(1479): ReflectionClass->__construct('hash')
#1 /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php(1433): Illuminate\Container\Container->build('hash', Array)
#2 /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php(2011): Illuminate\Container\Container->make('hash', Array)
#3 /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php(1686): Illuminate\Foundation\Application->make('hash')
#4 /home/forge/default/envoyer/releases/20180306221058/bootstrap/cache/compiled.php(524): Illuminate\Container\Container->offsetGet('hash')
#5 /home/forge/default/envoyer/releases/20180306221058/bootstrap/

Я пытался удалить /home/forge/default/envoyer/releases/20180306221058/bootstrap все вместе … но это только ухудшило ситуацию (то есть я больше не получал журналы ошибок nginx).

что я делаю?

2

Решение

Я столкнулся с пропавшим без вести Hash исключение класса после обновления до 5.6. Проблема была пропущенным шагом в руководстве по обновлению:

Вся конфигурация хеширования теперь находится в своем собственном файле конфигурации config / hashing.php. Вы должны поместить копию файла конфигурации по умолчанию в ваше собственное приложение. Скорее всего, вы должны поддерживать драйвер bcrypt в качестве драйвера по умолчанию. Тем не менее, аргон также поддерживается.

1

Другие решения

получается, что я добавляю библиотека составить и добавить его поставщика услуг и псевдоним в config / app.php следующим образом:

'providers'       => [
..
Clockwork\Support\Laravel\ClockworkServiceProvider::class,

'aliases'         => [
..
'Clockwork'        => Clockwork\Support\Laravel\Facade::class,

но потом удалил эту библиотеку из композитора (я перестал ее использовать) и забыл обновить поставщика услуг.

Обновление поставщика услуг решило проблему.

Я снова столкнулся с той же проблемой от одного из моих инженеров, работающих над Pull-запросом, который содержит около 100 коммитов (это тематическая ветка. Пожалуйста, не судите).

Он подтвердил, что все библиотеки используются.

Поэтому я просто запустил git diff для двух конкретных файлов только из этого большого диапазона: config/app.php а также composer.json вот так:

Composer.json

$ git diff 96d397a bce2052 composer.json
diff --git a/composer.json b/composer.json
index 4c16f388..d780ec01 100644
--- a/composer.json
+++ b/composer.json
@@ -4,6 +4,12 @@
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
+    "repositories": [
+        {
+            "type": "vcs",
+            "url":  "https://github.com/abbood/translation"+        }
+    ],
"require": {
"php": ">=5.5.9",
"laravel/framework": "5.3.*",
@@ -26,7 +32,9 @@
"aloha/twilio": "^2.1",
"laravel/socialite": "^2.0",
"barryvdh/laravel-dompdf": "^0.8.0",
-        "mockery/mockery": "1.0"+        "mockery/mockery": "1.0",
+        "maxmind-db/reader": "~1.0",
+        "waavi/translation": "dev-extractGenCode"},
"require-dev": {
"symfony/dom-crawler": "~3.1",
@@ -35,6 +43,7 @@
"phpunit/phpunit": "~5.0",
"phpspec/phpspec": "~2.1",
"johnkary/phpunit-speedtrap": "^1.0",
+        "orangehill/iseed": "2.2",
"barryvdh/laravel-ide-helper": "^2.4"},
"autoload": {

конфиг / app.php

git diff 96d397a bce2052 config/app.php
diff --git a/config/app.php b/config/app.php
index 5025f79b..28e34794 100644
--- a/config/app.php
+++ b/config/app.php
@@ -10,8 +10,8 @@ return [
| the framework needs to place the application's version in a notification
| or any other location as required by the application or its packages.
*/
+    'version' => '1.3.57',

-    'version' => '1.3.46',

'env' => env('APP_ENV', 'production'),

@@ -115,6 +115,17 @@ return [
/*those options are overriden in bootstrap/app for info.log and error.log*/
'log'             => 'daily',

+    /*
+    |--------------------------------------------------------------------------
+    | MaxMind mmdb Path
+    |--------------------------------------------------------------------------
+    |
+    | Here you specify the path to MaxMind GeoLite2-City.mmdb
+    |
+    |
+    */
+    'maxmindDB'             => env('APP_MAX_MIND_MMDB', "./maxmind/GeoLite2-City.mmdb"),
+
/*
|--------------------------------------------------------------------------
| Autoloaded Service Providers
@@ -149,7 +160,6 @@ return [
Illuminate\Redis\RedisServiceProvider::class,
Illuminate\Auth\Passwords\PasswordResetServiceProvider::class,
Illuminate\Session\SessionServiceProvider::class,
-        Illuminate\Translation\TranslationServiceProvider::class,
Illuminate\Validation\ValidationServiceProvider::class,
Illuminate\View\ViewServiceProvider::class,

@@ -180,7 +190,10 @@ return [
Davibennun\LaravelPushNotification\LaravelPushNotificationServiceProvider::class,
Aloha\Twilio\Support\Laravel\ServiceProvider::class,
Laravel\Socialite\SocialiteServiceProvider::class,
+        Orangehill\Iseed\IseedServiceProvider::class,
Barryvdh\DomPDF\ServiceProvider::class,
+        Waavi\Translation\TranslationServiceProvider::class,
+
],
/*
|--------------------------------------------------------------------------
@@ -239,6 +252,8 @@ return [
'Raven'            => Jenssegers\Raven\Facades\Raven::class,
'Socialite'        => Laravel\Socialite\Facades\Socialite::class,
'PDF'              => Barryvdh\DomPDF\Facade::class,
+        'UriLocalizer'     => \Waavi\Translation\Facades\UriLocalizer::class,
+        'TranslationCache' => \Waavi\Translation\Facades\TranslationCache::class,
],

];

поэтому проблема была ясна: в основном мы включаем "orangehill/iseed": "2.2", как require-dev требование, но не проверка, является ли env dev, когда мы регистрируем его в качестве поставщика услуг .. поэтому он взорвался.

так что это исправлено внутри app/Providers/AppServiceProvider.php:

namespace App\Providers;


use Illuminate\Support\ServiceProvider;

class AppServiceProvider extends ServiceProvider
{


/**
* Bootstrap any application services.
*
* @return void
*/
public function boot()
{
$env = config('app.env');



if ($env === 'local' || $env === 'testing') {
.. dev only libraries
$this->app->register(\Orangehill\Iseed\IseedServiceProvider::class);
}
}


}

иногда вам нужно удалить весь каталог начальной загрузки

rm -rf начальная загрузка

затем беги

composer dump-autload

но laravel не будет работать после этого, так что вы должны git отменить изменение удаления всей начальной загрузки (которая должна быть в вашем git-репо в любом случае) .. и вы золотые после этого

введите описание изображения здесь

1

По вопросам рекламы [email protected]