Autor YouCode - http://www.youcode.com.ar/wiki/que-es-codeigniter-181
Por que usar o que es Codeigniter. Codeigniter es simplemente un framework para el desarrollo de aplicaciones escritas en php que utiliza el MVC
Codeigniter es simplemente un framework para el desarrollo de aplicaciones escritas en php que utiliza el MVC, que permite a los desarrolladores Web mejorar la forma de trabajar y también agregar mayor velocidad a la hora de crear una pagina Web. Codeigniter no es el único framework del mercado, también están zend, cakephp, symphony, entre otros.Pero CI (Codeigniter) se diferencia al resto por lo rápido, lo extensible, lo sencillo de aprender y lo poderoso que puede llegar a ser si lo sabemos usar bien. Codeigniter fue desarrollado por EllisLab y hasta la versión 1.7.3 soportaba php 4, ya para la versión 2.0 solo soporta php 5.
Que es el MVC??
El MVC es el acrónimo de Modelo Vista Controlador, que es un patrón para el desarrollo de software que separa la lógica de control, la interfaz del usuario y los datos del sistema. En este tipo de arquitectura del software existe un sistema central o controlador que controla las entradas y salida del sistema, un o unos modelo que se encargan de buscar los datos e información que sea necesaria y unas interfaz grafica que son lo muestran que es lo que al final va a ver un usuario.
El MVC es muy usado en el desarrollo Web porque a diferencia de la creación de programas locales donde se usa por lo general un mismo lenguaje para desarrollar toda un aplicación en el desarrollo Web se requiere por lo menos usar 2 lenguajes(html y php) para crear una pagina simple, y todo esto en una sola pagina aunado a las consultas en la base de datos que son imprescindibles pues crean hasta paginas de 300 líneas que después para depurar, mejorar o saber donde nos estamos equivocando es un poco difícil. A continuación una explicación un poco más detallada del model, vista y controlador:
Modelo: es el que se encarga de la gestión de la base de datos y toda la lógica del negocio, el modelo permite abstraer al resto de la aplicación de como se obtienen o gestionan los datos. Lo cual nos da una ventaja ya que si después se requiere migrar la base de datos o cambiar algo, no va a ser necesario modificar ni la vista ni los controladores, lo cual nos facilita el trabajo. Otra cosa importante de destacar es que el modelo permite la reutilización de código ya que varios controladores pueden usar el mismo modelo sin que eso afecte en nada a los otros controladores y se evita tener que crear un modelo para cada controlador.
Controlador: es el centro de control de nuestra aplicación, se encarga de recibir la información del usuario procesarla, validarla, sacar o introducir la información lo que sea necesario con la ayuda de los modelos y renderizar una nueva vista acorde a las necesidad del usuario.
Vista: como ya dije anteriormente la vista va a ser la interfaz para nuestro usuario, en nuestro sistema siempre vamos a tener diversidad de vistas que deberán ser cargadas por el control de acuerdo a las necesidades, en desarrollo Web para crear una vista se requiere de html y php, sin contar con que se puede agregar css y javascript para darle mas dinámica a nuestro sitio y mejor apariencia. En la vista va a seguir existiendo código php, pero esta ves pequeños códigos solo para hacer repeticiones o mostrar uno que otro dato importante.
Codeigniter usa este patrón y además agrega librerías, ayudantes y drivers para ayudarnos a simplificar las tareas en el desarrollo de nuestro sistema, con funciones ya predefinidas que nos facilitan el trabajo.
http://www.youcode.com.ar/wiki/que-es-codeigniter-181