ルーメンで始めたばかりで、Authを使用しようとしていますが、Auth :: checkまたはその他のAuthの関数のいずれかを呼び出すと、以下のエラーが発生します致命的なエラー:クラス 'Memcached' 52行目のvendor\illuminate\cache\MemcachedConnector.phpにはありません。 Memcachedはこれまで使用したことがないので使用したくありません。
。envファイルで無効にし、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',
]);
誰かが本当に私を助けてくれたらとてもうれしいです
[〜#〜] edit [〜#〜]
フレームワークを少し深くした後、メソッドSessionManager
内のgetSessionConfig
クラスにセッションドライバー名をハードコーディングしました。
public function getSessionConfig()
{
$this->setDefaultDriver("cookie");//I added this line
return $this->app['config']['session'];
}
それは動作しますが、物事を行うのに良い方法ではありません。構成ファイルはありません。すべての構成は。envファイルに記述されていると思いますが、.envその後、composer dump-autoload
...ルーメン:(
[〜#〜] edit [〜#〜]これは私の。envファイル
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
を使用している場合は、サーバーの再起動が必要になる場合があります。
Lumenは、リクエストごとに.env
の変更を受け取らないようです。
私はまったく同じ問題を抱えていました-ファイルキャッシュを使用しようとしましたが、Memcachedに関するエラーを受け取りました-サーバーを再起動すると.env
ファイルがリロードされます。
今日、この問題に3時間費やしました。このトピックの demveの投稿 の助けを借りて、解決策を見つけました。とてもシンプル!後の開発で私に影響を与えないことを願っています。
それだけに、_.env
_ファイルで:
_CACHE_DRIVER=array
SESSION_DRIVER=array
QUEUE_DRIVER=array
_
セッションについての新しい問題に直面したため、[〜#〜] update [〜#〜]を作成します。実際、前のパラメーターを設定すると、 documentation で述べたように、セッションは永続的ではなくなります:_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ファイルを使用してアプリケーションを構成している場合、bootstrap/app.phpファイルのDotenv :: load()メソッドのコメントを外すことを忘れないでください。
あなたの.env
ファイル、CACHE_DRIVER=file
の代わりに CACHE_DRIVER=memcached
このパッケージをインストールしたときにこの問題は解決したので、少なくとも試してください
最初にこれを試しましたが、うまくいきます
CACHE_DRIVER = array
しかし、その後memcached
とは何かを考えました
それから私はこれを試してみましたが、それはドライバmemcached
を変更せずに正常に動作します
apt-get install php-memcached
私の場合、追加CACHE_DRIVER=array
in .envファイル
そして
Dotenv::load(__DIR__.'/../');
私のbootstrap/app.php
そしてその .env
ファイルが機能し始めました。
私にとって、問題はPHP memcached ready。がないHomesteadリポジトリのphp-7ブランチを使用したことでした。
私は同様の問題を抱えていましたが、それを追跡することはできませんでしたが、デフォルト設定が_vendor/laravel/Lumen-framework/config
_フォルダ、_DotEnv::$inmutable
_設定に保存されているという事実と関係があると推測します_artisan serve
_ server。
私のために働いた解決策は次のとおりでした:
_bootstrap/app.php
_以下を追加します:Dotenv::makeMutable(); Dotenv::load(__DIR__.'/../'); Dotenv::makeImmutable();
_.env
_ファイルでは、使用しない場合でも、すべての構成を「基本ドライバー」(配列、ファイル)に設定します。