캐싱 드라이버
CodeIgniter는 몇 가지 가장 인기있는 형식의 빠른 동적 캐싱에 대한 래퍼를 제공합니다. 파일 기반 캐싱 이외는 특정한 서버 요구 사항이 필요합니다.만약 필요한 요구사항이 만족되지 않으면 치명적인 예외를 던집니다.
목차
사용 가능한 드라이버
사용 예제
The following example will load the cache driver, specify다음 예제는 APC 를 캐시드라이버로 로드하고, APC를 사용할 수없는 경우 파일 기반 캐싱으로 대체합니다.
$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));
if ( ! $foo = $this->cache->get('foo'))
{
echo 'Saving to the cache!<br />';
$foo = 'foobarbaz!';
// Save into the cache for 5 minutes
$this->cache->save('foo', $foo, 300);
}
echo $foo;
함수 가이드
is_supported(driver['string'])
이 메서드는$this->cache->get()를 통해 드라이버에 접근할 때 자동으로 호출됩니다. 그러나, 만약 별도의 드라이버를 사용하는 경우이 메서드를 호출하여 드라이버가 서버환경에서 지원되는지 확인하십시오..
if ($this->cache->apc->is_supported())
{
if ($data = $this->cache->apc->get('my_cache'))
{
// do things.
}
}
get(id['string'])
이 메서드는 캐시에서 한 항목을 가져옵니다. 만약 해당 항목이없는 경우,이 메소드는FALSE 을 반환합니다.
$foo = $this->cache->get('my_cached_item');
save(id['string'], data['mixed'], ttl['int'])
캐시에 한 항목을 저장합니다. 저장에 실패하면FALSE를 리턴합니다.
옵션인 세번째 파라미터(캐시 생존시간)의 기본값은 60 초 입니다.
$this->cache->save('cache_item_id', 'data_to_cache');
delete(id['string'])
캐시에서 지정한 항목을 제거합니다.제거에 실패하면 FALSE를 리턴합니다.
$this->cache->delete('cache_item_id');
clean()
모든 캐시를 지웁니다.지우는데 실패하면 FALSE를 리턴합니다..
$this->cache->clean();
cache_info()
모든 캐시에 대한 정보를 리턴합니다.
var_dump($this->cache->cache_info());
get_metadata(id['string'])
특정 캐시 항목에 대한 상세정보를 리턴합니다.
var_dump($this->cache->get_metadata('my_cached_item'));
드라이버
Alternative PHP Cache (APC) 캐싱
위에서 설명한 함수들은 아래와 같이 특정 어댑터를 지정하지 않고 사용할 수 있습니다.:
$this->load->driver('cache');
$this->cache->apc->save('foo', 'bar', 10);
APC에 대한 더 자세한 정보는 http://php.net/apc 를 참조하십시오.
파일기반 캐싱
출력 클래스의 캐싱과 달리 파일 기반 캐싱 드라이버는 뷰파일의 일부를 캐시할 수 있습니다. 파일기반의 캐싱은 주의해서 사용해야 합니다. 디스크에 읽고 쓰는것이 너무 빈번해져 캐싱의 효과를 넘어서버릴 수 있습니다..
위에서 설명한 모든 메서드는 다음과 같이 특정 어댑터를 드라이버 로더에 지정하지 않고 사용할 수 있습니다:
$this->load->driver('cache');
$this->cache->file->save('foo', 'bar', 10);
메모리에 캐싱
application/config/ 에 있는 memcached.php 설정파일에 여러개의 메모리캐싱서버를 지정할 수 있습니다.
위에서 설명한 모든 메서드는 다음과 같이 특정 어댑터를 드라이버 로더에 지정하지 않고 사용할 수 있습니다::
$this->load->driver('cache');
$this->cache->memcached->save('foo', 'bar', 10);
For more information on Memcached, please see http://php.net/memcached
더미 캐시
캐시의 끝단이며, 항상 'miss'합니다.(뭔소린지 ..).데이터를 저장하지는 않지만, 캐싱이 지원되지 않는 환경에서도 캐싱 소스코드를 유지할 수 있게 합니다.