Beispiel #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;
 }
Beispiel #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;
 }
Beispiel #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;
 }
Beispiel #4
0
 /**
  * Définit le module par défaut vers lequel redirige /public/index.php
  * @param string $moduleName
  *
  * @return bool
  */
 public function redirect($moduleName = null)
 {
     // On vérifie qu'un moduleName a été passé
     if ($moduleName === null) {
         echo helper::module(false, 'redirect');
         return false;
     }
     // On vérifie que le module existe
     if (file_exists($this->modulesDir . $moduleName)) {
         if (file_put_contents($this->modulesDir . 'index.php', "<?php\r\n// Redirection sur le module par défaut\r\nheader(\"Location: /{$moduleName}/\");\r\nexit();") !== false) {
             echo helper::success("Le module {$moduleName} a été défini comme module par défaut dans le fichier index.php.\r\n");
             return true;
         }
         echo helper::warning("Impossible d'écrire le fichier index.php !\r\n");
         return false;
     }
     echo helper::warning("Le module {$this->modulesDir}{$moduleName} n'existe pas !");
     return false;
 }