まず第一に、私のウェブサイトは現在これらのコンポーネントを使用しています
"require": { "symfony/http-foundation": "^3.1", "symfony/routing": "^3.1", "symfony/http-kernel": "^3.1", "symfony/event-dispatcher": "^3.1", "pimple/pimple": "~3.0", "illuminate/database": "^5.3" },
laravelのイベントコンポーネントの代わりにsymfonyのイベントディスパッチャーコンポーネントを使用しているため
、これにはEloquent ORMサービスが初期化されるときに設定イベントが付属しています監視機能は動作しません
use Illuminate\Events\Dispatcher; use Illuminate\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container));
と、重複した機能を持つ 2 つのコンポーネントを使用したくないので、Eloquent ORM イベントを監視してキャッシュすることができません。
私が達成したいのは、主に memcache を使用して Eloquent ORM クエリ イベントのデータをキャッシュすることです。この手順を実行する方法...
返信内容:
まず第一に、私の Web サイトは現在これらのコンポーネントを使用しています
"require": { "symfony/http-foundation": "^3.1", "symfony/routing": "^3.1", "symfony/http-kernel": "^3.1", "symfony/event-dispatcher": "^3.1", "pimple/pimple": "~3.0", "illuminate/database": "^5.3" },
私が使用している Symfony のイベントディスパッチャーコンポーネントは Laravel のイベントコンポーネントを使用していないため、Eloquent ORM サービスが初期化されると、組み込みのイベント監視機能が使用できなくなります。また、重複した機能を持つ 2 つのコンポーネントを使用したくありません。したがって、Eloquent ORM イベントをリッスンしてキャッシュする方法はありません。
私が実現したいのは、memcache を使用して Eloquent ORM クエリ イベントのデータをキャッシュすることです。この手順を実行する方法...
キャッシュには remember
メソッドを使用することをお勧めします。クエリデータ。
use Illuminate\Events\Dispatcher; use Illuminate\Container\Container; $capsule->setEventDispatcher(new Dispatcher(new Container));キャッシュがある場合は、キャッシュ内のデータが直接返されます。そうでない場合は、データベースにクエリを実行し、キャッシュを設定した後にデータが返されます。
remember
方法。
$value = Cache::remember('users', $minutes, function() { return DB::table('users')->get(); });
有缓存就直接返回缓存里的数据,否则从数据库查询并设置缓存后返回数据。
至于你说的替换了event dispatcher,怎么监听model事件,可以在model或者基类model里写, 例如:
protected static function boot() { parent::boot(); static::created(function ($model) { // cache model }); }
每个事件都有其对应的静态方法:saving
saved
updating
updated
creating
created
deleting
deleted
以上就是Eloquent ORM该怎么监听它的事件然后使用memcache缓存数据的内容,更多相关内容请关注PHP中文网(www.php.cn)!
あなたが言及したイベントディスパッチャーの置き換えに関しては、モデルイベントを監視する方法は、モデルまたは基本クラスモデルに記述することができます。例:
Saving
保存 更新
更新
作成
作成
削除
削除
🎜🎜上記は、Eloquent ORM がイベントをリッスンし、memcache を使用してデータをキャッシュする方法です。関連コンテンツの詳細については、PHP 中国語 Web サイト (www.php.cn) に注目してください。
🎜
phpssionsStrackuserdataacrossmultiplepagerequestsusingauniqueidstoredinacookie.here'showtomanageetheemefectively:1)Startassession withsession_start()andstoredatain $ _ session.2)RegeneratesseSsessidafterloginwithsession_id(the topreventes_id)

PHPでは、次の手順を通じてセッションデータを繰り返すことができます。1。session_start()を使用してセッションを開始します。 2。$ _Sessionアレイのすべてのキー価値ペアを介してforeachループを反復します。 3.複雑なデータ構造を処理する場合、is_array()またはis_object()関数を使用し、print_r()を使用して詳細情報を出力します。 4.トラバーサルを最適化する場合、ページングを使用して、一度に大量のデータの処理を避けることができます。これにより、実際のプロジェクトでPHPセッションデータをより効率的に管理および使用するのに役立ちます。

このセッションは、サーバー側の状態管理メカニズムを介してユーザー認証を実現します。 1)セッションの作成と一意のIDの生成、2)IDはCookieを介して渡されます。3)サーバーストアとIDを介してセッションデータにアクセスします。

tostoreauser'snameInappession、starthessession withsession_start()、thensignthenameto $ _session ['username']。1)ousession_start()toinitializethessession.2)assighttheuser'snameto $ _ session ['username']

PHPSESSIONの障害の理由には、構成エラー、Cookieの問題、セッションの有効期限が含まれます。 1。構成エラー:正しいセッションをチェックして設定します。save_path。 2.Cookieの問題:Cookieが正しく設定されていることを確認してください。 3.セッションの有効期限:セッションを調整してください。GC_MAXLIFETIME値はセッション時間を延長します。

PHPでセッションの問題をデバッグする方法は次のとおりです。1。セッションが正しく開始されるかどうかを確認します。 2.セッションIDの配信を確認します。 3.セッションデータのストレージと読み取りを確認します。 4.サーバーの構成を確認します。セッションIDとデータを出力し、セッションファイルのコンテンツを表示するなど、セッション関連の問題を効果的に診断して解決できます。

session_start()への複数の呼び出しにより、警告メッセージと可能なデータ上書きが行われます。 1)PHPは警告を発し、セッションが開始されたことを促します。 2)セッションデータの予期しない上書きを引き起こす可能性があります。 3)session_status()を使用してセッションステータスを確認して、繰り返しの呼び出しを避けます。

PHPでのセッションライフサイクルの構成は、session.gc_maxlifetimeとsession.cookie_lifetimeを設定することで達成できます。 1)session.gc_maxlifetimeサーバー側のセッションデータのサバイバル時間を制御します。 0に設定すると、ブラウザが閉じているとCookieが期限切れになります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

PhpStorm Mac バージョン
最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール

ホットトピック









