/**
  * Loads the validation file
  * 
  * All the validation types in the file,
  * will be available in $this->validationTypes
  * 
  * @since 1.0
  * @access private
  * @return void
  */
 private function loadValidationTypes()
 {
     if (!empty($this->validationTypes)) {
         return;
     }
     if (!file_exists(VALIDATION_PATH . DS . 'ValidationTypes.php')) {
         ConsoleIgniter::write('ERROR');
         ConsoleIgniter::write('The validation file was not found!');
         ConsoleIgniter::bye();
     }
     require VALIDATION_PATH . DS . 'ValidationTypes.php';
     $this->validationTypes = $ValidationTypes;
 }
 /**
  * Verify if the controller's fields has validations
  * 
  * @since 1.0
  * @access private
  * @return void
  */
 private function hasValidation()
 {
     $this->readFields($this->choosedLayer);
     // Read the controller to get the validate rules if it exists
     $controller = ProjectIgniter::getName() . DS . 'application' . DS . 'controllers' . DS . strtolower($this->tables[$this->choosedLayer]['Name']) . '.php';
     if (!file_exists(PROJECTS_PATH . DS . $controller)) {
         ConsoleIgniter::write('Controller ' . $controller . ' not found.');
         ConsoleIgniter::bye();
     }
     $controller = file_get_contents(PROJECTS_PATH . DS . $controller);
     // Has rules to validate?
     if (preg_match_all('/\\$this->form_validation->set_rules\\(.+\\)/', $controller, $rules)) {
         $this->tables[$this->choosedLayer]['Validate'] = true;
         foreach ($rules[0] as $rule) {
             if (preg_match_all('/(?:\'|"){1}.+(?:\'|"){1}/i', $rule, $parameters)) {
                 $parameters = eval("return ViewGenerator::getParameters({$parameters[0][0]});");
                 $fieldName = $parameters[0];
                 $fieldHumanName = $parameters[1];
                 foreach ($this->tables[$this->choosedLayer]['Fields'] as $key => $field) {
                     if ($field['Field'] == $fieldName) {
                         $this->tables[$this->choosedLayer]['Fields'][$key]['Name'] = $fieldHumanName;
                         if (isset($parameters[2])) {
                             $this->tables[$this->choosedLayer]['Fields'][$key]['Validate'] = true;
                         }
                         break;
                     }
                 }
             }
         }
     }
     // To add the humanName even if the field doesn't has validation rules
     $this->getHumanNames();
 }
 /**
  * Create the project's database configurations file
  * 
  * @since 1.0
  * @access private
  * @return void
  */
 private function createDbConfig()
 {
     //--------------------------------------------------------------------
     // DEFINE THE DATABASE CONFIGURATION
     //--------------------------------------------------------------------
     $db = array();
     $driverTypes = array('mysql');
     $db['dbdriver'] = $driverTypes[ConsoleIgniter::writeQuestion('What is the database driver?', $driverTypes, 0)];
     $db['hostname'] = ConsoleIgniter::writeQuestion('What is the host of the database server?', null, 'localhost');
     $db['username'] = ConsoleIgniter::writeQuestion('What is the database username?', null, 'root');
     $db['password'] = ConsoleIgniter::writeQuestion('What is the database password?', null, null, true);
     $db['database'] = ConsoleIgniter::writeQuestion('What is the name of the database?', null, 'code_igniter');
     //--------------------------------------------------------------------
     // SHOW THE DATABASE CONFIGURATION
     //--------------------------------------------------------------------
     ConsoleIgniter::write('');
     ConsoleIgniter::line();
     ConsoleIgniter::write('The following database configuration will be created.');
     ConsoleIgniter::line();
     ConsoleIgniter::write('Driver		: ' . $db['dbdriver']);
     ConsoleIgniter::write('Host			: ' . $db['hostname']);
     ConsoleIgniter::write('Username		: '******'username']);
     ConsoleIgniter::write('Password		: '******'password']);
     ConsoleIgniter::write('Database		: ' . $db['database']);
     ConsoleIgniter::line();
     $confirm = ConsoleIgniter::writeQuestion('The information above is correct?', array('y', 'n'), 0);
     if ($confirm != 0) {
         ConsoleIgniter::bye();
     }
     //--------------------------------------------------------------------
     // SAVE THE DATABASE CONFIGURATION
     //--------------------------------------------------------------------
     if (!file_exists(TEMPLATES_PATH . DS . 'db.php')) {
         ConsoleIgniter::write('ERROR!');
         ConsoleIgniter::write('Template: "' . TEMPLATES_PATH . DS . 'db.php" not found!');
         ConsoleIgniter::bye();
     }
     ob_start();
     require TEMPLATES_PATH . DS . 'db.php';
     $template = ob_get_clean();
     $template = "<?php\n" . $template;
     file_put_contents(PROJECTS_PATH . DS . self::$name . DS . 'db.php', $template);
     ConsoleIgniter::write('Database configuration was successfully created.');
 }
Beispiel #4
0
 /**
  * List the CrudIgniter options
  * 
  * @since 1.0
  * @access public
  * @return void
  */
 public function listOptions()
 {
     $result = ConsoleIgniter::writeQuestion('What do you want to generate?', array('MODEL', 'VIEW', 'CONTROLLER', 'EXIT'), 0);
     $generator = null;
     $result = strtolower($result);
     switch ($result) {
         case 0:
             if (class_exists('MY_ModelGenerator')) {
                 $generator = new MY_ModelGenerator();
             } else {
                 $generator = new ModelGenerator();
             }
             break;
         case 1:
             if (class_exists('MY_ViewGenerator')) {
                 $generator = new MY_ViewGenerator();
             } else {
                 $generator = new ViewGenerator();
             }
             break;
         case 2:
             if (class_exists('MY_ControllerGenerator')) {
                 $generator = new MY_ControllerGenerator();
             } else {
                 $generator = new ControllerGenerator();
             }
             break;
         default:
             ConsoleIgniter::bye();
     }
     $generator->generate();
     ConsoleIgniter::bye();
 }
Beispiel #5
0
 /**
  * Read the fields of a table
  * 
  * @since 1.0
  * @access protected
  * @final
  * @param int $tableNumber the table's number
  * @return void
  */
 protected final function readFields($tableNumber)
 {
     if (isset($this->tables[$tableNumber]['Primary']) && isset($this->tables[$tableNumber]['Fields'])) {
         return;
     }
     $this->connect();
     try {
         $result = $this->pdo->query('DESC ' . $this->tables[$tableNumber]['Name']);
         while ($row = $result->fetch(PDO::FETCH_ASSOC)) {
             if ($row['Key'] == 'PRI') {
                 $this->tables[$tableNumber]['Primary'] = $row;
             } else {
                 $this->tables[$tableNumber]['Fields'][] = $row;
             }
         }
     } catch (PDOException $e) {
         ConsoleIgniter::write('ERROR: ' . $e->getMessage());
         ConsoleIgniter::bye();
     }
 }