From cdac8652931a12e72bc6be2770bd1798c0ef5240 Mon Sep 17 00:00:00 2001
From: xdrm-brackets
- Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 20:46:41 CET 2016.
+ Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 22:01:41 CET 2016.
-
-
-
- CRAP
+
+
+ CRAP
-
-
+
+
@@ -71,74 +71,91 @@
-
-
-
- 83.14
+
+
+ 47
-
-
+
+
-
__construct($host, $dbname, $username, $password)
+ __construct($host, $dbname, $username, $password)
- 2
- 2.01
+
-
-
+
+
-
getInstance()
+ getInstance()
- 12
- 6.10
+
-
-
+
+
-
getPDO()
- getPDO()
+
-
-
- 2
-
+
+ 1
+
-
-
+
+
-
+
+ delNumeric($fetchData, $oneDimension=false)
+ getConfig()
+
+
+
+ 1
+
+
+
+
+
delNumeric($fetchData, $oneDimension=false)
- check($type, $value)
+ check($type, $value)
class DataBase{
- /* ATTRIBUTS STATIQUES */
- public static $config_path = array('f/json/database/conf', 'f/json/database-local/conf');
- private static $pdo;
- private static $instance;
+
+ public static $config_path = array(
+ 'local' => 'f/json/database-local/conf',
+ 'remote' => 'f/json/database/conf' );
-
- /* ATTRIBUTS */
- private $host;
- private $dbname;
- private $username;
- private $password;
-
-
- public function __construct($host, $dbname, $username, $password){
- $this->host = $host;
- $this->dbname = $dbname;
- $this->username = $username;
+ $this->password = $password;
+ private static $pdo;
+ private static $instance;
+
+
+ /* ATTRIBUTS */
+ private $host;
+ private $dbname;
+ private $username;
+ private $password;
+
+ public static $error;
-
- // password: Qt358nUdyeTxLDM8
- self::$pdo = new \PDO('mysql:host='.$host.';dbname='.$dbname, $username, $password);
- }
-
-
- /* retourne une instance de la classe */
- public static function getInstance(){
+ if( self::$instance == null ){
+ public function __construct($host, $dbname, $username, $password){
+ $this->host = $host;
+ $this->dbname = $dbname;
+ $this->username = $username;
+ $this->password = $password;
+
+ try{ self::$pdo = new \PDO('mysql:host='.$this->host.';dbname='.$this->dbname, $this->username, $this->password);
-
- // chargement de la configuration du server SQL
- if( $_SERVER['HTTP_HOST'] != 'stefproject' )
- $conf = json_decode( ResourceDispatcher::getResource(self::$config_path[0]), true );
- else
- $conf = json_decode( ResourceDispatcher::getResource(self::$config_path[1]), true );
-
- // creation de l'instance en fonction des parametres
+ self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
+ // On signale que tout s'est bien passe
+ self::$error = \manager\ManagerError::Success;
+
+ }catch(Exception $e){
+ // On signale qu'il y a une erreur
+ self::$error = \manager\ManagerError::PDOConnection;
+ } }
-
- }
-
- return self::$instance;
+ }
+
+ /* retourne une instance de la classe */
+ public static function getInstance(){ if( self::$instance == null || self::$error != \manager\ManagerError::Success ){ // Si aucune instance existante OU erreur de connection
-
- /* retourne la connection statique */
- public static function getPDO(){
- $instance = self::getInstance();
- return self::$pdo;
+ }
+ // chargement de la configuration du server SQL
+ if( !isset($_SERVER['HTTP_HOST']) || isset($_SERVER['HTTP_HOST']) && $_SERVER['HTTP_HOST'] == 'stefproject' )
+ $conf = json_decode( ResourceDispatcher::getResource(self::$config_path['local']), true );
+ else $conf = json_decode( ResourceDispatcher::getResource(self::$config_path['remote']), true );
-
-
- /*************************************************************/
- /* _____ ______ _ _ ______ _____ _ */
- /* / ____| ____| \ | | ____| __ \ /\ | | */
- /* | | __| |__ | \| | |__ | |__) | / \ | | */
- /* | | |_ | __| | . ` | __| | _ / / /\ \ | | */
- /* | |__| | |____| |\ | |____| | \ \ / ____ \| |____ */
- /* \_____|______|_| \_|______|_| \_\/_/ \_\______| */
- /* */
- /*************************************************************/
-
- /* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD
- *
- * @fetchData<Array> le résultat d'une $requeteSQL->fetchAll()
- * @oneDimension<Boolean> FAUX <=> fetchAll ; VRAI <=> fetch
- *
- * @return newFetchData<Array> retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
- *
- */
- public static function delNumeric($fetchData, $oneDimension=false){
+ $nextEquivalent = false; // Vaut VRAI si le prochain est peut-etre un equivalent numerique
+ // creation de l'instance en fonction des parametres
+ self::$instance = new DataBase($conf['host'], $conf['dbname'], $conf['user'], $conf['password']);
+
+ }
+
+ return self::$instance;
+ }
+
+ /* retourne la connection statique */
+ public static function getPDO(){
+ $instance = self::getInstance();
+
+ return self::$pdo;
+ }
+
+
+
+
+
+
-
- /* [1] 2 dimensions
- ===============================================*/
- if( !$oneDimension && is_array($fetchData[0]) ){
-
- // on supprime les doublons des entrées (indice numérique)
- for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs
+ foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées
+
+ public function getConfig(){
+ return array(
+ 'host' => $this->host,
+ 'username' => $this->username
+ ); }
-
- if( !mb_detect_encoding($val, 'UTF-8') )
+ $fetchData[$i][$col] = utf8_encode($val);
+
-
- if( is_int($col) ){ // Si indice numerique
- if( $nextEquivalent ) // Si suit un indice textuel
- unset( $fetchData[$i][$col] ); // on supprime l'indice
-
- $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
-
- }else // Si l'indice n'est pas un entier
- $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
-
- }
-
- /* [2] 1 dimensions
- ===============================================*/
- }else{
-
- // on supprime les doublons des entrées (indice numérique)
- foreach($fetchData as $i=>$val){ // pour toutes les entrées
-
- if( !mb_detect_encoding($val, 'UTF-8') )
- $fetchData[$i] = utf8_encode($val);
-
- if( is_int($i) ){ // Si indice numerique
- if( $nextEquivalent ) // Si suit un indice textuel
- unset( $fetchData[$i] ); // on supprime l'indice
-
- $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
-
- }else // Si l'indice n'est pas un entier
- $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
-
+ }
+
+
+
+ /*************************************************************/
+ /* _____ ______ _ _ ______ _____ _ */
+ /* / ____| ____| \ | | ____| __ \ /\ | | */
+ /* | | __| |__ | \| | |__ | |__) | / \ | | */
+ /* | | |_ | __| | . ` | __| | _ / / /\ \ | | */
+ /* | |__| | |____| |\ | |____| | \ \ / ____ \| |____ */
+ /* \_____|______|_| \_|______|_| \_\/_/ \_\______| */
+ /* */
+ /*************************************************************/
+
+ /* SUPPRIME LES VALEURS À CLÉS NUMÉRIQUES DANS UN FETCH D'UNE TABLE DE LA BDD
+ *
+ * @fetchData<Array> le résultat d'une $requeteSQL->fetchAll()
+ * @oneDimension<Boolean> FAUX <=> fetchAll ; VRAI <=> fetch
+ *
+ * @return newFetchData<Array> retourne le tableau donné en paramètre mais sans les valeurs à clés numériques
+ *
+ */
+ public static function delNumeric($fetchData, $oneDimension=false){
+ $nextEquivalent = false; // Vaut VRAI si le prochain est peut-etre un equivalent numerique
+
+ /* [1] 2 dimensions
+ ===============================================*/
+ if( !$oneDimension && is_array($fetchData[0]) ){
+
+ // on supprime les doublons des entrées (indice numérique)
+ for( $i = 0 ; $i < count($fetchData) ; $i++ ) // pour tout les utilisateurs foreach($fetchData[$i] as $col => $val){ // pour toutes les entrées
-
- }
-
- return $fetchData;
- }
-
+
+ if( !mb_detect_encoding($val, 'UTF-8') )
+ $fetchData[$i][$col] = utf8_encode($val);
+
+ if( is_int($col) ){ // Si indice numerique
+ if( $nextEquivalent ) // Si suit un indice textuel unset( $fetchData[$i][$col] ); // on supprime l'indice
-
- ////////////////////////////////////////////////////////////////
- // _ __ _ _ _
- // __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___
- // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __|
- // \ V / __/ | | | _| | (_| (_| | |_| | (_) | | | \__ \
- // \_/ \___|_| |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/
- //
- ////////////////////////////////////////////////////////////////
-
-
- /* VERIFICATIONS DES TYPES UTILES GENERIQUES
- *
- * @type<String> Type que l'on veut verifier
- * @value<mixed*> Valeur a verifier
- *
- * @return match<Boolean> Retourne si oui ou non la valeur @value est du bon type @type
- *
- */
- public static function check($type, $value){
+ $checker = !is_null($value);
+ $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
+
+ }else // Si l'indice n'est pas un entier
+ $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
+
+ }
+
+ /* [2] 1 dimensions
+ ===============================================*/
+ }else{
+
+ // on supprime les doublons des entrées (indice numérique)
+ foreach($fetchData as $i=>$val){ // pour toutes les entrées
+
+ if( !mb_detect_encoding($val, 'UTF-8') )
+ $fetchData[$i] = utf8_encode($val);
+
+ if( is_int($i) ){ // Si indice numerique
+ if( $nextEquivalent ) // Si suit un indice textuel unset( $fetchData[$i] ); // on supprime l'indice
-
- switch($type){
- /* (1) Global */
- case 'auto_increment_id':
- return $checker && is_numeric($value) && $value <= 2147483647 && $value >= -2147483647;
- break;
-
- /* (2) Utilisateur */
- case 'user.code':
- case 'machine.code':
- return $checker && is_string($value) && preg_match('/^[\dA-F]{2}(\-[\dA-F]{2}){3,5}$/i', $value);
+ break;
+ $nextEquivalent = false; // Dans tous les cas, on dit que le prochain ne pourra pas etre supprime si numerique
+
+ }else // Si l'indice n'est pas un entier
+ $nextEquivalent = true; // On signale qu'il y aura peut etre un indice numerique suivant
+
+ }
+
+ }
+
+ return $fetchData; }
-
- case 'user.username':
- case 'machine.name':
- case 'group.name':
- return $checker && is_string($value) && preg_match('/^[\w-]{1,30}$/i', $value);
- break;
-
- case 'user.firstname':
- case 'user.lastname':
- return $checker && is_string($value) && preg_match('/^[a-z -]{3,30}$/i', $value);
+ break;
+
+
+ ////////////////////////////////////////////////////////////////
+ // _ __ _ _ _
+ // __ _____ _ __(_)/ _(_) ___ __ _| |_(_) ___ _ __ ___
+ // \ \ / / _ \ '__| | |_| |/ __/ _` | __| |/ _ \| '_ \/ __|
+ // \ V / __/ | | | _| | (_| (_| | |_| | (_) | | | \__ \
+ // \_/ \___|_| |_|_| |_|\___\__,_|\__|_|\___/|_| |_|___/
+ // ////////////////////////////////////////////////////////////////
-
- case 'user.mail':
- return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value);
- break;
-
- case 'user.password':
- return $checker && is_string($value) && preg_match('/^[\da-f]{40}$/i', $value);
- break;
-
- }
-
+ return $checker;
+
+ /* VERIFICATIONS DES TYPES UTILES GENERIQUES
+ *
+ * @type<String> Type que l'on veut verifier
+ * @value<mixed*> Valeur a verifier
+ *
+ * @return match<Boolean> Retourne si oui ou non la valeur @value est du bon type @type
+ *
+ */
+ public static function check($type, $value){ $checker = !is_null($value);
-
- }
-
-
- }
+ ?>
+ switch($type){
+ /* (1) Global */
+ case 'auto_increment_id':
+ return $checker && is_numeric($value) && $value <= 2147483647 && $value >= -2147483647;
+ break;
+
+ /* (2) Utilisateur */
+ case 'user.code':
+ case 'machine.code':
+ return $checker && is_string($value) && preg_match('/^[\dA-F]{2}(\-[\dA-F]{2}){3,5}$/i', $value);
+ break;
+
+ case 'user.username':
+ case 'machine.name':
+ case 'group.name':
+ return $checker && is_string($value) && preg_match('/^[\w-]{1,30}$/i', $value);
+ break;
+
+ case 'user.firstname':
+ case 'user.lastname':
+ return $checker && is_string($value) && preg_match('/^[a-z -]{3,30}$/i', $value);
+ break;
+
+ case 'user.mail':
+ return $checker && is_string($value) && strlen($value) <= 50 && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $value);
+ break;
+
+ case 'user.password':
+ return $checker && is_string($value) && preg_match('/^[\da-f]{40}$/i', $value);
+ break;
+
+ }
+
+ return $checker;
+
+ }
+
+
+ }
@@ -375,7 +427,7 @@
Dead Code
?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+
+
+
+ CRAP
+
+
+
+
+
+
+ ManagerError
+
+
+
+
+
+
+ 182
+
+
+
+
+
+
+
+
+ explicit($error)
+
+
+
+ 182
+
+
+
+
+
+
+
+
+ <?php
+
+
+ namespace manager;
+
+
+ class ManagerError{
+
+ /* SUCCESS */
+ const Success = 0;
+
+ /* Parsage json */
+ const ParsingFailed = 1;
+
+ /* ResourceDispatcher */
+
+ // Drapeaux invalides
+ const InvalidFlags = 2;
+
+ // Fichier inexistant
+ const UnreachableResource = 3;
+
+
+ /* ModuleRequest */
+
+ // Le @path n'est pas renseigne
+ const MissingPath = 4;
+
+ // Verification de la coherence du chemin (existe dans la conf)
+ const WrongPathModule = 5;
+
+ // Module non specifie dans la conf
+ const UnknownModule = 6;
+
+ // Methode non specifie pour ce Module dans la conf
+ const UnknownMethod = 7;
+
+ // Methode inamorcable
+ const UncallableMethod = 8;
+
+ /* Repo */
+
+ // Verification de la coherence du chemin (existe dans la conf)
+ const WrongPathRepo = 9;
+
+ // Module non specifie dans la conf
+ const UnknownRepo = 10;
+
+ /* Database */
+
+ // Erreur lors de la creation d'un objet PDO (connection)
+ const PDOConnection = 11;
+
+
+ /* EXPLICITE UN CODE D'ERREUR
+ *
+ * @error<Integer> Code d'erreur
+ *
+ * @return explicit<String> Description explicite du code d'erreur
+ *
+ */
+ public static function explicit($error){
+ switch($error){
+ case self::Success: return "Tout s'est bien deroule"; break;
+ case self::ParsingFailed: return "La lecture du fichier JSON a echoue"; break;
+ case self::InvalidFlags: return "Les specifications (drapeaux) sont incorrects"; break;
+ case self::UnreachableResource: return "La ressource n'existe pas (404)"; break;
+ case self::MissingPath: return "Le chemin de delegation n'a pas ete renseigne"; break;
+ case self::WrongPathModule: return "Le chemin de delegation est incorrect ('nomModule/nomMethode')"; break;
+ case self::WrongPathRepo: return "Le chemin de delegation est incorrect ('nomRepo/nomMethode')"; break;
+ case self::UnknownModule: return "Le module n'existe pas"; break;
+ case self::UnknownRepo: return "Le repo n'existe pas"; break;
+ case self::UnknownMethod: return "Le methode n'existe pas"; break;
+ case self::UncallableMethod: return "Le methode n'est pas amorcable"; break;
+ case self::PDOConnection: return "La connexion avec la base de donnees a echoue"; break;
+
+ default: return "Erreur inconnue..."; break;
+ }
+
+ return 'Aucune erreur trouvee';
+ }
+
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Total
+
+
+
+
+
+
+ CRAP
+
+
+
+
+
+
+ ResourceDispatcher
+
+
+
+
+
+
+ 32.04
+
+
+
+
+
+
+ __construct($url, $view=false)
+
+
+
+ 8.30
+
+
+
+
+
+
+ getResource($route)
+
+
+
+ 1
+
+
+
+
+
+
+ createFlags($serialFlags)
+
+
+
+ 9
+
+
+
+
+
+
+ buildPath()
+
+
+
+ 4
+
+
+
+
+
+
+ view()
+
+
+
+ 6
+
+
+
+
+
+
+
+
+ getContent()
+
+
+
+ 2
+
+
+
+
+
+
+
+
+ <?php
+
+ namespace manager;
+
+
+ class ResourceDispatcher{
+
+ // Constantes
+ public static $extension_config_path = '/config/dispatcher-extensions.json';
+ public static $parents_config_path = '/config/dispatcher-tree.json';
+
+ public static $supported_extensions;
+ public static $supported_parents;
+
+ // Attributs prives utiles (initialisation)
+ private $header;
+ private $path;
+ private $flags;
+ public $error;
+
+
+ /* CONSTRUCTEUR & AMORCAGE DU DISPATCHER
+ *
+ * @url<String> L'url courante
+ * @view<Boolean> Si VRAI, retourne header+contenu, sinon cree juste l'objet
+ *
+ * @return status<Boolean> Retourne si oui ou non tout s'est bien passe
+ *
+ */
+ public function __construct($url, $view=false){
+ $this->error = ManagerError::Success;
+
+
+ /* [0] On met a jour la configuration
+ =====================================================*/
+ // Extensions supportees
+ $extensions_conf = json_decode( file_get_contents(__ROOT__.self::$extension_config_path), true );
+
+ // Gestion de l'erreur de parsage
+ if( $extensions_conf == null ){
+ $this->error = ManagerError::ParsingFailed;
+ return false;
+ }
+
+ self::$supported_extensions = $extensions_conf;
+
+ // Dossiers supportes
+ $parents_conf = json_decode( file_get_contents(__ROOT__.self::$parents_config_path), true );
+
+ // Gestion de l'erreur de parsage
+ if( $parents_conf == null ){
+ $this->error = ManagerError::ParsingFailed;
+ return false;
+ }
+
+ self::$supported_parents = $parents_conf;
+
+
+
+ /* [1] On recupere les donnees de l'URL
+ ==================================================*/
+ $serialFlags = array_slice( explode('/',$url), 1 );
+
+ /* [2] On check/cree les drapeaux avec ces donnees
+ ==================================================*/
+ if( !$this->createFlags($serialFlags) ){ // Creation des drapeaux
+ $this->error = ManagerError::InvalidFlags;
+ return false;
+ }
+
+
+ /* [3] On construit le chemin a partir des tags
+ ==================================================*/
+ if( !$this->buildPath() ){ // Construction du chemin
+ $this->error = ManagerError::UnreachableResource;
+ return false;
+ }
+
+ /* [4] On gere l'affichage pour l'appel externe/interne
+ ==================================================*/
+ if( $view ) // Appel externe
+ $this->view();
+
+
+ return true;
+
+ }
+
+
+ /* INCLUSION PHP D'UNE RESSOURCE UTILISANT LE DISPATCHER
+ *
+ * @route<String> Route associee a une ressource
+ *
+ * @return content<*> Retourne le contenu de la ressource
+ *
+ */
+ public static function getResource($route){
+ $instance = new ResourceDispatcher($route);
+ return $instance->getContent();
+ }
+
+
+
+ /* FONCTION QUI VERIFIE LES DRAPEAUX
+ *
+ * @serialFlags<Array> Tableau a indice numerique
+ *
+ * @return correct<Boolean> Retourne si oui ou non les drapeaux sont corrects
+ *
+ */
+ private function createFlags($serialFlags){
+ /* [1] Verification des flags (version serialisee)
+ ======================================================*/
+
+ $correct = true;
+
+ // Verification du nombre de drapeaux () au moins 3
+ $correct = $correct && count($serialFlags) >= 3;
+
+ // Verification que l'extension est correcte
+ $correct = $correct && array_key_exists($serialFlags[0], self::$supported_extensions);
+
+ // Verification du filename
+ $correct = $correct && preg_match('#^[\w_-]+$#i', $serialFlags[1]);
+
+ // Verification du parent
+ $correct = $correct && array_key_exists($serialFlags[2], self::$supported_parents);
+
+ // Verification du sous-parent (optionnel)
+ $opt_subParent = count($serialFlags) >= 4;
+
+ if( $opt_subParent )
+ $correct = $correct && preg_match('#^[\w_-]+$#i', $serialFlags[3]);
+
+
+ if( !$correct )
+ return false;
+
+
+
+ /* [2] Creation (non serialisee) des flags
+ ======================================================*/
+ // Si tout se deroule bien, on cree les flags
+ $this->flags = array(
+ 'extension' => $serialFlags[0],
+ 'filename' => $serialFlags[1],
+ 'parent' => $serialFlags[2]
+ );
+
+ // Ajout du sous-parent optionnel
+ if( $opt_subParent )
+ $this->flags['subparent'] = $serialFlags[3];
+
+ return true;
+
+
+ }
+
+
+ /* FONCTION QUI CONSTRUIT LE CHEMIN A PARTIR DU PATH
+ *
+ * @return fileExists<Boolean> Retourne si oui ou non le fichier cible existe
+ *
+ * @format
+ *
+ * f/extension/filename/parent/:subparent:/ (:OPT:)
+ *
+ */
+ private function buildPath(){
+ /* [1] On recupere le HEADER associe a l'extension
+ ==========================================================*/
+ // Si aucun header pour cet cle, on retourne une erreur
+ if( !isset(self::$supported_extensions[$this->flags['extension']]) ) return false;
+
+ // On recupere le header associe
+ $header = self::$supported_extensions[$this->flags['extension']];
+
+
+
+
+
+ /* [2] On recupere le chemin associe au parent
+ ==========================================================*/
+ // Si aucun dossier pour cet indice, on retourne une erreur
+ if( !isset(self::$supported_parents[$this->flags['parent']]) ) return false;
+
+ // On recupere le dossier associe
+ $parent = self::$supported_parents[$this->flags['parent']];
+
+
+ /* [3] Gestion du sous-parent optionnel
+ ==========================================================*/
+ $opt_subParent = (isset($this->flags['subparent'])) ? $this->flags['subparent'].'/' : '';
+
+
+ /* [4] On definit le header
+ ==========================================================*/
+ $this->header = $header;
+
+ /* [5] On construit le chemin
+ ==========================================================*/
+ $this->path = __ROOT__.$parent.'/'.$opt_subParent.$this->flags['filename'].'.'.$this->flags['extension'];
+
+ /* [6] On retourne si le fichier existe ou non
+ ==========================================================*/
+ return @file_get_contents( $this->path ) != false;
+
+ }
+
+
+
+
+ /* FUNCTION QUI AFFICHE LA RESSOURCE EN QUESTION
+ *
+ */
+ public function view(){
+ // S'il y a eu une erreur en amont
+ if( $this->error != ManagerError::Success )
+ return false; // on retourne faux
+
+ // On definit le header
+ header('Content-Type: '.$this->header);
+
+ // On inclut le contenu
+ echo file_get_contents($this->path);
+ }
+
+
+
+ /* FUNCTION QUI RETOURNE LE CONTENU DE LA RESSOURCE EN QUESTION
+ *
+ */
+ public function getContent(){
+ // S'il y a eu une erreur en amont
+ if( $this->error != ManagerError::Success )
+ return false; // on retourne faux
+
+
+ // On inclut le contenu
+ return file_get_contents($this->path);
+ }
+
+
+
+ }
+
+
+
- function autoloader($className){
+ $path = ''; $path = ''; /* [1] On utilise le namespace pour localiser ===============================================*/
- // On remplace les '\' par des '/'
- $path = str_replace('\\', '/', $className) . '.php';
+ $path = __ROOT__.'/'.$path;
+ $path = str_replace('\\', '/', $className) . '.php'; $path = __ROOT__.'/'.$path;
- // Si le fichier existe, on l'inclut
- if( file_exists($path) )
- require_once $path;
+ }
+ if( file_exists($path) )
+ require_once $path; } // On definit l'autoloader comme autoloader (obvious)
@@ -138,7 +138,7 @@
Dead Code
spl_autoload_register('autoloader', false, true);
- Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 20:46:41 CET 2016. + Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 22:01:41 CET 2016.
diff --git a/phpunit/coverage/css/bootstrap-responsive.min.css b/phpunit/coverage/css/bootstrap-responsive.min.css old mode 100644 new mode 100755 diff --git a/phpunit/coverage/css/bootstrap.min.css b/phpunit/coverage/css/bootstrap.min.css old mode 100644 new mode 100755 diff --git a/phpunit/coverage/css/style.css b/phpunit/coverage/css/style.css old mode 100644 new mode 100755 diff --git a/phpunit/coverage/img/glyphicons-halflings-white.png b/phpunit/coverage/img/glyphicons-halflings-white.png old mode 100644 new mode 100755 diff --git a/phpunit/coverage/img/glyphicons-halflings.png b/phpunit/coverage/img/glyphicons-halflings.png old mode 100644 new mode 100755 diff --git a/phpunit/coverage/index.dashboard.html b/phpunit/coverage/index.dashboard.html old mode 100644 new mode 100755 index 906abdd..9e06cbb --- a/phpunit/coverage/index.dashboard.html +++ b/phpunit/coverage/index.dashboard.html @@ -40,24 +40,28 @@- Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 20:46:41 CET 2016. + Generated by PHP_CodeCoverage 1.2.13 using PHP 5.5.9-1ubuntu4.14 and PHPUnit 3.7.28 at Fri Feb 12 22:01:41 CET 2016.
diff --git a/phpunit/coverage/js/bootstrap.min.js b/phpunit/coverage/js/bootstrap.min.js old mode 100644 new mode 100755 diff --git a/phpunit/coverage/js/html5shiv.js b/phpunit/coverage/js/html5shiv.js old mode 100644 new mode 100755 diff --git a/phpunit/coverage/js/jquery.min.js b/phpunit/coverage/js/jquery.min.js old mode 100644 new mode 100755 diff --git a/phpunit/phpunit.xml b/phpunit/phpunit.xml old mode 100644 new mode 100755 index 2470e97..0746731 --- a/phpunit/phpunit.xml +++ b/phpunit/phpunit.xml @@ -4,6 +4,7 @@