mirror of
https://github.com/atlanticbiomedical/portal-legacy.git
synced 2025-07-02 01:47:28 -04:00
initial commit
This commit is contained in:
88
lib/symfony/helper/CacheHelper.php
Executable file
88
lib/symfony/helper/CacheHelper.php
Executable file
@ -0,0 +1,88 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the symfony package.
|
||||
* (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
/**
|
||||
* CacheHelper.
|
||||
*
|
||||
* @package symfony
|
||||
* @subpackage helper
|
||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||
* @version SVN: $Id: CacheHelper.php 5085 2007-09-14 20:09:53Z fabien $
|
||||
*/
|
||||
|
||||
/* Usage
|
||||
|
||||
<?php if (!cache('name')): ?>
|
||||
|
||||
... HTML ...
|
||||
|
||||
<?php cache_save() ?>
|
||||
<?php endif; ?>
|
||||
|
||||
*/
|
||||
function cache($name, $lifeTime = 86400)
|
||||
{
|
||||
$context = sfContext::getInstance();
|
||||
|
||||
if (!sfConfig::get('sf_cache'))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$request = $context->getRequest();
|
||||
$cache = $context->getViewCacheManager();
|
||||
|
||||
if (!is_null($request->getAttribute('started', null, 'symfony/action/sfAction/cache')))
|
||||
{
|
||||
throw new sfCacheException('Cache already started');
|
||||
}
|
||||
|
||||
$data = $cache->start($name, $lifeTime);
|
||||
|
||||
if ($data === null)
|
||||
{
|
||||
$request->setAttribute('started', 1, 'symfony/action/sfAction/cache');
|
||||
$request->setAttribute('current_name', $name, 'symfony/action/sfAction/cache');
|
||||
|
||||
return 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
echo $data;
|
||||
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
function cache_save()
|
||||
{
|
||||
$context = sfContext::getInstance();
|
||||
|
||||
if (!sfConfig::get('sf_cache'))
|
||||
{
|
||||
return null;
|
||||
}
|
||||
|
||||
$request = $context->getRequest();
|
||||
|
||||
if (is_null($request->getAttribute('started', null, 'symfony/action/sfAction/cache')))
|
||||
{
|
||||
throw new sfCacheException('Cache not started');
|
||||
}
|
||||
|
||||
$name = $request->getAttribute('current_name', '', 'symfony/action/sfAction/cache');
|
||||
|
||||
$data = $context->getViewCacheManager()->stop($name);
|
||||
|
||||
$request->setAttribute('started', null, 'symfony/action/sfAction/cache');
|
||||
$request->setAttribute('current_name', null, 'symfony/action/sfAction/cache');
|
||||
|
||||
echo $data;
|
||||
}
|
Reference in New Issue
Block a user