De vuelta

  • Jun
  • 12

escribe tu comentario! 325 palabras - 1 hits

Mi primera extension para CodeIgniter

Como habréis notado, estas ultimas semanas la actividad del weblog ha sido nula, el motivo, una carga de trabajo brutal.

Entre encargos, proyectos personales y experimentos casi no he tenido un minuto libre y cuando lo he tenido no habían ganas de escribir.

El caso es que una de las actividades que me ha tenido ocupado es que he comenzado a trabajar con CodeIgniter un fantástico framework para PHP que implementa el modelo MVC (Model-Viewer-Controller).

Lo cierto es que resulta realmente fácil construir aplicaciones basándose en este framework, la curva de aprendizaje es casi nula, ofrece la posibilidad de extender las librerías base casi al 100% y la carga que añade al servidor es casi nula.

Poco a poco intentare ir adentrándome mas en este framework y prometo compartir lo que vaya aprendiendo.

Para empezar a abrir boca, os dejo una clase que extiende la clase nativa “CI_Output”, el objetivo de esta personalización es el añadir métodos para enviar datos en formato “Ajax” desde los controladores.

Ademas auto detecte el soporte “mime” del cliente para poder añadir/enviar las cabeceras correctamente dependiendo del soporte “xhtml” del navegador.

Como podréis observar, la clase tiene cuatro funciones publicas, “IsAjax”, “addJson”, “sendJson” y “sendAjax”.

El uso de la clase es muy sencillo, tan solo tenemos que utilizar el método correspondiente para detectar si la consulta es “Ajax” y en el caso de serlo enviaremos los datos precedidos del “Content-Type” correpondiente.

Un detalle a tener en cuenta es que si necesitamos enviar contenido en formato Json la clase se encarga de codificarlos, es por ello que la librería es para uso exclusivo bajo PHP5+.

En el siguiente ejemplo lo veréis mas claro:

  1.  
  2.     <?php
  3.     if($this->output->isAjax()) {                                                                                                                                    
  4.         $data = $this->load->view('viewer/template', '', true);                                                                                                            
  5.         $this->output->sendAjax($data);                                                                                                                                                                                                                                                
  6.     }
  7.     ?>
  8.  

Por otra parte, la detección del tipo “mime” es totalmente automática, cuando se carga la clase se seleccionan las cabeceras pertinentes y se configura la variable “xhtml” con true o false.

Yo lo utilizo de la siguiente manera,

  1.  
  2.     <?php if($this->output->xhtml) echo '<?xml version="1.0" encoding="UTF-8"?>'."\n";?>

ningún comentario por el momento

Escribe tu comentario

Puedes utilizar este formulario para escribir tu opinion sobre esta entrada, no existe ningun tipo de limitacion a la hora de enviar opiniones, tan solo sigue unas reglas basicas de cortesia y todos estaremos mas contentos.

Puedes identificarte utilizando OpenID, solo tienes que introducir tu URL OpenID en el siguiente campo y pulsar el boton de validar.





Instrucciones para los comentarios

El simbolo * indica que se trata de un campo obligatorio.

Este sitio usa Markdown junto con Smartypants para educar los textos, tambien esta disponible para los comentarios.

A continuación os muestro algunas de las equivalencias:

  • [enlace de ejemplo](http://example.com/) resulta enlace de ejemplo.
  • **Texto en Negrita**
  • _Italica_
  • > blockquote
  • > > nested blockquote
  • * Esto es un elemento de una lista desordenada (ul)
  • 1. Esto es un elemento de una lista ordenada (ol)

MC Puedes seguir las respuestas a tus comentarios con MyComments.