우선 현재 내 웹사이트에서는 이러한 구성 요소를 사용하고 있습니다.
"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));
그리고 두 컴포넌트를 중복된 기능으로 사용하고 싶지 않아 Eloquent ORM을 모니터링할 수 없습니다. 이벤트는 다음과 같습니다. 그런 다음 캐시됩니다.
내가 달성하고 싶은 것은 주로 Memcache를 사용하여 Eloquent ORM 쿼리 이벤트의 데이터를 캐시하는 것입니다. 이 단계를 수행하는 방법...
우선, 내 웹 사이트는 현재 이러한 구성 요소를 사용하고 있습니다.
"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));
을 사용할 수 없고 중복 기능이 있는 두 구성 요소를 사용하고 싶지 않아서 Eloquent ORM 이벤트를 수신하고 캐시할 수 없습니다.
내가 달성하고 싶은 것은 Memcache를 사용하여 Eloquent ORM 쿼리 이벤트의 데이터를 캐시하는 것입니다. 이 단계를 수행하는 방법...
사용하는 것이 좋습니다. remember
방법.
$value = Cache::remember('users', $minutes, function() { return DB::table('users')->get(); });
캐시가 있는 경우 캐시에 있는 데이터를 직접 반환합니다. 그렇지 않은 경우에는 데이터베이스를 쿼리하고 캐시를 설정한 후 데이터를 반환합니다.
당신이 언급한 이벤트 디스패처를 교체하는 것과 관련하여 모델 이벤트를 모니터링하는 방법은 모델 또는 기본 클래스 모델에 작성할 수 있습니다. 예를 들면 다음과 같습니다.
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)!