Inicio | Pedro Santana |  RSS  Mi tumblelog  Mis photos  Mi CV

 

Archivo de la categoría ‘PHP’

FlavorPHP 1.0

Retomando 3, 2, 1… Como varios de ustedes saben, hemos (el equipo de gelato cms) creado un framework PHP basado en el patrón MVC jerárquico para nuestros propios desarrollos, el cual siempre ha sido open source, pero transmitido sólo a los que lo solicitaban.

En estos dias por fin tomamos la inciativa de reactivar su sitio web, subir una versión estable descargable y lo más importante poner en línea el manual para iniciar a usarlo.

De las versiones anteriores a la 1.0, también hay algunos post de blog como: Crear un Buscador con jQuery y FlavorPHP

Por lo que si gustan pasar a probar pueden visitar la web de FlavorPHP y descargarlo.

¿Qué hay de nuevo en PHP 5.3?

Para ir reviviendo este espacio, les recomiendo las siguientes lecturas para ponerse al día con la versión ya no tan nueva de PHP, la 5.3.

Live search con flavorphp y jquery

Víctor de la Rocha ha creado un excelente post donde explica paso a paso como crear un buscador en tiempo real utilizando flavorPHP y jQuery.

Para aquellos que no han escuchado de flavorphp lo puedo resumir en: framework mvc para PHP5 propio del equipo de desarrollo de gelato cms para nuestros proyectos personales, el cual algunos amigos fuera de gelato la han utilizado y les gusta (como el cms del blog de @stanmx) por lo que pusimos su mini-sitio diseñado por los chicos de Oversoftec.

Patrón singleton en PHP4

Después de mucho tiempo, aquí estoy con la siguiente entrega de la serie sobre patrones de diseño con PHP, la siguiente entrega que estaba planeada era sobre el patrón factory (fábrica o factoría), pero en estos días programé un plugin engine para gelato el cual esta versión aún debe contar con soporte para PHP4 y me topé con que una vez terminado y probado no funcionaba correctamente en PHP4, por dos detalles:

1.- PHP4 no soporta propiedades estáticas (soporta métodos estáticos y variables estáticas dentro de estos métodos, pero NO propiedades),la solución a esto vendrá en otro post.
2.- La implementación del patrón singleton más difundida no funciona como debería.

Veamoslo en bits.

  1. class Singleton{
  2.     var $accion;       
  3.        
  4.     function &instancia(){
  5.         static $_instancia;
  6.         if(!isset($_instancia)){
  7.             $_instancia =& new Singleton();
  8.         }
  9.         return $_instancia;
  10.     }   
  11. }

La clase anterior implementa el código de singleton en PHP4 más encontrado en los ejemplos sobre el tema.

Si la probamos creando el objeto obj1:

  1. $obj1 =& Singleton::instancia();
  2. $obj1->accion = "Imprimir";

Si imprimimos su valor:

  1. var_dump($obj1->accion);
  2. // imprime: string(8) "Imprimir"

Creamos el objeto obj2:

  1. $obj2 =& Singleton::instancia();
  2. $obj2->accion = "Borrar";

¿Qué contenido tiene?

  1. var_dump($obj2->accion);
  2. // imprime: string(6) "Borrar"

Entonces ya tenemos dos objetos derivados de la clase Singleton los cuales al implementar dicho patrón deberamos tener UNA sola instancia, ¿pero esto se cumple?

  1. echo $obj1->accion;

¿Qué nos devuelve?

Imprimir

Como vemos nos regresa el valor “Imprimir” cuando estamos esperando que imprima “Borrar”.

Para solucionarlo basta con tocar una sola línea de código de la clase y cambiar la línea 7 por lo siguiente:

  1. $_instancia = new Singleton();

Ahora si, nuestras pruebas saldrán correctas.

Ocio en pecesama.net

Hay ocasiones en las que uno de repente se encuentra que esta bloqueado de trabajar, estudiar… ponga aquí de lo que este bloqueado … que se le viene a la mente “quiero distraerme un rato“, así que a procrastinar se ha dicho, pero suele ser complicado seleccionar entre tantas opciones posibles con que comenzar, así que durante momentos en los que “queria distraerme un rato” me puse a crear un pequeño script PHP, que obtiene desde diferentes fuentes de feeds (que considero adecuadas para esa tarea) sus elementos y de forma completamente aleatoria me regresa un solo elemento cada que lo ejecuto, ahorrandome la tarea de tomar la decisión de por donde comenzar.

Por lo que nace Ocio en Pecesama.Net el cual te redireccionará al elemento seleccionado.

Pensando que teclear la dirección puede ser tedioso he creado un bookmarklet para que sólo lo arrastres a tu barra del navegador.

Hora del ocio!! == arrastralo al navegador.

Pero como se de antemano que mis lectores son más geeks que un simple bookmarklet he creado un comando para ubiquity (gracias a Jorge Condomí por la ayuda), así que si lo tienes instalado en tu firefox, solo pasa por mi home y registralo. No olvides indicarle que se actualice automáticamente para que siempre tengas el comando actualizado.

La forma de uso es: ocio [enter] o bien: ocio html [enter] esta última opción te dará un enlace HTML

Recuerda que si tienes seleccionada la barra de direcciones del navegador automáticamente te la cambiará por la dirección obtenida.

Para tener las cosas mas sencillas con ubiquity cree una API simple, la cual si te interesa usarla desde cualquier otro lugar la encuentras en:

http://ocio.pecesama.net/api.php

Para que te regrese el enlace con formato HTML usa:

http://ocio.pecesama.net/api.php?type=html

Por último los feeds que esta usando esta sección son (si tienes más fuentes que recomiendes dejalas en los comentarios):

  • digg popular images
  • digg comedy images
  • digg popular videos
  • Meneame ocio
  • Flickr explore
  • Popular PHP on delicious
  • Popular javascript on delicious
  • Popular jquery on delicious
  • Popular humor on delicious
  • Lolcats
  • HumorGeek
  • The fail blog
  • Gardfield
  • Montt
  • Youtube popular
  • Dilbert
  • WTF Microsiervos