<commit_before><?php
	/**
	 * @file : cacheGc.class.php
	 * @author : fab@c++
	 * @description : class gérant la mise en cache de façon générale
	 * @version : 2.0 bêta
	*/
	
	class cacheGc{
		use errorGc;                  //trait
		
		protected $_name              ; //nom du cache
		protected $_nameFile          ; //nom du fichier de cache
		protected $_time              ; //temps de mise en cache
		protected $_val               ; //contenu à mettre en cache
		
		/**
		 * Constructeur de la classe. Configure les paramètres necéssaires à la création d'un fichier de cache
		 * @access	public
		 * @return	void
		 * @param string $name : nom du fichier de cache
		 * @param string $val : contenu du fichier de cache<br />
		 * @param int $time : temps de mise en cache du fichier. La valeur par défaut, 0 correspond à un fichier non mis en cache
		 * @since 2.0
		*/
		
		public function __construct($name, $val, $time=0){
			$this->_time = $time;
			$this->_name = $name;
			$this->_nameFile = CACHE_PATH.$name.'.cache';
			$this->_val = $val;
		}
		
		/**
		 * Création du cache
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
		
		public function setCache(){
			if(!file_exists($this->_nameFile)){
				$fichier = fopen($this->_nameFile, 'w+');
				fwrite($fichier, $this->_compress(serialize($this->_val)));
				fclose($fichier);
			}
		 
			$time_ago = time() - filemtime($this->_nameFile);
		 
			if($time_ago > $this->_time){
				$fichier = fopen($this->_nameFile, 'w+');
				fwrite($fichier, $this->_compress(serialize($this->_val)));
				fclose($fichier);
			}
		}
		
		/**
		 * Configuration du nom du cache
		 * @access	public
		 * @return	void
		 * @param string $name : nom du fichier de cache
		 * @since 2.0
		*/
		
		public function setName($name){
			$this->_name = $name;
			$this->_nameFileFile = CACHE_PATH.$name.'.cache';
		}
		
		/**
		 * Configuration du contenu du cache
		 * @access	public
		 * @return	void
		 * @param string $val : contenu du fichier de cache
		 * @since 2.0
		*/
		
		public function setVal($val){
			$this->_val = $val;
		}
		
		/**
		 * Configuration du temps de mise en cache
		 * @access	public
		 * @return	void
		 * @param int $time : temps de mise en cache
		 * @since 2.0
		*/
		
		public function setTime($time=0){
			$this->_time = $time;
		}
		
		/**
		 * Récupération du cache
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
	 
		public function getCache(){
			if(file_exists($this->_nameFile)){
				return unserialize($this->_uncompress(file_get_contents($this->_nameFile)));
			}
			else{
				$this->setCache();
			}
		}
	 
		/**
		 * Fonction permettant de savoir si le fichier de cache est périmé
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
	 
		public function isDie(){
			$rep = false;
			if(!file_exists($this->_nameFile)){
				$rep = true;
			}
			else{
				$time_ago = time() - filemtime($this->_nameFile);
				if($time_ago > $this->_time){
					$rep = true;
				}
			}
			return $rep;
		}
		
		/**
		 * Fonction permettant de savoir si le fichier de cache existe
		 * @access	public<commit_msg>Signed-off-by: unknown <<EMAIL>><commit_after><?php
	/**
	 * @file : cacheGc.class.php
	 * @author : fab@c++
	 * @description : class gérant la mise en cache de façon générale
	 * @version : 2.0 bêta
	*/
	
	class cacheGc{
		use errorGc;                  //trait
		
		protected $_name              ; //nom du cache
		protected $_nameFile          ; //nom du fichier de cache
		protected $_time              ; //temps de mise en cache
		protected $_val               ; //contenu à mettre en cache
		
		/**
		 * Constructeur de la classe. Configure les paramètres necéssaires à la création d'un fichier de cache
		 * @access	public
		 * @return	void
		 * @param string $name : nom du fichier de cache
		 * @param string $val : contenu du fichier de cache<br />
		 * @param int $time : temps de mise en cache du fichier. La valeur par défaut, 0 correspond à un fichier non mis en cache
		 * @since 2.0
		*/
		
		public function __construct($name, $val, $time=0){
			$this->_time = $time;
			$this->_name = $name;
			$this->_nameFile = CACHE_PATH.$name.'.cache';
			$this->_val = $val;
		}
		
		/**
		 * Création du cache
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
		
		public function setCache(){
			if(!file_exists($this->_nameFile)){
				$fichier = fopen($this->_nameFile, 'w+');
				fwrite($fichier, $this->_compress(serialize($this->_val)));
				fclose($fichier);
			}
		 
			$time_ago = time() - filemtime($this->_nameFile);
		 
			if($time_ago > $this->_time){
				$fichier = fopen($this->_nameFile, 'w+');
				fwrite($fichier, $this->_compress(serialize($this->_val)));
				fclose($fichier);
			}
		}
		
		/**
		 * Configuration du nom du cache
		 * @access	public
		 * @return	void
		 * @param string $name : nom du fichier de cache
		 * @since 2.0
		*/
		
		public function setName($name){
			$this->_name = $name;
			$this->_nameFileFile = CACHE_PATH.$name.'.cache';
		}
		
		/**
		 * Configuration du contenu du cache
		 * @access	public
		 * @return	void
		 * @param string $val : contenu du fichier de cache
		 * @since 2.0
		*/
		
		public function setVal($val){
			$this->_val = $val;
		}
		
		/**
		 * Configuration du temps de mise en cache
		 * @access	public
		 * @return	void
		 * @param int $time : temps de mise en cache
		 * @since 2.0
		*/
		
		public function setTime($time=0){
			$this->_time = $time;
		}
		
		/**
		 * Récupération du cache
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
	 
		public function getCache(){
			if(file_exists($this->_nameFile)){
				return unserialize($this->_uncompress(file_get_contents($this->_nameFile)));
			}
			else{
				$this->setCache();
			}
		}
	 
		/**
		 * Fonction permettant de savoir si le fichier de cache est périmé
		 * @access	public
		 * @return	void
		 * @since 2.0
		*/
	 
		public function isDie(){
			if($this->_time > 0){
				$rep = false;
				if(!file_exists($this->_nameFile)){
					$rep = true;
				}
				else{
					$time_ago = time() - filemtime($this->_nameFile);
					if($time_ago > $this->_time){
						$rep = true;
					}
				}
				return $rep;
			}
			else{
				return true;
			}
		}
		
		/**
		 * Fonction permettant de savoir si le fichier de cache existe
		 * @access	public
{'fraction_non_alphanumeric': 0.14169976171564733, 'fraction_numerical': 0.00619539316918189, 'mean_word_length': 2.4161692892023874, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 61, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2122753', 'n_tokens_mistral': 2622, 'n_tokens_neox': 2104, 'n_words': 590}