Archivo de la categoría ‘PHP’

Videotutorial – Patrones de diseño en PHP – Chain-of-command

viernes, 23 de julio, 2010

Para terminar la serie de screencasts sobre patrones de diseño en PHP, os enseñaré en qué consiste el chain-of-command pattern (cadena de mando), también llamado patrón cadena de responsabilidad. En él creamos una serie de objetos receptores y un objeto emisor que les envía una petición, estableciendo una cadena en la que el comando de petición recorre todos los posibles objetos receptores hasta que uno de ellos responde ejecutando el comando.

De esta manera el emisor no tiene conocimiento de qué receptor va a ejecutar el comando, favoreciendo el acoplamiento débil.
Leer el resto de la entrada »

Videotutorial: Patrones de diseño en PHP – Observer Pattern

lunes, 3 de mayo, 2010

En este screencast voy a explicaros el patrón de diseño Observer (observador) en PHP, que consiste en crear objetos observables que mantienen una lista de observadores y les notifica a éstos de cualquier cambio en su estado, normalmente llamando a uno de sus métodos. Este patrón suele utilizarse para implementar un sistema de manejo de eventos distribuido, por ejemplo construir un sistema de logging en el que registramos el observador (clase que se ocupa de escribir el log) en cada objeto que queramos que envíe mensajes al log.
Leer el resto de la entrada »

Videotutorial: Patrones de diseño en PHP – Factory Pattern

viernes, 9 de abril, 2010

Continuamos la serie de videos sobre patrones de diseño en PHP con el patrón creacional Factory, que consiste en un método para crear objetos cuando no sabemos la clase exacta del objeto que va a ser creado. De esta manera encapsulamos clases en una clase general de la que heredarán distintas subclases. Aunque el ejemplo utilizado es muy sencillo, este patrón es bastante interesante si tenemos en cuenta que podemos redefinir métodos en cada subclase, así como automatizar la creación de objetos utilizando variables (que podemos obtener de un fichero de settings).
Leer el resto de la entrada »

Videotutorial: Patrones de diseño en PHP – Singleton Pattern

martes, 30 de marzo, 2010

Hoy os traigo el primero de una serie de videos cortos en los que voy a explicar algunos de los patrones diseño OOP más comunes en PHP. Un patrón de diseño consiste en una solución a un problema común en el desarrollo de software. En el caso de PHP, estos patrones son los que nos permiten aprovechar realmente toda la potencia de orientación a objetos de PHP5. Estos videos no pretenden ser tutoriales exhaustivos, sino simplemente una visión general y rápida de en qué consiste cada patrón, para aquellos que no estén familiarizados con esta metodología.

Empezaremos con el patrón Singleton, ya que es el más fácil de entender y utilizar. Hay varias maneras de implementar una clase singleton, pero aquí os voy a mostrar la forma más sencilla.
Leer el resto de la entrada »

URLs amigables en CodeIgniter: Controlador ‘catch-all’

miércoles, 10 de febrero, 2010

Supongamos que estamos programando un CMS en CodeIgniter para integrarlo en nuestros proyectos, y queremos generar urls del estilo www.dominio.com/titulo-de-la-pagina. Una manera de enfocarlo sería por ejemplo crear un controlador Paginas con un método cargar, al que se le pasará como parámetro el título de la página en cuestión. De esta manera se llamaría a la url www.dominio.com/paginas/cargar/titulo-de-la-pagina. Para eliminar /paginas/cargar/ de la url editaríamos el fichero routing.php.

Esto supone un problema: si añadimos una regla genérica a las rutas para redirigir cualquier url al controlador paginas/cargar, no funcionaría el resto de controladores de nuestra aplicación. Deberíamos añadir una regla para cada página o bien para cada controlador que tengamos, con lo cual perdemos dinamismo y nos obliga a editar el fichero de rutas con cada cambio.
Leer el resto de la entrada »

Videotutorial: Hooks y creación de librerías con Codeigniter

sábado, 2 de enero, 2010

codeigniter_screencast_hookA petición popular he creado un último screencast sobre CodeIgniter. En él os voy a enseñar un par de conceptos importantes para extender la funcionalidad del framework: los hooks y la creación de librerias. Como ejemplo crearé un sistema muy simple de autenticación, con una librería que contendrá una función para hacer login y otra para logout, y un hook que se disparará cada vez que se ejecute cualquier controlador. Los hooks son una utilidad que nos permite llamar a una función en determinadas fases de la ejecución del framework, por ejemplo antes o después de ejecutar cualquier controlador, el constructor de éste, etc.

Podéis encontrar el resto de screencasts en la página de videotutoriales, o suscribiros al podcast de iTunes.
Leer el resto de la entrada »

Manejo de errores en MySQL con CodeIgniter

jueves, 10 de diciembre, 2009

codeigniter_mysql_errorsCuando tenemos un error conectando o realizando operaciones con la base de datos (MySQL) usando CodeIgniter, lo normal es que el sistema nos muestre un mensaje por defecto con el código, descripción y query ejecutado, tal que así:

error_db_ci

Esta página de error se puede personalizar editando la plantilla /errors/error_db.php en nuestra carpeta de la aplicación. El problema es que este mensaje se mostrará en lugar de nuestra vista o en medio de ella, y además se mostrará siempre a menos que desactivemos la opción de debug de la base de datos, y si lo hacemos nuestra aplicación fallará silenciosamente, no tenemos forma de capturar este error y realizar las operaciones que nos convengan, lo cual sería especialmente útil cuando hacemos peticiones ajax.

Para solucionar esto existen dos métodos no documentados en la clase DB que nos permite capturar el mensaje de error y el número:
$this->db->_error_message() y $this->db->_error_number().
Leer el resto de la entrada »

Videotutorial: CRUD con scaffolding, rendimiento y unit testing en Codeigniter

martes, 24 de noviembre, 2009

codeigniter_screencastPara terminar la serie de screencasts sobre CodeIgniter voy a mostraros algunos componentes interesantes que tiene el framework, como el scaffolding para hacer CRUD y las librerías benchmark y unit testing. Estas librerías son muy útiles cuando desarrollemos aplicaciones complejas en las que necesitemos medir el rendimiento y hacer pruebas unitarias, y nos pueden ayudar a depurar errores y encontrar bloques que necesitemos optimizar. Sobre el scaffolding, es conveniente utilizarlo sólo en la fase de desarrollo, ya que el uso de la palabra secreta no proporciona la seguridad suficiente para poder usarlo en producción.

Podéis encontrar el resto de screencasts en la página de videotutoriales, o suscribiros al podcast de iTunes.
Leer el resto de la entrada »

Videotutorial: Ajax con Jquery en Codeigniter

viernes, 25 de septiembre, 2009

codeigniter_screencast_jqueEn este screencast voy a mostraros un sencillo ejemplo de cómo utilizar jQuery para cargar contenido mediante ajax en CodeIgniter. El código está basado en el ejemplo del primer video «Introducción a CodeIgniter», así que os recomiendo que le echéis un vistazo primero si no lo habéis hecho ya. Vamos a modificar ese código para que liste sólo los títulos de las entradas, y al hacer click en un título se cargue debajo el contenido de la entrada.

Este es el tercer videotutorial de la serie CodeIgniter, podéis encontrarlos todos en la página de screencasts, o suscribiros al podcast de iTunes.
Leer el resto de la entrada »

Videotutorial: Creación y validación de formularios con Codeigniter

jueves, 20 de agosto, 2009

codeigniter_screencast_formEn este video tutorial voy a enseñaros cómo crear formularios en CodeIgniter con ayuda del helper form y validarlos de manera sencilla mediante la librería form_validation.

Este es el segundo videotutorial de la serie CodeIgnitor, podéis encontrarlos todos en la página de screencasts, o suscribiros al podcast de iTunes.
Leer el resto de la entrada »

RSS iTunes podcast Twitter

Categorías

Enlaces

Archivos