Pautas para la construcción en Codeigniter

LIBP-0109 (Libro de pautas)

Pautas

TítuloCarácter
Mover el directorio de la aplicación fuera del directorio de sistemaRecomendada
Realizar las validaciones de los formularios en una biblioteca independienteRecomendada

Mover el directorio de la aplicación fuera del directorio de sistema

MADEJA recomienda mover el directorio de la aplicación fuera del directorio de sistema

Esta situación es recomendable por las siguientes razones:

  • Las actualizaciones del Core de CodeIgniter no sobrescriben la configuración de la aplicación
  • Es mas fácil , durante el desarrollo, estructurar los ficheros propios e ignorar los ficheros del Core
  • CodeIgniter no necesita modificaciones para funcionar correctamente

Realizar las validaciones de los formularios en una biblioteca independiente

Poner la validación de formularios y otras acciones relacionadas con la forma de una biblioteca independiente. Mantiene limpio su controlador y se pueden aplicar los patrones de forma mas sencillo. Un ejemplo sería le siguiente:

// controller
$this->load->library('formactions');
function index()
{
   if(array_key_exists('addbutton',$_POST))
   {
      list($msg,$redirect) = $this->formactions->add();
   }
   if(array_key_exists('updatebutton',$_POST))
   {
      list($msg,$redirect) = $this->formactions->update();
   }
   if(array_key_exists('deletebutton',$_POST))
   {
      list($msg,$redirect) = $this->formactions->delete();
   }
   if($redirect != '')
   {
       redirect($redirect);
   }
   else
   {
       $data['msg'] = $msg;
   }
   $this->load->view('someview',$data);
}
// library
class Formactions
{
   var $ci;
  
   function Formactions()
   {
      $this->ci =& get_instance();
   }
  
   function add()
   {
      $msg = '';
      $redirect = '';
      // validation
      if(!$this->ci->validation->run())
      {
         $msg = $this->ci->validation->errror_string;
      }
      else
      {
         // do something else (for example database action, manipulate image, write to file, ...)
         // redirect if needed
         $redirect = 'controller/success';
      }
      return array($msg,$redirect);
   }
}