Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
95.00% covered (success)
95.00%
19 / 20
CRAP
97.92% covered (success)
97.92%
47 / 48
_file
0.00% covered (danger)
0.00%
0 / 1
95.00% covered (success)
95.00%
19 / 20
25
97.92% covered (success)
97.92%
47 / 48
 __construct
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
5 / 5
 isDir
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 isFile
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setAdresse
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
4 / 4
 getAdresse
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 setContent
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 addContent
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 save
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getContent
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 load
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 clean
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 getTab
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 delete
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 exist
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 getName
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 getExtension
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
3 / 3
 write
0.00% covered (danger)
0.00%
0 / 1
3.07
80.00% covered (warning)
80.00%
4 / 5
 filemtime
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
1 / 1
 chmod
100.00% covered (success)
100.00%
1 / 1
1
100.00% covered (success)
100.00%
2 / 2
 verif
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
3 / 3
<?php
/*
This file is part of Mkframework.
Mkframework is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License.
Mkframework is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with Mkframework.  If not, see <http://www.gnu.org/licenses/>.
*/
/**
* _file classe pour gerer un fichier
* @author Mika
* @link http://mkf.mkdevs.com/
*/
class _file{
    
    private $_sAdresse;
    private $_sContent;
    
    /** 
    * constructeur
    * @access public
    * @param string $sAdresse l'adresse du fichier
    */
    public function __construct($sAdresse=null){
        if($sAdresse!=null){
            $this->setAdresse($sAdresse);
        }
        $this->_sContent=null;
    }
    /** 
    * indique que ce n'est pas un repertoire (utilise apres un _file->getList 
    * @access public
    * @return false
    */
    public function isDir(){
        return false;
    }
    /** 
    * indique que c'est un fichier (utilise apres un _file->getList 
    * @access public
    * @return true
    */
    public function isFile(){
        return true;
    }
    /** 
    * defini l'adresse du fichier
    * @access public
    * @param string $sAdresse adresse du fichier
    */
    public function setAdresse($sAdresse){
        if($sAdresse!=null){
            $this->_sAdresse=$sAdresse;
        }
    }
    /** 
    * retourne l'adresse complete du fichier
    * @access public
    * @return string
    */
    public function getAdresse(){
        return  $this->_sAdresse;
    }
    /** 
    * initialise le contenu du fichier
    * @access public
    * @param string $sContent contenu du fichier
    */
    public function setContent($sContent){
        $this->_sContent=$sContent;
    }
    /** 
    * ajoute du contenu au fichier
    * @access public
    * @param string $sContent contenu du fichier a ajouter
    */
    public function addContent($sContent){
        $this->_sContent.=$sContent;
    }
    /** 
    * sauvegarde le fichier
    * @access public
    */
    public function save($sOption='w'){
        $this->write($this->_sContent,$sOption);
    }
    /** 
    * retourne le contenu du fichier
    * @access public
    * @return string 
    */
    public function getContent(){
        $this->verif();
        
        $sFichier=file_get_contents($this->_sAdresse);
        
        return $sFichier;        
    }
    /** 
    * charge le contenu du fichier
    * @access public
    */
    public function load(){
        $this->_sContent=$this->getContent();
    }
    /** 
    * reinitialise le fichier
    * @access public
    */
    public function clean(){
        $this->_sContent=null;
        $this->_sAdresse=null;
    }
    /** 
    * retourne le contenu du fichier sous forme d'un tableau
    * @access public
    * @return array 
    */
    public function getTab(){
        $this->verif();
    
        return file($this->_sAdresse);
    }
    /** 
    * supprime le fichier
    * @access public
    */
    public function delete(){
        $this->verif();
    
        unlink($this->_sAdresse);
    }
    /** 
    * test l'existence du fichier
    * @access public
    * @return bool true ou false
    */
    public function exist(){
        return file_exists($this->_sAdresse);
    }
    /** 
    * retourne le nom du fichier
    * @access public
    * @return string
    */
    public function getName(){
        $this->verif();
        return basename($this->_sAdresse);
    }
    /** 
    * retourne l'extension du fichier
    * @access public
    * @return string
    */
    public function getExtension(){
        $this->verif();
        $tTmp=preg_split('/\./',$this->_sAdresse);
        return end($tTmp);
    }
    /** 
    * ecrit $sContent avec l'option $sOption
    * @access public
    * @param string $sContent
    * @param string $sOption
    */
    public function write($sContent,$sOption='w'){
        
        if($sContent==''){
            file_put_contents($this->_sAdresse,$sContent);
        }else if(!file_put_contents($this->_sAdresse,$sContent)){
            throw new Exception('Can t write "'.$sContent.'"'.$this->_sAdresse); 
        }
    }
    /** 
    * retourne le timestamp de modification du fichier
    * @access public
    * @return int
    */
    public function filemtime(){
        return filemtime($this->_sAdresse);
    }
    /** 
    * change les droits d'un fichier
    * @access public
    * @param string $iVal du chmod a faire
    */
    public function chmod($iVal=0777){
        chmod($this->_sAdresse,$iVal);
    }
    
    protected function verif(){
        if(!$this->exist()){
            throw new Exception($this->_sAdresse.' n\'existe pas');
        }
        return true;
    }
}