Laravel Lumen Memcached не найден

Хорошо, я только начал с 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 загружен
все в порядке.

45

Решение

Возможно, вам придется перезагрузить сервер, особенно если вы используете php artisan serve,

Люмен, кажется, не берет .env изменения по запросу.

У меня была точно такая же проблема — пытался использовать файловый кеш, но получил ошибки, касающиеся Memcached — перезапуск сервера перезагружает .env файл.

19

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

Я потратил 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()); Теперь я могу видеть все значения моей сессии

44

В .env файле заменить

#This line:-
CACHE_DRIVER = memcached

#With this:-
CACHE_DRIVER = array
10

Убедитесь, что ваш файл .env не загружен, что по умолчанию закомментировано в Lumen. Поэтому, если вы указываете другой драйвер кеша в вашем .env, сделайте следующее.

Примечание. Если вы используете файл .env для настройки своего приложения, не забудьте раскомментировать метод Dotenv :: load () в файле bootstrap / app.php.

Источник: http://lumen.laravel.com/docs/cache

7

в вашем .env файл, вы также можете использовать CACHE_DRIVER=file вместо CACHE_DRIVER=memcached

4

Эта проблема решена, когда я установил этот пакет, поэтому попробуйте хотя бы

Сначала я попробовал это, и он отлично работает

CACHE_DRIVER = array

но потом подумал что такое memcached

Затем я попробовал это, и он отлично работает без изменения драйвера memcached

apt-get install php-memcached
3

В моем случае я добавил Добавить CACHE_DRIVER=array в файле .env
затем

Dotenv::load(__DIR__.'/../');

в моем bootstrap/app.php и .env файл начал работать.

2

Для меня проблема заключалась в том, что я использовал ветку php-7 домашнего хранилища, в которой PHP не готов к memcached.

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