Evitar navegación.
Principal

codeigniter

Optimiza Codeigniter

CodeIgniter es un genial framework, pensado para ofrecer un alto rendimiento, claro está con una óptima configuración.

Como ya hemos comentado en otras ocasiones CodeIgniter cumple perfectamente el fin de cualquier framework, una estructura definida que de soporte a un proyecto web y ayude a que este proyecto sea organizado y desarrollado, veamos los puntos clave a tener en cuenta a la hora de optimizar la configuración de CodeIgniter.

Ver Ejemplo (Benchmark para CodeIgniter)

Modelo Vista Controlador (MVC)

Seguramente hayas oido e incluso utilizado algún MVC (Modelo Vista Controlador), de lo que se trata en este tipo de modelos es de repetirse lo menos posible y hacer una separación entre la lógica de la aplicación y su presentación:

  • El modelo representa la estructura de datos, a menudo con clases que contienen funciones que te ayudan a insertar, eliminar y actualizar la información de la base de datos.
  • La vista es la información que se presenta al usuario, una vista es a menudo una página web en sí misma, pero en CodeIgniter una vista también puede llegar a ser un fragmento de la página web (pie, cabecera, contenido principal, etc...).
  • El controlador sirve de intermediario entre los Modelos y las Vistas, y es el encargado de coordinar la petición y generar la página web.

Teniendo estos tres puntos claros podemos pasar a ver el diagrama de flujo de CodeIgniter.

Diagrama de Flujo de CodeIgniter

Configuración básica de CodeIgniter

Modelo Vista Controlador
  1. El index.php sirve inicializa el nucleo de CodeIgniter.
  2. El enrutador examina la petición HTTP y determina que se debe de hacer.
  3. Si existe la cache devuelve el archivo HTML sin pasar por el sistema , ahorrandos la carga que ello conlleva.
  4. Seguridad, antes de que se cargue el controlador se filtra los datos enviados para que estos sean fiables.
  5. El controlador carga el modelo, librerias, plugins, helpers y todos los recursos necesarios para satisfacer la petición.
  6. Una vez la Vista está renderizada es enviada al navegador si la cache está habilitada se almacena el resultado en cache para la próxima vez que esta URL sea servida.

Configuración avanzada de CodeIgniter con librería Sparks

Sparks es una librería que nos permite solventar dos deficiencias con las que nos podemos encontrar a la hora de afrontar un proyecto basado en CodeIgniter.

1. Mejora la cache que únicamente permite cachear páginas completas.
2. Podremos incluir "vistas" dentro de "vistas".

Para entender este supuesto tenemos que imaginar que necesitamos que la página tenga un módulo de autentificación, al devolver sólo HTMl sería imposible hacer convivir la cache y el módulo de autentificación, con esta librería solucionamos el problema pero el diagrama de flujo cambia un poco.

Modelo Vista Controlador
  1. El index.php sirve inicializa el nucleo de CodeIgniter.
  2. El enrutador examina la petición HTTP y determina que se debe de hacer.
  3. Seguridad, antes de que se cargue el controlador se filtra los datos enviados para que estos sean fiables.
  4. El controlador comprueba si existe cache, en caso afirmativo la devuelve pero al hacer la comprobación en este punto podemos llegar a pasar datos dinámicos a la vista (podríamos conseguir que funcionará un módulo de autentificación aún con la cache habilitada), si no existe cache carga el modelo, librerias, plugins, helpers y todos los recursos necesarios para satisfacer la petición.
  5. Una vez la Vista está renderizada es enviada al navegador si la cache está habilitada se almacena el resultado en cache para la próxima vez que esta URL sea servida.

Creando un feed RSS con Codeigniter

Ya han pasado algunas semanas desde que descubrí este genial framework, pensado para ofrecer un alto rendimiento, además es bastante ligero y fácilmente configurable.

CodeIgniter Framework para PHP

Hay muchos frameworks para PHP y este podría pasar por una alternativa mas, pero si la aplicación que desarrollas requiere de una plataforma que no marque mucho la aplicación y que necesite un alto rendimiento creo que CodeIgniter debería ser tu elección.

Cumple perfectamente el fin de cualquier framework.. una estructura definida que de soporte a un proyecto web y ayude a que este proyecto sea organizado y desarrollado.

Tras esta breve descripción os dejo un ejemplo de como podríamos crear nuestro feed RSS con las herramientas que ofrece CodeIgniter...

Creando el controlador

En primer lugar tenenmos que crear un controlador con el nombre "feed", recuerda que un controlador es simplemente un archivo que es llamado cada vez que la URL a la que va asociado es invocada.

<?php
class Feed extends Controller
{

    function Feed()
    {
        parent::Controller();
        $this->load->model('posts_model', '', TRUE);
        $this->load->helper('xml');
    }
    
    function index()
    {
        $data['encoding'] = 'utf-8';
        $data['feed_name'] = 'TuFuncion.com';
        $data['feed_url'] = 'http://www.tufuncion.com';
        $data['page_description'] = 'Descripción de la página';
        $data['page_language'] = 'es-es';
        $data['creator_email'] = 'Manuel Gutiérrez Heredia';
        $data['posts'] = $this->posts_model->getRecentPosts();    
        header("Content-Type: application/rss+xml");
        $this->load->view('feed/rss', $data);
    }
}
?> 

CodeIgniter, Framework PHP

CodeIgniter es un framework para PHP pensado para ofrecer un alto rendimiento, además es bastante ligero y fácilmente configurable.

Hay muchos frameworks para PHP y este podría pasar por una alternativa mas, pero si la aplicación que desarrollas requiere de una plataforma que no marque mucho la aplicación y que necesite un alto rendimiento creo que CodeIgniter debería ser tu elección.

Cumple perfectamente el fin de cualquier framework.. una estructura definida que de soporte a un proyecto web y ayude a que este proyecto sea organizado y desarrollado.

La documentación de CodeIgniter es excelente y esto facilita en gran medida su aprendizaje, sólo echando un vistazo a los videotutoriales de la página sabríamos como podemos empezar a utilizar CodeIgniter.