Elias Badenes

Elias Badenes

La informacion es poder

  1. Zend Framework

    Escrito por
    / / 2 Comentarios

    En los últimos años el desarrollo web esta creciendo muchísimo, por ello ha habido un gran crecimiento de opciones y herramientas para comenzar un nuevo desarrollo. Muchas veces un desarrollador pierde mucho tiempo intentando buscar la herramienta necesaria para hacer cierto tipo de tareas y luego necesita tener que aprender a usar esa herramienta.
    Yo que me incluyo dentro de esa lista de desarrolladores, que llevo muchos años haciendo desarrollos web en PHP, siempre me hacia mis propias utilidades, adaptaba el trabajo de otros, o incluía mini librerías para realizar las tareas mas comunes (acceso a base de datos, envíos de mails, generar pdfs). Hasta que llegado un momento decidí no reinventar mas la rueda y empezar a usar algo, una base que se encargasen otros de actualizar y ampliar. Probé varios frameworks, bastante buenos todos ellos, pero al final me decante por el nuevo Zend Framework ya que era el que cuadra con las exigencias que tengo en mi día a día con la programación.

    El Zend Framework es muy parecido al Framework PEAR (que también use durante mucho tiempo) pero mas orientado a “Web 2.0″. Apoya la estructura Modelo-Vista-Controlador (MVC), lleva gerador de formularios, gestión de archivos de configuración, acceso a base de datos, correo, archivos, fechas, y un largo etcétera.
    Aparte de eso es muy versátil ya que sus componentes también funcionan ‘solos’ y son fáciles de integrar en otros frameworks.

    Después de mas de dos años usándolo, voy a empezar a escribir como utilizar algunas cosas para hacernos la vida mas simple a los que usamos este Framework.

  2. Alarmas Sms (gracias a google)

    Escrito por
    / / 16 Comentarios

    Hola el otro día vi en el blog de Ivan López como usaba las alarmas del google calendar, para enviarse SMS al móvil con ‘alertas’, y así poder tener controlado sus servidores.
    El ‘problema’, es que esta en java, así que decidí hacer lo mismo pero en php, para que mas gente pudiese usarlo.

    El modo de empleo es el mismo, necesitas PHP 5.1.4 o superior (son las necesarias para usar la API) y las librerías ZEND de Gdata.

    Para mas información del uso de la API se puede mirar directamente a la web de google code.

    /*
    ** Generador de alertas sms a traves de google
    ** Basado en el de Ivan Lopez (lopezivan.blogspot.com)
    ** Elias Badenes, 2007
    ** elias (at) badenes (dot) es
    */
    require_once 'Zend/Loader.php';
    Zend_Loader::loadClass('Zend_Gdata');
    Zend_Loader::loadClass('Zend_Gdata_AuthSub');
    Zend_Loader::loadClass('Zend_Gdata_ClientLogin');
    Zend_Loader::loadClass('Zend_Gdata_Calendar');
    
    function crearAlerta($cliente, $texto) {
    $dia  = date('Y-m-d');
    $hIni = date('H:i', strtotime('now +6 minutes'));
    $hFin = date('H:i', strtotime('now +7 minute'));
    
    $gdataCal = new Zend_Gdata_Calendar($cliente);
    $evento   = $gdataCal->newEventEntry();
    $startDate = $dia;
    $endDate   = $dia;
    $tzOffset  = '+02'; //en verano '+02' en invierno '+01'
    $startTime = $hIni;
    $endTime   = $hFin;
    
    //asigno el texto
    $evento->title = $gdataCal->newTitle($texto);
    
    //Asigno el tiempo
    $cuando = $gdataCal->newWhen();
    $cuando->startTime = "{$startDate}T{$startTime}:00.000{$tzOffset}:00";
    $cuando->endTime = "{$endDate}T{$endTime}:00.000{$tzOffset}:00";
    
    //alerta sms
    $metodo = 'sms'; //alert, email o sms
    $alerta = $gdataCal->newReminder();
    $alerta->setMinutes(5);
    $alerta->setMethod('sms');
    $cuando->setReminders(array($alerta));
    
    $evento->when = array($cuando);
    
    echo 'Insertando Alerta: '.$texto."\n";
    $a = $gdataCal->insertEvent($evento);
    }
    
    if(count($argv) < 4) {
    echo "Uso: $argv[0] <usuario> <password> <texto>\n";
    die();
    }
    
    $usuario  = $argv[1];
    $password = $argv[2];
    $texto    = '';
    $argc     = count($argv);
    
    for( $i=3; $i>$argc; $i++) {
    $texto .= $argv[$i].' ';
    }
    
    $servicio = Zend_Gdata_Calendar::AUTH_SERVICE_NAME;
    $cliente  = Zend_Gdata_ClientLogin::getHttpClient($usuario, $password, $servicio);
    crearAlerta($cliente, trim($texto));
    

    Espero que lo disfruteis.