Actualización de seguridad Laravel 5.6.30

Ayer se publicó una actualización de seguridad para Laravel. Es una vulnerabilidad relacionada con la APP_KEY. Esta variable es un valor que se usa para encriptar algunos valores como las sesiones de usuarios.

¿Es grave? Sí, pero solo debes preocuparte si alguien se ha hecho con esta APP_KEY. Eso solo puede hacerlo alguien con acceso al servidor (por ejemplo algún antiguo proveedor o un empleado resentido).

Si crees que no es el caso no deberías preocuparte aunque siempre es preferible actualizar.

La APP_KEY se usa para cifrar las sesiones de usuario, no para las contraseñas. Así que si la cambias las contraseñas no se verán afectadas pero sí las sesiones de usuario (cosa que, bueno, no es tan grave).

Laravel - el framework de los artesanos

Laravel – el framework de los artesanos

Mi próximo proyecto en PHP

Tengo idea de preparar un curso sobre PHP, pero estoy dudando en qué tema centrarlo.

Por un lado he pensado escribir un libro sobre buenas prácticas en PHP. Para darle un poco de gracia al asunte se me ha ocurrido ambientarlo en un ataque alienígena a la tierra.

Por otro lado está la opción de escribir uno sobre cómo escribir aplicaciones seguras en PHP. Este otro estaría ambientado en un mundo de piratas.

Aúno no se el formato que darle (libros, vídeos, algo interactivo, etc). Si quieres aportar ideas estaré encantado de oírlas.

Y puedes ayudarme a escoger participando en esta encuesta.

Taller online de refactorización en PHP

En los próximos días voy a organizar talleres online en los que refactorizaremos código PHP. Aprenderemos cómo convertir una chapuza de código espaguetti en código de calidad yendo a través de pequeñas mejoras. En el taller usaremos buenas prácticas, programación orientada a objetos, interfaces, composición, phpunit, git, etc.

Será divertido y podrás aprender un montón. Requisitos imprescindibles: participación activa, conocimientos de PHP y saber algo de programación orientada a objetos.

PHP Sensei - Nueva sección de trucos sobre PHP

Nueva sección de trucos y consejos de PHP

Hace un par de días puse en marcha una nueva sección de trucos y consejos sobre PHP en PHPSensei. La intención es publicar cada día una nueva “perla” de sabiduría. Si quieres aprender un poco cada día no te puedes perder esta nueva sección.

PHP Sensei - Nueva sección de trucos sobre PHP

 

Nuevo capítulo del libro POO en PHP: Traits

El libro de programación orientada a objetos en PHP va creciendo poco a poco. Además de otras mejoras ya está disponible el capítulo sobre los Traits en PHP.

¿Qué son los traits?

En PHP no existe la herencia múltiple (una clase no puede tener más que una clase madre) y esa es una limitación importante. Para solucionar los problemas de esta limitación se introdujeron los traits que son una forma de hacer copia/pega sin hacer copia/pega.

Por supuesto, esto de los traits es bastante más complejo y es más largo de explicar. Si quieres descubrir mucho más acerca de los traits te recomienzo echar un vistazo al libro. En él podrás leer cómo se usan los traits, los peligros que tienen, cuándo usarlos, qué diferencias hay entre un trait y la herencia, etc.

Y recuerda que, hasta el 30 de Septiembre de 2017 está a un precio muy rebajado. Aprovecha para conseguir el libro ahora.

Ya está disponible mi libro de programación orientada a objetos en PHP

Con un pequeño retraso pero ya está disponible mi libro de programación orientada a objetos en PHP.

En mi humilde opinión es un libro que merece la pena. En él comparto muchos años de experiencia desarrollando en PHP. Todo lo que he aprendido, lo que he sufrido y lo que me he divertido programando está reflejado en sus páginas.

Está todavía en fase “Beta” ¿qué quiere decir eso? Que todavía no está terminado y puede haberse colado algún errorcillo. Para compensarlo el precio es mucho más bajo de lo que será el precio definitivo. Pero “sin terminar” no quiere decir que tenga pocas páginas, son ya casi 120 páginas de pura sabiduría :-D.

El fatídico logo

Los capítulos del libro de PHP orientado a objetos

Acabo de publicar el listado provisional de capítulos del libro programación orientada a objetos en php. Más o menos serán éstos:

  1. Herramientas
  2. El estándar PSR
  3. Introducción express a PHP
  4. Programación orientada a objetos
  5. Un ejemplo paso a paso
  6. Encapsulación
  7. Herencia
  8. Introducción al desarrollo guiado por pruebas
  9. Interfaces
  10. Clases abstractas
  11. Introducción a Git
  12. Términos y definiciones

Es posible que los reorganice pero seguramente éste será el orden final. Todavía faltan algunos más para terminar el libro.

Para aprender a programar con objetos en PHP (pero de verdad)

Si llevas años programando en PHP y te asustan los objetos estás de enhorabuena 😀 Estoy preparando un libro para aprender a programar con objetos en PHP (pero para aprender de verdad).

Está ya listo al 80%, el prelanzamiento será en unos pocos días.

Interfaces, Clases Abstractas, Traits, estos conceptos y muchos más se explican en el libro. Y los entenderás de verdad, qué son y para qué se usan. También hablaré de buenas prácticas, principios SOLID, patrones de diseño y herramientas muy útiles como Composer, PHPUnit o Git.

El fatídico logo

Limpiar la caché de SOAP en PHP

Todo el que ha probado a trabajar con SOAP en PHP sabe que no es precisamente una delicia. Cuando te enfrentas con SOAP por primera vez en tu vida te puedes pasar varios días hasta que consigues hacerlo funcionar (y eso que hoy en día es mucho más fácil). Pero esta maravillosa tecnología siempre puede darnos algunos disgustos adicionales.

Por ejemplo, cuando cambias el nombre de uno de los servicios (o webservices) puede que te encuentres con este error:

Server did not recognize the value of HTTP Header SOAPAction

Si compruebas en la llamada que haces a SOAP seguramente el nombre que estás usando sea el correcto. Entonces ¿a qué viene este error? Lo más probable será que la llamada está usando la caché así que tendrás que “limpiarla”.

Tienes dos opciones:

1) Desactivar la caché temporalmente:

$this->nusoapDefault = new SoapClient( $soapUrl, [ 'cache_wsdl' => WSDL_CACHE_NONE ] );

Esto hará que las próximas llamadas no usen la caché. El problema es que tendrás una pequeña pérdida de rendimiento. Puedes mantener esto mientras haces pruebas pero cuando termines será mejor borrar la caché.

2) Borrar la caché de SOAP.

Los ficheros de la caché de SOAP se almacenan en la carpeta /tmp (en un servidor tipo Linux), normalmente dentro de subcarpetas cuyos nombres empienzan por wdsl. Éstas puedes borrarlas tranquilamente (ojo no borres otras cosas de la carpeta /tmp).

Por cierto, estoy escribiendo un nuevo libro de Programación Orientada a Objetos en PHP. Sígueme en twitter y no te lo pierdas. Va a ser un bombazo.