/** * 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.'); }
/** * 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(); }
/** * 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(); } }