Exemple #1
0
 public function execute()
 {
     // Racine du projet
     $root = dirname(dirname(dirname(dirname(__DIR__)))) . DIRECTORY_SEPARATOR;
     $msg = '';
     $exists = false;
     // Vérifie d'abord que les dossiers/fichiers n'existent pas déjà
     if (file_exists($root . 'config/')) {
         $msg .= helper::warning("Le répertoire 'config/' existe, risque d'écrasement de fichiers existants.\r\n");
         $exists = true;
     }
     if (file_exists($root . 'public/')) {
         $msg .= helper::warning("Le répertoire 'public/' existe, risque d'écrasement de fichiers existants.\r\n");
         $exists = true;
     }
     if (file_exists($root . 'ressources/')) {
         $msg .= helper::warning("Le répertoire 'ressources/' existe, risque d'écrasement de fichiers existants.\r\n");
         $exists = true;
     }
     if (file_exists($root . 'logs/')) {
         $msg .= helper::warning("Le répertoire 'logs/' existe, risque d'écrasement de fichiers existants.\r\n");
         $exists = true;
     }
     if (file_exists($root . 'xengine')) {
         $msg .= helper::warning("Le lien symbolique 'xengine' existe, risque d'écrasement de fichiers existants.\r\n");
         $exists = true;
     }
     // Si les dossiers existaient déjà, on s'arrête
     if ($exists) {
         $msg = helper::error("Une erreur est survenue !\r\n") . $msg;
         echo $msg;
         return -1;
     }
     // Génération de l'arborescence
     if ($this->generateTree($root)) {
         echo helper::success("Initialisation terminée !\r\n");
         echo helper::success("L'arborescence suivante a été créée :");
         echo helper::info("\n-- config/\n     -- database.php\n     -- router.php\n-- logs/\n-- public/\n     -- assets/\n     -- vendor/\n     -- robots.txt\n     -- .htacess\n     -- index.php\n-- ressources/\n     -- assets/\n         -- less/\n         -- sass/\n         -- js/\n     -- locale/\n         -- fr_FR/\n            -- LC_MESSAGES/\n     -- models/\n-- .projections.json\r\n");
         echo helper::success("Un lien symbolique a été créé vers le binaire vendor/pixxid/xengine/console/xengine dans la racine de votre projet.\r\n");
         return true;
     }
     return false;
 }
Exemple #2
0
 /**
  * Ajoute un nouveau theme
  * @param string $themeName
  *
  * @return bool
  */
 public function add($themeName = null)
 {
     if ($themeName === null) {
         echo helper::theme(false, 'add');
         return false;
     }
     $themeDir = $this->themesDir . $themeName . DIRECTORY_SEPARATOR;
     // On vérifie que le thème n'existe pas déjà
     if (!file_exists($themeDir)) {
         // On crée le dossier du thème
         if (mkdir($themeDir, 0755, true)) {
             // On crée le fichier js par défaut
             if (file_put_contents($themeDir . 'default.js', $this->getDefaultJS($themeName))) {
                 // On crée le fichier css par défaut
                 if (file_put_contents($themeDir . 'default.css', $this->getDefaultCSS($themeName))) {
                     // On crée le répertoire des images
                     if (mkdir($themeDir . 'imgs', 0755, true)) {
                         echo helper::success("Le thème {$themeName} a été initialisé !\r\n");
                         echo helper::success("L'arborescence suivante a été créée :\r\n");
                         echo helper::info("-- public\n    -- assets/\n        -- {$themeName}/\n            -- imgs/\n            default.css\n            default.js\n");
                         return true;
                     }
                     echo helper::warning("Impossible de créer le répertoire {$themeDir}imgs !\r\n");
                     return false;
                 }
                 echo helper::warning("Impossible de créer le fichier default.css !\r\n");
                 return false;
             }
             echo helper::warning("Impossible de créer le fichier default.js !\r\n");
             return false;
         }
         echo helper::warning("Impossible de créer le répertoire {$themeDir} !\r\n");
         return false;
     }
     echo helper::warning("Un thème du nom {$themeName} existe déjà !\r\n");
     return false;
 }
Exemple #3
0
 /**
  * Aide du theme
  * @param bool $full
  * @param string|null $section
  * @return string
  */
 public static function theme($full = true, $section = null)
 {
     if ($full) {
         $msg = helper::info("[theme]\r\n");
     } else {
         $msg = helper::success("Usage : ");
     }
     if ($section === null) {
         $msg .= helper::success("xengine theme ") . helper::warning("[add] (themeName)") . "\r\n";
     }
     if ($section === null || $section === 'add') {
         $msg .= helper::warning("[add]") . helper::success("  xengine theme add\r\n") . helper::standard("  Crée le dossier pour le thème 'themeName'") . "\r\n";
     }
     return $msg;
 }
Exemple #4
0
 /**
  * Supprime un controller du module
  * @param string $moduleName
  * @param string $controllerName
  *
  * @return bool
  */
 public function remove($moduleName = null, $controllerName = null)
 {
     // On vérifie les paramètres
     if ($moduleName == null || $controllerName == null) {
         echo helper::module(false, 'remove');
         return false;
     }
     // Répertoires des controllers et des vues
     $controllersDir = $this->modulesDir . $moduleName . DIRECTORY_SEPARATOR . 'controllers' . DIRECTORY_SEPARATOR;
     $viewsDir = $this->modulesDir . $moduleName . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR;
     // On vérifie que le controller existe
     if (file_exists($controllersDir . "{$controllerName}.controller.php") !== false) {
         // On demande confirmation à l'utilisateur
         echo helper::warning("ATTENTION - Vous êtes sur le point de supprimer le controller {$controllersDir}{$controllerName}.controller.php.\r\n") . helper::warning("Entrez 'oui' pour confirmer.\r\n") . helper::info(">> ");
         $input = trim(fgets(STDIN));
         // On vérifie l'input fourni par l'utilisateur
         if ($input === 'oui') {
             // Supprime le fichier *.controller.php
             if (unlink($controllersDir . "{$controllerName}.controller.php")) {
                 // On supprime la vue associée si elle existe
                 if (file_exists($viewsDir . "{$controllerName}.view.php") !== false) {
                     if (!unlink($viewsDir . "{$controllerName}.view.php")) {
                         echo helper::warning("Impossible de supprimer le fichier {$viewsDir}{$controllerName}.view.php !\r\n");
                         return false;
                     }
                 }
                 // On met à jour le fichier route.xml
                 if ($this->updateRouteFile($this->modulesDir . $moduleName . DIRECTORY_SEPARATOR . 'route.php', $controllerName, false)) {
                     echo helper::success("Le controller a bien été supprimé.\r\n");
                     return true;
                 }
                 echo helper::warning("Impossible de mettre à jour le fichier {$this->modulesDir}{$moduleName}/route.php !\r\n");
                 return false;
             }
             echo helper::warning("Impossible de supprimer le fichier {$controllersDir}{$controllerName}.controller.php !\r\n");
             return false;
         }
         echo helper::info("Suppression annulée.\r\n");
         return false;
     }
     echo helper::warning("Le controller {$controllersDir}{$controllerName}.controller.php n'existe pas !\r\n");
     return false;
 }