O:39:"phpDocumentor\Descriptor\FileDescriptor":21:{s:7:" * hash";s:32:"370bac879200f8368ef61b983fff7394";s:7:" * path";s:15:"CacheSimple.php";s:9:" * source";s:4750:"<?php
// declare(encoding='UTF-8');
/**
 * Classe Cache permettant de mettre en cache des données de façon extremement simple.
 * Le cache est stocker dans des fichiers textes.
 * Le contrôle de la durée de vie du cache se fait avec la fonction PHP filemtime.
 * Si la durée de vie du cache est modifiée dans le constructeur ou le fichier de config, alors la durée de vie de l'ensemble
 * des fichiers de cache est modifiée en conséquence.
 * Les clés pour le tableau des options et les valeurs par défaut sont indiquées dans l'attribut options de la classe.
 *
 * @category	php 5.2
 * @package	Framework
 * @author		Jean-Pascal MILCENT <jpm@tela-botanica.org>
 * @author		Aurélien PERONNET <aurelien@tela-botanica.org>
 * @copyright	Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)
 * @license	http://framework.zend.com/license/new-bsd Licence New BSD
 * @license	http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL
 * @license	http://www.gnu.org/licenses/gpl.html Licence GNU-GPL
 * @version	$Id: CacheSimple.php 445 2013-10-24 17:08:14Z raphael $
 * @link		/doc/framework/
 */
// TODO : voir ce qui est le plus pratique : error_log ou le gestionnaire de bogue du framework
class CacheSimple {

	private $mise_en_cache = null;
	private $stockage_chemin = null;
	private $duree_de_vie = null;

	private $options = array(
		'mise_en_cache' => 'true',
		'stockage_chemin' => 'Fichier::getDossierTmp()',
		'duree_de_vie' => '3600*24'
	);

	public function __construct($options = array()) {
		extract($options);
		$this->mise_en_cache = is_bool($mise_en_cache) ? $mise_en_cache : $mise_en_cache == '' ? false : true;

		if ($this->mise_en_cache) {
			$this->stockage_chemin = isset($stockage_chemin) ? realpath($stockage_chemin) : Fichier::getDossierTmp();
			if (!realpath($stockage_chemin)) {
				error_log(sprintf("%s: Attention, %s invalide: creation [%s]",
					__FILE__,
					$stockage_chemin,
					@$_SERVER['REQUEST_URI']));
				mkdir($stockage_chemin, 0755, TRUE);
			}
			if (!realpath($stockage_chemin)) {
				error_log(sprintf("%s: Attention, realpath(%s) invalide [%s]",
					__FILE__,
					$stockage_chemin,
					@$_SERVER['REQUEST_URI']));
			} else if(!is_writable(realpath($stockage_chemin))) {
				error_log(sprintf("%s: Attention, realpath(%s) non-inscriptible [%s]",
					__FILE__,
					realpath($stockage_chemin),
					@$_SERVER['REQUEST_URI']));
			} else {
				$this->duree_de_vie = isset($duree_de_vie) ? $duree_de_vie : 3600*24;
			}
		}
	}

	private function initialiserOptionsParConfig() {
		while (list($nom, $valeur) = each($this->options)) {
			if (Config::existe($nom)) {
				$this->$nom = Config::get($nom);
			}
		}
	}

	/**
	 * Teste si le cache est disponible pour l'id donné et (si oui) le retourne (sinon renvoie false)
	 *
	 * @param  string  $id l'identifiant du Cache.
	 * @return string|false les données en cache.
	 */
	public function charger($id) {
		$contenu = false;
		if ($this->mise_en_cache) {
			$chemin_fichier_cache = $this->stockage_chemin.DS.$id.'.txt';
			if (file_exists($chemin_fichier_cache ) && (time() - @filemtime($chemin_fichier_cache) < $this->duree_de_vie)) {
				$contenu = file_get_contents($chemin_fichier_cache);
			}
		}
		return $contenu;
	}

	/**
	 * Sauvegarde la chaine de données dans un fichier texte.
	 *
	 * Note : $contenu est toujours de type "string". C'est à vous de gérer la sérialisation.
	 *
	 * @param  string $contenu les données à mettre en cache.
	 * @param  string $id	l'identifiant du Cache.
	 * @return boolean true si aucun problème
	 */
	public function sauver($contenu, $id) {
		if (! $this->mise_en_cache) return FALSE;

		$ok = false;
        $chemin_fichier_cache = $this->stockage_chemin.DS.$id.'.txt';
        if (!file_exists($chemin_fichier_cache) || (time() - @filemtime($chemin_fichier_cache) > $this->duree_de_vie)) {
            $dossier_fichier_cache = dirname($chemin_fichier_cache);
            if (!is_dir($dossier_fichier_cache))
				{
					mkdir($dossier_fichier_cache, 0755, true);
				}

            $fh = fopen($chemin_fichier_cache,'w+');
            if ($fh) {
                if (fwrite($fh, $contenu)) {
                    if (fclose($fh)) {
                        error_log(sprintf("%s: caching \"%s\" [%s]", __FILE__, $chemin_fichier_cache, @$_SERVER['REQUEST_URI']));

                        $ok = true;
                    }
                }
                // Voir #ZF-4422 pour la raison de l'utilisation de octdec()
                @chmod($chemin_fichier_cache,  octdec('0777'));
            }
        }
        if(!$ok) error_log(sprintf("%s: ERROR trying to cache \"%s\" [%s]", __FILE__, $chemin_fichier_cache, @$_SERVER['REQUEST_URI']));
        return $ok;
    }
}
";s:19:" * namespaceAliases";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * includes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:12:" * functions";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * classes";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:12:"\CacheSimple";O:40:"phpDocumentor\Descriptor\ClassDescriptor":18:{s:9:" * parent";s:0:"";s:13:" * implements";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:11:" * abstract";b:0;s:8:" * final";b:0;s:12:" * constants";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:13:" * properties";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:13:"mise_en_cache";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":15:{s:9:" * parent";r:15;s:8:" * types";N;s:10:" * default";s:4:"null";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:27:"\CacheSimple::mise_en_cache";s:7:" * name";s:13:"mise_en_cache";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:25;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50007";s:7:" * line";i:25;s:10:" * context";a:1:{i:0;s:14:"$mise_en_cache";}}}}}s:15:"stockage_chemin";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":15:{s:9:" * parent";r:15;s:8:" * types";N;s:10:" * default";s:4:"null";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:29:"\CacheSimple::stockage_chemin";s:7:" * name";s:15:"stockage_chemin";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:26;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50007";s:7:" * line";i:26;s:10:" * context";a:1:{i:0;s:16:"$stockage_chemin";}}}}}s:12:"duree_de_vie";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":15:{s:9:" * parent";r:15;s:8:" * types";N;s:10:" * default";s:4:"null";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:26:"\CacheSimple::duree_de_vie";s:7:" * name";s:12:"duree_de_vie";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:27;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50007";s:7:" * line";i:27;s:10:" * context";a:1:{i:0;s:13:"$duree_de_vie";}}}}}s:7:"options";O:43:"phpDocumentor\Descriptor\PropertyDescriptor":15:{s:9:" * parent";r:15;s:8:" * types";N;s:10:" * default";s:110:"array('mise_en_cache' => 'true', 'stockage_chemin' => 'Fichier::getDossierTmp()', 'duree_de_vie' => '3600*24')";s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:8:" * fqsen";s:21:"\CacheSimple::options";s:7:" * name";s:7:"options";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:29;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"var";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50007";s:7:" * line";i:29;s:10:" * context";a:1:{i:0;s:8:"$options";}}}}}}}s:10:" * methods";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:4:{s:11:"__construct";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:15;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:8:"$options";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:0:{}s:10:" * default";s:7:"array()";s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$options";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:27:"\CacheSimple::__construct()";s:7:" * name";s:11:"__construct";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:35;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";a:0:{}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50015";s:7:" * line";i:35;s:10:" * context";a:2:{i:0;s:8:"$options";i:1;s:13:"__construct()";}}i:1;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50008";s:7:" * line";i:35;s:10:" * context";a:1:{i:0;s:13:"__construct()";}}}}}s:27:"initialiserOptionsParConfig";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:15;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:7:"private";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:43:"\CacheSimple::initialiserOptionsParConfig()";s:7:" * name";s:27:"initialiserOptionsParConfig";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:64;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50008";s:7:" * line";i:64;s:10:" * context";a:1:{i:0;s:29:"initialiserOptionsParConfig()";}}}}}s:7:"charger";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:15;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{s:3:"$id";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:3:"$id";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:23:"l'identifiant du Cache.";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:23:"\CacheSimple::charger()";s:7:" * name";s:7:"charger";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:95:"Teste si le cache est disponible pour l'id donné et (si oui) le retourne (sinon renvoie false)";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:78;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:3:"$id";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:23:"l'identifiant du Cache.";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";a:2:{i:0;s:6:"string";i:1;s:5:"false";}s:7:" * name";s:6:"return";s:14:" * description";s:22:"les données en cache.";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:6:"sauver";O:41:"phpDocumentor\Descriptor\MethodDescriptor":16:{s:9:" * parent";r:15;s:11:" * abstract";b:0;s:8:" * final";b:0;s:9:" * static";b:0;s:13:" * visibility";s:6:"public";s:12:" * arguments";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:8:"$contenu";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:8:"$contenu";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:32:"les données à mettre en cache.";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}s:3:"$id";O:43:"phpDocumentor\Descriptor\ArgumentDescriptor":13:{s:8:" * types";a:1:{i:0;s:6:"string";}s:10:" * default";N;s:14:" * byReference";b:0;s:8:" * fqsen";s:0:"";s:7:" * name";s:3:"$id";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:0:"";s:14:" * description";s:23:"l'identifiant du Cache.";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:8:" * fqsen";s:22:"\CacheSimple::sauver()";s:7:" * name";s:6:"sauver";s:12:" * namespace";N;s:10:" * package";s:0:"";s:10:" * summary";s:55:"Sauvegarde la chaine de données dans un fichier texte.";s:14:" * description";s:89:"Note : $contenu est toujours de type "string". C'est à vous de gérer la sérialisation.";s:17:" * fileDescriptor";N;s:7:" * line";i:98;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:5:"param";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{i:0;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:8:"$contenu";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:32:"les données à mettre en cache.";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}i:1;O:44:"phpDocumentor\Descriptor\Tag\ParamDescriptor":5:{s:15:" * variableName";s:3:"$id";s:8:" * types";a:1:{i:0;s:6:"string";}s:7:" * name";s:5:"param";s:14:" * description";s:23:"l'identifiant du Cache.";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"return";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:45:"phpDocumentor\Descriptor\Tag\ReturnDescriptor":4:{s:8:" * types";a:1:{i:0;s:7:"boolean";}s:7:" * name";s:6:"return";s:14:" * description";s:23:"true si aucun problème";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:13:" * usedTraits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:8:" * fqsen";s:12:"\CacheSimple";s:7:" * name";s:11:"CacheSimple";s:12:" * namespace";s:0:"";s:10:" * package";s:9:"Framework";s:10:" * summary";s:85:"Classe Cache permettant de mettre en cache des données de façon extremement simple.";s:14:" * description";s:426:"Le cache est stocker dans des fichiers textes.
Le contrôle de la durée de vie du cache se fait avec la fonction PHP filemtime.
Si la durée de vie du cache est modifiée dans le constructeur ou le fichier de config, alors la durée de vie de l'ensemble
des fichiers de cache est modifiée en conséquence.
Les clés pour le tableau des options et les valeurs par défaut sont indiquées dans l'attribut options de la classe.";s:17:" * fileDescriptor";r:1;s:7:" * line";i:23;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:8:{s:8:"category";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:8:"category";s:14:" * description";s:7:"php 5.2";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:7:"package";s:14:" * description";s:9:"Framework";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:6:"author";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{i:0;O:45:"phpDocumentor\Descriptor\Tag\AuthorDescriptor":3:{s:7:" * name";s:6:"author";s:14:" * description";s:43:"Jean-Pascal MILCENT <jpm@tela-botanica.org>";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}i:1;O:45:"phpDocumentor\Descriptor\Tag\AuthorDescriptor":3:{s:7:" * name";s:6:"author";s:14:" * description";s:47:"Aurélien PERONNET <aurelien@tela-botanica.org>";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:9:"copyright";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:9:"copyright";s:14:" * description";s:61:"Copyright (c) 2010, Tela Botanica (accueil@tela-botanica.org)";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:7:"license";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:3:{i:0;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:7:"license";s:14:" * description";s:57:"http://framework.zend.com/license/new-bsd Licence New BSD";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}i:1;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:7:"license";s:14:" * description";s:71:"http://www.cecill.info/licences/Licence_CeCILL_V2-fr.txt Licence CECILL";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}i:2;O:38:"phpDocumentor\Descriptor\TagDescriptor":3:{s:7:" * name";s:7:"license";s:14:" * description";s:52:"http://www.gnu.org/licenses/gpl.html Licence GNU-GPL";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:7:"version";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:46:"phpDocumentor\Descriptor\Tag\VersionDescriptor":4:{s:10:" * version";s:0:"";s:7:" * name";s:7:"version";s:14:" * description";s:55:"$Id: CacheSimple.php 445 2013-10-24 17:08:14Z raphael $";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:4:"link";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:43:"phpDocumentor\Descriptor\Tag\LinkDescriptor":4:{s:7:" * link";s:15:"/doc/framework/";s:7:" * name";s:4:"link";s:14:" * description";s:15:"/doc/framework/";s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:10:"subpackage";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}}s:13:" * interfaces";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:9:" * traits";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:" * markers";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;a:3:{s:4:"type";s:4:"TODO";s:7:"message";s:87:": voir ce qui est le plus pratique : error_log ou le gestionnaire de bogue du framework";s:4:"line";i:22;}}}s:8:" * fqsen";s:0:"";s:7:" * name";s:15:"CacheSimple.php";s:12:" * namespace";N;s:10:" * package";s:7:"Default";s:10:" * summary";s:0:"";s:14:" * description";s:0:"";s:17:" * fileDescriptor";N;s:7:" * line";i:0;s:7:" * tags";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:2:{s:7:"package";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}s:10:"subpackage";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:0:{}}}}s:9:" * errors";O:35:"phpDocumentor\Descriptor\Collection":1:{s:8:" * items";a:1:{i:0;O:40:"phpDocumentor\Descriptor\Validator\Error":4:{s:11:" * severity";s:5:"error";s:7:" * code";s:13:"PPC:ERR-50000";s:7:" * line";i:0;s:10:" * context";a:1:{i:0;s:0:"";}}}}}