Laravel Lumen Memcached non trouvé

Ok, je viens juste de commencer avec Lumen et j'essaye d'utiliser L'Auth, mais un appel à Auth::check ou toute autre fonction D'Auth.. conduit à l'Erreur ci-dessous erreur fatale: Classe 'Memcached' introuvable dans vendorilluminatecacheMemcachedConnector.php on line 52. Je ne veux pas utiliser Memcached qui ne l'a jamais utilisé avant.

j'ai désactivé dans le .env le fichier et définissez CACHE_DRIVER et SESSION_DRIVER array, mais encore affiche le même message d'erreur.

j'ai décidé de ne plus utiliser Auth et de gérer manuellement mon authentification avec des sessions/tokens, mais en activant les résultats de session de MiddleWare pour la même erreur.

$app->middleware([
 // 'IlluminateCookieMiddlewareEncryptCookies',
 // 'IlluminateCookieMiddlewareAddQueuedCookiesToResponse',
  'IlluminateSessionMiddlewareStartSession',
 // 'IlluminateViewMiddlewareShareErrorsFromSession',
 // 'LaravelLumenHttpMiddlewareVerifyCsrfToken',
]);

s'il vous Plaît je serais tellement heureux si quelqu'un peut vraiment m'aider ici

EDIT

après s'être un peu enfoncé dans le cadre J'ai codé dur le nom du pilote de session dans le SessionManager Classe dans la méthode getSessionConfig

public function getSessionConfig()
{
    $this->setDefaultDriver("cookie");//I added this line
    return $this->app['config']['session'];
}

Cela fonctionne bien, mais pas une bonne façon de faire les choses. Il n'y a pas de fichier de configuration, je crois que toutes les configurations sont écrites en .env fichier, mais je ne sais vraiment pas pourquoi le session_driver et le cache_driver est par défaut sur memecached même après l'avoir modifié dans le .env et puis a couru composer dump-autoload ... Lumen : (

EDIT C'est mon .env le fichier

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

j'ai déjà cette ligne décommenté dans mon bootsrap/app.php

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

la configuration de ma base de données fonctionne parfaitement .fichier de configuration est chargé tout à fait très bien.

43
demandé sur Andy Korneyev 2015-04-22 08:34:20

12 réponses

Vous devrez peut-être redémarrer votre serveur, surtout si vous utilisez php artisan serve.

Lumen ne semble pas ramasser .env modifications par requête.

j'ai eu exactement le même problème - j'ai essayé d'utiliser le cache de fichiers, mais j'ai reçu des erreurs concernant Memcached - redémarrer le serveur recharge le .env fichier.

18
répondu Alex Osborn 2015-04-28 23:30:51

j'ai passé 3 heures sur ce problème aujourd'hui. Avec l'aide de le poste de demve dans cette rubrique, j'ai trouvé la solution. Très simple ! J'espère que ça ne m'affectera pas plus tard dans mon développement.

, dans le .env fichier :

CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array

Ok, je fais un UPDATE parce que j'ai été confronté à un nouveau problème de session. En fait, lorsque vous définissez les paramètres précédents, votre session ne sera pas persistant, comme dit dans le documentation:array - sessions will be stored in a simple PHP array and will not be persisted across requests.

donc j'ai changé, toujours en .env le fichier comme ça :

SESSION_DRIVER=cookie

Avec un var_dump(Session::all()); je peux maintenant voir l'ensemble des valeurs de ma session

43
répondu Zl3n 2017-05-23 12:18:23

.remplacer le fichier env

#This line:- 
  CACHE_DRIVER = memcached

#With this:- 
   CACHE_DRIVER = array
10
répondu Manoj Thapliyal 2017-04-10 06:13:16

assurez-vous de ne pas se faire attraper par votre .le fichier env n'est pas chargé, qui par défaut est commenté dans Lumen. Donc, si vous spécifiez un pilote de cache différent dans votre .env, procédez de la manière suivante.

Note: Si vous utilisez le .pour configurer votre application, n'oubliez pas de décompresser la méthode Dotenv::load() dans votre bootstrap/app.fichier php.

Source:http://lumen.laravel.com/docs/cache

6
répondu davidnknight 2015-05-04 19:13:54

dans votre .env file, vous pouvez aussi utiliser CACHE_DRIVER=file au lieu de CACHE_DRIVER=memcached

4
répondu S.Hossein Asadollahi 2017-05-10 09:49:17

Dans mon cas, j'ai ajouté Ajouter CACHE_DRIVER=array.fichier de configuration

Puis

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

dans mon bootstrap/app.php et .env le fichier a commencé à travailler.

2
répondu Sajjad Ashraf 2015-06-19 11:33:35

pour moi, le problème est que j'ai utilisé la branche php-7 de homestead repository qui n'a pas PHP memcached prêt.

2
répondu Josh LaMar 2015-10-28 19:14:22

ce problème a été résolu lorsque j'ai installé ce paquet alors essayez au moins

d'Abord j'ai essayé et ça fonctionne très bien

CACHE_DRIVER = array 

mais alors pensé à ce qui est memcached

alors j'ai essayé ceci et cela fonctionne très bien sans changer de pilote memcached

apt-get install php-memcached 
2
répondu Ajay Kumar 2017-06-20 21:29:57

j'ai eu un problème similaire maintenant, je ne pouvais pas le retrouver mais je pense que c'est lié au fait que les configurations par défaut sont stockées dans le vendor/laravel/lumen-framework/config dossier DotEnv::$inmutable et artisan servele serveur.

La solution qui a fonctionné pour moi a été:

  1. Ajouter bootstrap/app.php le code suivant: Dotenv::makeMutable(); Dotenv::load(__DIR__.'/../'); Dotenv::makeImmutable();

  2. dans le .env fichier, définissez toute la configuration à "pilotes de base" " (tableau, fichier) même si vous n'allez pas utiliser, parce que vous w

1
répondu demve 2015-05-08 16:06:11

cela se produit si votre .le fichier env appartient à un autre utilisateur que celui qui essaie d'exécuter la commande artisan.

-1
répondu Karel 2017-12-12 16:07:07

Vérifier si memcached est installé, si ce n'est de l'installer en exécutant:

apt-get install php5-memcached
-2
répondu Heinrich Boers 2017-03-10 22:09:48

si vous avez une nouvelle installation lumen, vous devez renommer .env.example.env . Pour qu'il puisse lire vos configurations!

-2
répondu Masoud 2017-07-28 06:39:16