Como calcular cuando cae semana santa en PHP

Hay días de fiesta en el año que no son tan sencillos de calcular como por ejemplo la Semana Santa que se celebra el primer domingo de luna llena después del equinoccio primaveral. (Wikipedia). Esto genera un inconveniente a la hora de tener que marcar en un calendario estas fechas o garantizar que un algoritmo de entregas no devuelva como entrega uno de estos días festivos.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Vale la pena PHP 7?

Ha pasado tiempo desde su aparición, pero merece la pena hacer un análisis rápido de lo nuevo de PHP 7.

Velocidad de PHP 7

La mejor noticia sin lugar a dudas es la velocidad. Según reportan en Zend (http://www.zend.com/en/resources/php7_infographic) una comparativa entre PHP 5.x, HHMV (la maquina virtual para ejecutar PHP de Facebook) y PHP 7. Poder hacer más request por segundo significa gastar menos en memoria en servidores, mejor capacidad de proceso y a la larga ejecutar códigos más pesados en un mismo Request.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Scopes en Laravel

Una de las mejores características del framework Laravel (el cual recomiendo muchísimo) es Eloquent, su ORM. En pocos minutos podemos configurar las relaciones entre diferentes Modelos y rápidamente poder hacer consultas sin siquiera escribir consultas SQL (nos abstrae del motor de base de datos elegido).

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Como descargar correctamente un archivo en PHP

Muchas veces nos encontramos con la necesidad de gestionar la descarga de archivos, por ejemplo para securizar la descarga o para obligar que un archivo no se visualice sino que se descargue. En este tutorial veremos como optimizar las descargas para realizarlas de la forma correcta.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Puesta a punto de PHP y MySQL

En este artículo haremos tuning de MySQL y PHP para mejorar el rendimiento aplicaciones web como puede ser un WordPress. Antes que nada, si tienes un wordpress en un hosting (y no es un VPS o servidor dedicado) no pierdas el tiempo y piensa en gastar un poco más de dinero para poner uno. Google (y los demás buscadores) tienen muy en cuenta la velocidad de un sitio web a la hora de posicionarlo. Si eres bloguero y tienes un poco de idea de configuración de servidores te será de gran ayuda. En principio es un tutorial de dificultad media.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Como hacer un plugin de JQuery

La idea es sencilla, crear un plugin que nos permita jugar un poco con los elementos del DOM de una página. Es importante tener en cuenta el estilo que se debe seguir en Javascript cuando se programa algo en jQuery. Hay muchos tutoriales en internet al respecto, pero intentaré explicar bien cada paso para que sepas que se va haciendo en cada sitio.

Montaré un plugin básico que será una lista seleccionable que actuará sobre un elemento y sus hijos, por ejemplo este HTML:

<ul id="opciones">
  <li>elemento1</li>
  <li class="selected">elemento2</li>
  <li>elemento3</li>
  <li>elemento4</li>
  <li>elemento5</li>
</ul>

Entonces el plugin se ejecutará de esta manera sobre el DOM:

//encontraremos un elemento y haremos que sus elementos sean seleccionables.
$('ul#opciones').listaSeleccionable({ 
    multiple : false,
    onSelect : function(elems){  //en esta funcion se ejecutará código al seleccionar uno o varios elementos "elems"
        //mostrar en la consola los elementos seleccionados.
        console.log(elems);
    }
});

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Guardar sesiones en base de datos

Cuando se desarrolla en PHP un concepto básico es la sesion de usuario. Esto no deja de ser una COOKIE que envía el navegador en cada petición y que esto hace que podamos guardar información temporal del usuario en el mismo servidor que perdure entre Requests.

Dependiendo de la distribución del SO y como esté configurado PHP esto lo hace de formas diferentes, pero básicamente, php guarda un archivo que contiene la información de la sesión y que se lee cada vez que se ejecuta session_start() y que se guarda al finalizar la ejecución de PHP.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Crear virtualhost en debian

Buenas, dejo este tutorial rápido para recordar como agregar un Virtuahost en un server apache2 en debian.

¿Qué es un Virtualhost?

Si tenemos un servidor y necesitamos alojar múltiples dominios allí necesitamos crear varios Virtualhosts para que apache redireccione al dominio correspondiente según el dominio con el que haga la petición el cliente web (navegador).

¿Cómo funcionan los Virtualhosts en Debian?

Lo primero es saber que en una instalación normal de debian (debian 7 o superior) ya viene habilitada la opción de virtualhost y estás están de normal en la ruta /etc/apache2/sites-available. Por defecto existe un virtualhost que es el default, que es el que va de normal al direcotrio /var/www.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Procesos en background en PHP

Una de las clásicas limitaciones de programar en un entorno web es la limitación del tiempo de espera. Muchas veces necesitamos hacer algún proceso largo que no tengamos que espera a que se haga. Un claro ejemplo es hacer una exportación de datos que sabemos que tarda alrededor de 30 minutos.

Lo primero que se nos viene a la cabeza es aumentar el timeout de Apache, pero realmente no es una solución.

Lo segundo que se nos viene a la mente es un cronjob, pero no es realmente controlado sino que depende de un tiempo para ejecutarse y esto podría descontrolarnos.

Lo tercero, ahora nos avanzamos un poco más e intentamos mediante shell_exec ejecutar diferentes scripts php en background, pero shell_exec es el tipico agujero de seguridad que podemos dejar abierto.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon

Como usar webservices (SOAP) de forma correcta.

Durante varios años trabajando con servicios web he visto de todo en cuanto a implantaciones en PHP. Si tienes opción, utiliza REST, ya que es algo más moderno y sencillo de afrontar en PHP.

Antes que nada hay que comprender que SOAP describe como compartir información entre aplicaciones mediante XML. Este intercambio necesita una definición de que es lo que se intercambia en una definición WSDL. Normalmente un desarrollador PHP atacaría a un servidor SOAP, pero tener que hacer un servidor puede ser probable.

Leer más …

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInShare on StumbleUpon