Хорошо, я только начал с Lumen и пытаюсь использовать Auth, но вызов Auth :: check или любой другой функции Auth .. приводит к приведенной ниже ошибке
Неустранимая ошибка: класс ‘Memcached’ не найден в vendor \ lightingate \ cache \ MemcachedConnector.php в строке 52.
Я не хочу использовать Memcached, никогда не использовал его раньше.
Я отключил это в .окр файл и установить CACHE_DRIVER а также SESSION_DRIVER в массив, но все равно показывает ту же ошибку.
Я решил больше не использовать Auth и вручную обрабатывать мою аутентификацию с помощью сеансов / токенов, но разрешить результаты MiddleWare StartSession с той же ошибкой.
$app->middleware([
// 'Illuminate\Cookie\Middleware\EncryptCookies',
// 'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
// 'Illuminate\View\Middleware\ShareErrorsFromSession',
// 'Laravel\Lumen\Http\Middleware\VerifyCsrfToken',
]);
Пожалуйста, я был бы так рад, если кто-нибудь может действительно помочь мне здесь
РЕДАКТИРОВАТЬ
Пройдя немного глубоко в рамки
Я жестко закодировал имя драйвера сеанса в SessionManager
Учебный класс
в методе getSessionConfig
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
Это работает, но не очень хороший способ делать вещи.
Конфигурационного файла нет, я считаю, что все конфигурации написаны на .окр файл, но я действительно не знаю, почему session_driver и cache_driver по умолчанию имеют значение memecached даже после изменения его в .окр а потом побежал composer dump-autoload
… люмен 🙁
РЕДАКТИРОВАТЬ
Это мое .окр файл
APP_ENV=local
APP_DEBUG=true
APP_KEY=SomeRandomKey!!!
APP_LOCALE=en
APP_FALLBACK_LOCALE=en
DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=array
SESSION_DRIVER=cookie
QUEUE_DRIVER=database
У меня уже есть эта строка без комментариев в моем bootsrap / app.php
Dotenv::load(__DIR__.'/../');
Моя конфигурация базы данных работает отлично, поэтому файл .env загружен
все в порядке.
Возможно, вам придется перезагрузить сервер, особенно если вы используете php artisan serve
,
Люмен, кажется, не берет .env
изменения по запросу.
У меня была точно такая же проблема — пытался использовать файловый кеш, но получил ошибки, касающиеся Memcached — перезапуск сервера перезагружает .env
файл.
Я потратил 3 часа на эту проблему сегодня. С помощью должность демве в этой теме я нашел решение. Очень просто ! Я надеюсь, что это не повлияет на меня позже в моем развитии.
Просто к этому, в .env
файл :
CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array
Хорошо, я делаю ОБНОВИТЬ потому что я столкнулся с новой проблемой о сессии. Фактически, когда вы устанавливаете предыдущие параметры, ваш сеанс не будет постоянным, как сказано в документация : array - sessions will be stored in a simple PHP array and will not be persisted across requests.
Так что я должен изменить это, всегда в .env
файл так:
SESSION_DRIVER=cookie
С var_dump(Session::all());
Теперь я могу видеть все значения моей сессии
В .env файле заменить
#This line:-
CACHE_DRIVER = memcached
#With this:-
CACHE_DRIVER = array
Убедитесь, что ваш файл .env не загружен, что по умолчанию закомментировано в Lumen. Поэтому, если вы указываете другой драйвер кеша в вашем .env, сделайте следующее.
Примечание. Если вы используете файл .env для настройки своего приложения, не забудьте раскомментировать метод Dotenv :: load () в файле bootstrap / app.php.
Источник: http://lumen.laravel.com/docs/cache
в вашем .env
файл, вы также можете использовать CACHE_DRIVER=file
вместо CACHE_DRIVER=memcached
Эта проблема решена, когда я установил этот пакет, поэтому попробуйте хотя бы
Сначала я попробовал это, и он отлично работает
CACHE_DRIVER = array
но потом подумал что такое memcached
Затем я попробовал это, и он отлично работает без изменения драйвера memcached
apt-get install php-memcached
В моем случае я добавил Добавить CACHE_DRIVER=array
в файле .env
затем
Dotenv::load(__DIR__.'/../');
в моем bootstrap/app.php
и .env
файл начал работать.
Для меня проблема заключалась в том, что я использовал ветку php-7 домашнего хранилища, в которой PHP не готов к memcached.