martes, 23 de julio de 2013

Postgresql + CodeIgniter

Ya que hemos avanzado un poco en el mundo de las consultas, ya citado en el artículo anterior vamos a introducirnos en la utilización de las mismas pero enfocados a un marco de trabajo llamado codeIgniter, framework que goza de gran prestigio en los desarrolladores y empresas que eligen php como lenguaje de programación para desarrollar sus proyectos.

¿Qué es CodeIgniter?

CodeIgniter es un Entorno de Desarrollo de una Aplicación - una herramienta de sistema - para gente que construye sitios web usando PHP. El objetivo es habilitar el desarrollo de proyectos mucho más rápido de lo que podría si escribiese código desde cero, a través de proveer un rico conjunto de librerías para tareas comúnmente necesarias, tanto como una simple interface y estructura lógica para acceder a estas librerías. CodeIgniter le permite concentrarse creativamente en su proyecto minimizando el volumen de código necesario para una tarea determinada.

¿Para quién es CodeIgniter?

CodeIgniter es correcto para usted si:

  • Quiere un entorno de trabajo con un pequeño punto de apoyo.
  • Necesita un desempeño excepcional.
  • Necesita amplia compatibilidad con cuentas de hosting estándar que corren una variedad de versiones y configuraciones de PHP.
  • Quiere un entorno de trabajo que requiere casi nula configuración.
  • Quiere un entorno de trabajo que no requiera usar línea de comando.
  • Quiere un entorno de trabajo que no requiera adherir a reglas de codificación estrictas.
  • No está interesado en monolíticas librerías de gran escala como PEAR.
  • No quiere ser forzado a aprender un lenguaje de plantillas (aunque una sintaxis de plantillas está opcionalmente disponible si lo desea).
  • Evita complejidad, favoreciendo las soluciones simples.
  • Necesita clara, exhaustiva documentación.

Ya explicado más menos sobre el framework de trabajo que vamos a usar nuestras consultas y sin desviarnos del tema central que son los gestores de base de datos y en nuestro caso particular postgres vamos a pasar a ver algunos aspectos que les resultarán muy interesantes.

CodeIgniter está basado en el patrón de desarrollo Modelo-Vista-Controlador. MVC es una aproximación al software que separa la lógica de la aplicación de la presentación. En la práctica, permite que sus páginas web contengan mínima codificación ya que la presentación es separada del código PHP.

  • El Modelo representa la estructura de datos. Típicamente sus clases de modelo contendrán funciones que lo ayudarán a recuperar, insertar y actualizar información en su base de datos.
  • La Vista es la información que es presentada al usuario. La Vista normalmente será una página web, pero en CodeIgniter, una vista también puede ser un fragmento de una página como un encabezado o un píe de página. También puede ser una página RSS, o cualquier otro tipo de "página".
  • El Controlador sirve como un intermediario entre el Modelo, la Vista y cualquier otro recurso necesario para procesar la petición HTTP y generar una página web.

CodeIgniter tiene un enfoque bastante flexible del MVC, ya que los Modelos no son requeridos. Si no necesita agregar separación, o descubre que mantener los modelos requiera más complejidad que quería, puede ignorarlos y construir su aplicación mínimamente usando Controladores y Vista. CodeIgniter también le permite incorporar sus códigos existentes, o incluso desarrollar librerías de núcleo para el sistema, habilitándolo a trabajar en una forma que hace que tenga más sentido para usted.

Hasta aquí aunque parezca que se sale un poco del tema no lo creas así porque es necesario que entiendas que terrenos pisas para pasar a la parte que nos interesa, en nuestro caso vamos a introducirnos en la capa del Modelo aquí es donde vamos a poner nuestras consultas a las base de datos.

¿Qué es un modelo?

Los modelos son clases PHP que se han diseñado para trabajar con la información en su base de datos. Por ejemplo, digamos que usted usa CodeIgniter para administrar un blog. Puede que tenga una clase de modelo que contiene funciones para insertar, actualizar y recuperar datos de su blog. Aquí está un ejemplo de lo que podría ser la clase del modelo:

Nota: Las funciones en el ejemplo anterior usan funciones de base de datos Active Record.

Y aquí es donde queríamos llegar a Active Record.

CodeIgniter usa una versión modificada del Patrón de Base de Datos Active Record. Este patrón permite obtener, insertar y actualizar información en tu base de datos con mínima codificación. En algunos casos, sólo una o dos líneas de código son necesarias para realizar una acción de base de datos. CodeIgniter no requiere que cada tabla de la base de datos sea un propio archivo de clase. Se permite una interface más simplificada

Más allá de la simplicidad, un beneficio mayor de usar la Active Record es que te permite crear una aplicación independiente de la base de datos que usa, ya que la sintaxis de consulta es generada por cada adaptador de base de datos. También permite consultas más seguras.

A continuación vamos a pasar a ilustrar algunos ejemplos de consultas usando este patrón no hay nada mejor para entender que ejemplos reales. Las siguientes funciones permiten construir una sentencia SELECT SQL.

Ejemplo # 1 Ejecuta la consulta de selección y devuelve el resultado. Puede ser usado solo, para traer todos los registros de una tabla:

$consulta = $this->db->get('mitabla');

Produce: SELECT * FROM mitabla

Ejemplo # 2 Permite escribir la porción de SELECT de tu consulta:

$this->db->select('titulo, contenido, fecha');
$consulta = $this->db->get('mitabla');

Produce: SELECT titulo, contenido, fecha FROM mitabla


Ejemplo # 3 Permite escribir una porción JOIN de la consulta:
$this->db->select('*');
$this->db->from('blogs');
$this->db->join('comentarios', 'comentarios.id = blogs.id');
$query = $this->db->get();
Produce:
SELECT * FROM blogs
JOIN comentarios ON comentarios.id = blogs.id

Con estos 3 ejemplos vamos cerrando por esta artículo esperando que siempre sea de su agrado, y sobre todo que le pueda servir a solucionar problemas, si quiere seguir abordando sobre el tema puede visitar la ayuda de CodeIgniter y recuerde seguirnos en próximos artículos no olvide visitar nuestro blog.


¿Te ha gustado este Post? Compártelo con tus amigos.

1 comentario:

  1. muchas gracias, muy bien explicado :)
    solo tengo una duda el código que colocaste de muestra
    para consultar si funciona con postgresql??

    ResponderEliminar

IconIconIcon