+54 11 5258-8400
Login

Archivo de la etiqueta: php

Conociendo Laravel: el framework que revolucionó PHP

Laravel

Si siguen ahí después de leer el título quiere decir que todavía no perdieron las esperanzas de encontrar un buen Framework en PHP.

La discusión entre “framework si” o “framework no” es larga y creo que los fundamentos más fuertes de los detractores se basan en las opciones disponibles de hoy en día. Pero en algún momento nos vemos en la necesidad de no reinventar la rueda, sobretodo cuando tenemos que implementar acciones comunes (friendly URLs, manejo de sesiones, manejo de base de datos, etc).

Es por eso que quería hablar de Laravel, un framework que viene tomando mucha fuerza en los últimos meses largos y con el lanzamiento de su version número 4 se posiciona como una opción más que interesante para explorar.

En esta nota vamos a repasar sus puntos fuertes y en notas posteriores ver algunos ejemplos prácticos de como usarlo y los beneficios que tiene.

Leer más

Cómo utilizar el API de ELSERVER.COM: PHP en acción

En un post anterior vimos los conceptos básicos sobre el API de ELSERVER.COM: como listar, crear, modificar y eliminar elementos a través de llamadas HTTP. Sin embargo, no lo aplicamos a ningún lenguaje de programación en particular.

Hoy vamos a avanzar en ese sentido: vamos a ver cómo integrar llamadas al API en nuestras aplicaciones PHP.

Utilizando cURL

Para hacer llamadas HTTP vamos a utilizar la librería cURL, disponible por defecto en toda nuestra plataforma. Si nunca lo utilizaron, pueden investigar más en la documentación oficial.

Como vamos a utilizar cURL muchas veces, nos conviene armar una función que podamos usar de esta forma:

curl($method, $url, $data);

Es bastante intuitivo para qué nos servirá cada argumento:

  • method indicará el método HTTP a utilizar: GET, POST, PUT o DELETE,
  • url será la URL del API con la que queremos contactar,
  • data será un array con los parámetros a enviar en la llamada.

Internamente, esta función se encargará de setear todas las opciones necesarias del objeto cURL, hacer la llamada y retornar el resultado convirtiendo en un array asociativo el JSON que devuelve el API.

El código de esta función podría ser así:

function curl ($method, $url, $data) {

    // Convertimos el array de parametros en un query string
    $data = http_build_query($data);

    // y lo agregamos a la URL en caso de un GET o DELETE
    if (($method === "GET") || ($method === "DELETE")) {
        $url .= '?' . $data;
    }

    // Definimos opciones comunes a todas las llamadas
    $options = array(
        CURLOPT_URL => $url,
        CURLOPT_CUSTOMREQUEST => $method,
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_HEADER => false
    );

    // Si es necesario, agregamos los parametros al body de la llamada
    if ($data) {
        $options[CURLOPT_POSTFIELDS] = $data;
    }

    // Ejecutamos la llamada
    $call = curl_init();
    curl_setopt_array($call, $options);
    $response = curl_exec($call);
    curl_close($call);

    // Retornamos el resultado como array
    return json_decode($response, true);

}

Perfecto, ya tenemos nuestra función lista. Pueden incluirla en un archivo de helpers o en alguna clase de utilidades comunes, cambiarle el nombre o modificarla como gusten, siempre y cuando tengan acceso simple a ella.

Ahora si, vamos a utilizarla para conectarnos con el API de ELSERVER.

Validando nuestro usuario

Si leyeron el post anterior, deben recordar que para toda acción del API necesitamos un permiso, una llave única que identifique a nuestro usuario: el access_token.

Vamos a obtenerlo:

$login = curl(
    'GET',
    'http://cloudapi.elserver.com/sso/login/',
    array(
        'sso' => 'miusuario@ejemplo.com',
        'password' => 'miclave'
    )
);

Si ejecutamos ese script y hacemos un print_r de $login, podrán ver un resultado como el siguiente:

Array
(
    [access_token] => f049ef54faf3r8245de4469ebd55eb47
    [sso] => miusuario@ejemplo.com
)

¡Vamos bien! Ahora sólo debemos enviar el contenido de $login['access_token'] en todas las llamadas sucesivas.

Pedidos REST

Para seguir con nuestro ejemplo clásico, empecemos por listar las casillas de correo de nuestra cuenta. Pueden hacer la siguiente prueba:

$list = curl(
    'GET',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar'
    )
);

Cambiando el valor de account por la cuenta deseada, por supuesto.

Si todo salió bien, $list ahora contiene la respuesta que entregó el API, es decir, un array con el listado de cuentas de correo.

Ya se deben imaginar cómo funcionan los llamados de escritura:

Para agregar una casilla de correo:

$create = curl(
    'POST',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail',
        'password' => 'somepassword'
    )
);

… modificarla:

$update = curl(
    'PUT',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail',
        'info' => 'Betatester',
        'mailing' => 1
    )
);

… o eliminarla:

$delete = curl(
    'DELETE',
    'http://cloudapi.elserver.com/email/',
    array(
        'access_token' => $login['access_token'],
        'account' => 'micuenta.com.ar',
        'user' => 'testermail'
    )
);

Recuerden que las funciones de escritura devuelven data: 1 en caso de ser exitosas. Por lo que si en el último ejemplo el usuario pudo ser borrado, al hacer un print_r de $delete veremos:

Array
(
    [data] => 1
)

Tareas avanzadas

Con esto resulta muy fácil automatizar tareas frecuentes de nuestra cuenta de hosting. Por ejemplo, podemos programar un script que active la opción de mailing para todos nuestros usuarios de correo:

// Obtenemos nuestro access token
$login = curl(
    'GET',
    'http://cloudapi.elserver.com/sso/login/',
    array(
        'sso' => 'miusuario@ejemplo.com',
        'password' => 'miclave'
    )
);

// Definimos nuestra cuenta y la URL del API
$account = 'micuenta.com.ar';
$url = 'http://cloudapi.elserver.com/email/';

// Obtenemos el listado de casillas de correo
$emails = curl(
    'GET',
    $url,
    array(
        'access_token' => $login['access_token'],
        'account' => $account
    )
);

// Recorremos el listado activando el mailing
foreach ($emails['data'] as $email) {
    $result = curl(
        'PUT',
        $url,
        array(
            'access_token' => $login['access_token'],
            'account' => $account,
            'user' => $email['user'],
            'mailing' => 1
        )
    );

    // Si hubo un error, lo logueamos
    if ($result['error']) {
        $errors[] = $email['user'];
    }
}

// Reportamos si hubo errores
if (!empty($errors)) {
    echo 'Errores al modificar los siguientes usuarios:';
    echo implode($errors);
}

// Si no, retornamos un mensaje feliz
echo 'Finalizado!';

Tengan en cuenta que, si bien nuestro API es muy rápido, cada llamada HTTP toma su tiempo: la ejecución de PHP puede cortarse si superamos el tiempo máximo para un proceso (60 segundos).

Este ejemplo es ilustrativo, si tienen decenas y decenas de casillas de correo conviene hacer el proceso por partes. Para eso en todos los listados pueden utilizar paginado, definiendo:

  • offset, la posición en la que queremos que comience nuestro listado
  • limit, la cantidad de registros a obtener

Por ejemplo, para obtener la primer página de un listado largo podemos definir offset en 0 y limit en 20. Para obtener la segunda definimos offset en 20, para la tercera en 40 y así sucesivamente.

En resumen

Nuestro nuevo API REST maneja todas sus funciones de una forma similar, por lo que pueden consultar en nuestra documentación el resto de los módulos y ponerlos en práctica.

Por ejemplo, pueden agregar autorespuestas para un listado de usuarios de email, crear usuarios FTP temporales, cambiar el horario de ejecución de un cron, descargar backups… todo desde sus propias aplicaciones, utilizando nuestro API.

Si tienen alguna consulta, no duden en escribirnos a desarrollo@elserver.com para que podamos brindarle toda la ayuda que necesiten.

[Mejoras_Programadas] Cambio de versiones PHP :: 01/03/2013 ::

Te informamos que a partir del  1 de Marzo de 2013 estaremos actualizando a todos los sitios de la plataforma a la versión 5.4 de PHP.

Esto significa que:

  • Todos los clientes pasarán a tener la versión PHP 5.4. La misma ya está incorporada como opción en el Panel de Control.
  • Mantendremos sólo las versiones PHP 4.4.9 (la última versión estable de la rama 4) y la PHP 5.3
  • Dejaremos de dar soporte a la versión PHP 5.2

La versión PHP 5.4 corrije más de 100 errores volviéndose una versión más estable y segura (ver CHANGELOG y News).
Algunas de las mejoras más importantes que incorpora son la sintaxis corta para los arreglos, se agrega el formato de número binario, posibilidad de dar seguimiento a la carga de archivos, código base más limpio, soporte para FPM y un incremento en la velocidad y menor consumo de memoria. Los sitios desarrollados con PHP 5.4 cargan mucho más rápido.

Tené presente que la opción Register_Globals se encuentra deprecada de PHP 5.4 y no está más disponible. Si aún utilizás dicho modo de acceso a variables, deberás actualizar tu aplicación o, provisoriamente, seguir utilizando PHP 5.3.

Para mayor información ingresá aquí.

Desde hoy hasta el 1 de marzo podés hacer la actualización de versión manualmente para todos tus sitios. 
A partir del 1 de marzo y durante todo ese mes, se irán actualizando los sitios con versiones anteriores de toda la plataforma.

Si quisieras mantener tu sitio en una versión de PHP anterior (4.4.9 o 5.3) deberás volver a la misma una vez que veas que tu sitio ya fue actualizado.

Por cualquier inconveniente, contactanos por chat o correo a soporte@elserver.com.

Gracias!

Verano de súper acción en ELSERVER.COM

No paramos, seguimos aún en verano. El calor no nos amedrenta y por eso  a partir de enero estamos lanzando nuestro ciclo de capacitaciones GRATUITAS sobre el mundo web. ¿Gratuitas? Sí, de onda, porque nos gusta y porque queremos que durante el 2011 tengas todas las herramientas para convertirte en un crack – y si ya lo sos, te enseñamos algunos trucos más 😉

¿Querés venir?

  • Jueves 20 de enero: Speed Up
    A cargo de Joe Chornik – CEO ELSERVER
    Aprendé lo último en Performance y Escalabilidad en Internet. Gira en torno a:

    • Infraestructura de Internet
    • Conceptos generales y específicos de escalabilidad
    • Cloud Computing, Cloud Storage, Cloud Cloud Cloud
    • Performance vs Escalabilidad
    • Performance a nivel plataforma (servidores)
    • Performance a nivel usuario (clientes)
    • Temas varios de HTTP, TCP, DNS, y más.

    Vení a aprender con los que más saben: http://eventioz.com/events/speed-up

  • Lunes 31 de enero: Marketing Online
    A cargo de la gente de Trix Soluciones
    Cómo se utilizan las diferentes herramientas para estar en contacto con tus actuales y potenciales clientes.
    Trataremos los siguientes temas:

    • Definir los objetivos que queremos lograr con la campaña.
    • Analizar el target
    • Definir la estrategia que vamos a utilizar para atraer tráfico a nuestro sitio
    • Optimización de nuestro sitio para alcanzar los objetivos
    • Conversión y adquisición de clientes
    • Análisis y medición.

    Si querés ser de la partida, inscribite acá: http://eventioz.com/events/marketing-online-en-elservercom

¡Los esperamos!

Grid Updates: Elegí tu Configuración de PHP (php.ini)

A mediados de Septiembre a través del blog anunciamos la próxima actualización de servicios Web en nuestro Grid.

Nuevas Versiones!

Esta actualización está finalizada, y pueden ver el resultado de todos los nuevos módulos y extensiones disponibles en:
PHP4: http://www.elserver.com/php/phpinfo.php4 (4.4.9)
PHP5: http://www.elserver.com/php/phpinfo.php5 (5.2.6)

Nuevas Extensiones!

Entre otros, ahora contamos con soporte para pdo_mysql, pdo_sqlite, soap, mhash, ldap, imap+ssl, snmp, zip, mcrypt, mssql (freetds), ImageMagick, ming, GeoIP, ffmpeg y varias más. Los límites de RAM por proceso y tamaños máximos de POST y Upload fueron llevados todos a 64MB.

Nuestra idea siempre fue y sigue siendo hacer de esta plataforma un centro de servicios modulares y escalables, donde cada uno pueda seleccionar aquellos servicios que quiere utilizar, adaptado lo mejor posible a su necesidad y al mismo tiempo contar con los beneficios de seguridad, redundancia y escalabilidad del Grid.

En esa línea es que hemos incorporado la posibilidad de elegir la configuración de php.ini que más se adapte a las necesidades de cada uno directamente desde el Panel de Control, para cada dominio puntero que tengamos.

Nuevas Configuraciones!

Actualmente hay 3 opciones disponibles:

Esta opción incluye eAccelerator y Zend Optimizer, y cuenta con las opciones register_globals y allow_url_fopen desactivadas. Es la opción por defecto para todas las altas nuevas.

Esta opción incluye eAccelerator y Zend Optimizer, y cuenta con las opciones register_globals y allow_url_fopen activadas. Es la opción por defecto para todas las altas previas al 01/11/08, pero recomendamos cambiar a la otra.
+Zend

Para aquellos que utilicen software codificado en IonCube, pueden seleccionar opción que incluye Zend Optimizer así como la última versión de IonCube

Atención! Estas ventajas están -solamente- disponibles para PHP 5, si querés poder configurar tu php.ini tenés que elegir PHP 5! Y como siempre, los cambios de configuración del servidor toman hasta 2 horas en impactar.

A futuro, estamos pensando en agregar más opciones e inclusive la posibilidad de que hagas tu propio php.ini a medida y una pequeña sorpresa para desarrolladores que creemos les va a encantar.

Para poder probarlo: En el Panel de Control -> Avanzado -> Configuración del Servidor Web, elegir el dominio y tildar PHP 5, automáticamente debajo se verán las opciones de configuración.

Actualización PHP 4 / PHP 5

Hace 1 mes se lanzó la última versión de la rama 4 de PHP, siendo PHP 4.4.9 la versión más grande que va a haber por este camino.
Todo futuro desarrollo se va a hacer en PHP5.

Los servicios de elserver.com te ofrecen la posibilidad de elegir cuál de las dos versiones querés usar, ambas incluyen una serie importante de módulos adicionales así como Zend Optimizer y eAccelerator.

Si leyeron el post sobre el MySQL Slow Query Log con atención, vieron que anticipamos una actualización general de toda la red de servicios. Vamos a estar llevando todo la plataforma instalada a PHP 4.4.9 y PHP 5.2.6 con todos los módulos actualmente disponibles y varios más.

Asimismo vamos a elevar los límites por defecto en cuestión de tamaño máximo por POST y de RAM por proceso. PHP viene por defecto con 8MB, a partir de esta actualización, vamos a brindar 64MB de RAM por proceso por defecto.

También van a poder elegir entre distintas opciones de php.ini, con/sin register_globals o utilizando eAccelerator, ionCube u otras extensiones.

Aprovechando estas tareas, es momento de solicitar cualquier módulo especial que quieran agregar.

MCrypt? Soporte para IMAP? TLS/SSL?

Es el momento de pedir 🙂

LAYOUT

SAMPLE COLOR

Please read our documentation file to know how to change colors as you want

BACKGROUND COLOR

BACKGROUND TEXTURE