Entradas

Mostrando las entradas etiquetadas como zend

Migrando zend expressive a mezzio

Imagen
Hace ya un tiempo se gestaron cambios en Zend, ahora es Láminas y el soporte a Zend Framework tal y lo conocíamos ha caducado, ahora el Framework es Mezzio. Esta es la equivalencia de los nuevos paquetes, la mayoría de cambios son solo de namespaces: zendframework/zend-auradi-config => laminas/laminas-auradi-config zendframework/zend-cache => laminas/laminas-cache zendframework/zend-code => laminas/laminas-code zendframework/zend-component-installer => laminas/laminas-component-installer zendframework/zend-config-aggregator => laminas/laminas-config-aggregator zendframework/zend-db => laminas/laminas-db zendframework/zend-debug is abandoned, you should avoid using it. No replacement was suggested. zendframework/zend-diactoros => laminas/laminas-diactoros zendframework/zend-escaper => laminas/laminas-escaper zendframework/zend-eventmanager => laminas/laminas-eventmanager zendframework/zend-expressive => mezzio/mezzio zendframework/zend...

Habilitar CORS en GraphQL y Zend Expressive 3

Encontré este artículo que me dió la pista de como hacerlo, pero es de 2017, con lo cual me encontré con múltiples errores. Aquí os dejo la guía detallada de cómo habilitar CORS para las últimas versiones de GraphQL y demás librerias implicadas. Instalamos las dependencias composer require tuupola/cors-middleware composer require zendframework/zend-problem-details Creamos la factoría dónde pondremos nuestros valores por defecto y la gestión de errores en JSON (disponible en github) Editamos el archivo de dependencias Tuupola\Middleware\CorsMiddleware::class => App\Factory\CorsMiddlewareFactory::class Y por último habilitamos el middleware en pipeline.php use Tuupola\Middleware\CorsMiddleware; ... // $app->pipe(ImplicitOptionsMiddleware::class); $app->pipe(CorsMiddleware::class);

GraphQL en Zend Expressive 3

Imagen
Voy a intentar hacer una guia de paso a paso para utilizar GraphQL en Zend Expressive 3 . Existe algo de documentación por la red pero, o está incompleta o desactualizada, por eso me he decidido a hacer este manual. ¿Que vamos a utilizar? La última versión de Zend Expressive 3 y la implementación de GraphQLpara PHP hecha por webonyx . Otro día hablaré del por qué Zend Expressive. ¿Comenzamos? Lo primero es crear un proyecto $ composer create-project zendframework/zend-expressive-skeleton graphql-expressive Recuerda que el directorio graphql-expressive debe estar vacío. Ahora añadimos las dependencias para GraphQL $ cd graphql-expressive $ composer require webonyx/graphql-php Ahora vamos con el código, lo primero que haremos será configurar un middleware para procesar correctamente las peticiones en JSON, editamos el archivo config/pipeline.php agregando estas dos líneas: use Zend\Expressive\Helper\BodyParams\BodyParamsMiddleware; ... $app->pipe...

El mejor IDE para PHP

Imagen
Voy a comenzar diciendo que no existe un IDE perfecto, los hay mejores y peores, ninguno perfecto. El mejor IDE es el que mejor se adapte a tu proyecto, a veces es necesario utilizar uno para un proyecto antiguo que vamos a refactorizar y otro para un proyecto que comenzamos de cero. En este blog voy a hablar de las características que creo que deberíamos de considerar a la hora de elegir nuestro entorno de desarrollo integrado (IDE), siempre enfocados a PHP. Consumo de recursos Raro es un entorno que consuma demasiada CPU pero en cuanto a RAM son bastante golosos, sobre todo los basados en Java, en la siguiente tabla veréis el consumo medio de RAM para alguno de estos IDEs. IDE RAM Zend Studio 13.5.1 905 MB NetBeans 8.2 830 MB PHP Tools Visual Studio 2017 320 MB Visual Studio Code 1.11 30 MB Servicios Un buen entorno no solo debe presentar las herramientas necesarias para refactorizar, comprobar y rastrear errores, intellisense, sino permitir la inte...

Actualizando a Zend Studio 12.x

Imagen
Generalmente el paso de una actualización a otra en Zend Studio (ZS) es bastante trivial pero al actualizar de Zend Studio 11 a ZS 12 o ZS 12.5 me he encontrado con algunas dificultades, cambios de configuración que afectan las codificaciones de los archivos JavaScript y el uso del editor, sobre todo las teclas tab . Error de codificación de archivos JavaScript a UTF-8 en Zend Studio 12 En Zend Studio 11 para cambiar la codificación de un proyecto bastaba con hacer click derecho en el proyecto Properties > Resource y especificar allí nuestra configuración, pero el paso a la versión 12 que implica la actualización a Eclipse 4 ha cambiado el orden de prioridades de las codificaciones. Permítanme dar más detalles de cómo funciona. La codificación de un archivo de texto está determinada por las reglas siguientes: Si la codificación se encuentra justo en el archivo, entonces este es la codificación que se aplica, de lo contrario La codificación de archivos de texto se hereda de...

Nuevas funcionalidades en PHP 5.5

Una vez que hemos visto todas las ventajas que nos puede traer PHP 5.4 y sabiendo que esta no es la última versión estable sería interesante ver cuáles son las ventajas de esta para una vez decididos migrar optemos por una u otra. Generadores Una de las necesidades de programación más comunes, es ser capaz de realizar una acción sobre todos los elementos de un objeto. Por ejemplo, usando un foreach en una matriz, para obtener cada clave o, un foreach sobre un objeto, para obtener el nombre de cada parámetro y su valor. El mecanismo para la aplicación de este comportamiento es conocido como un iterador, que se utiliza para recorrer todos los elementos de un objeto o una matriz. Los iteradores se pueden definir de forma explícita con clases personalizadas, pero eso puede ser un proceso difícil de manejar y complejo, con apaños y, más que un puñado de funciones. ¿Qué pasa si quiero actuar en un subconjunto de una matriz, y realizar algo de lógica a medida que avanzo, pero aún así ser...

¿Por qué actualizar a PHP 5.4?

Imagen
Como hemos visto en el post anterior sobre la evolución de las distintas versiones de PHP 5 , PHP 5.3 es la versión más utilizada en la web aún cuando lleva sin tener una actualización desde diciembre del pasado año y estar en el mercado 2 versiones estables y superiores a ella. He elegido PHP 5.4 por los escépticos, porque es una versión estable y consolidada, con un desarrollo que se inició con el primer lanzamiento de la alpha 1 en junio de 2011 y que tras casi un año de pruebas lanzó su versión inicial para entornos de producción en marzo de 2012, una versión todavía con soporte por parte de PHP y que su ultima actualización ha sido este mismo mes de mayo con la versión 5.4.28. Muchas de las mejoras en PHP 5.4 no son algo que se pueda ver. No son algo que ni siquiera uno se daría cuenta mirando la página de novedades en el manual de PHP . En el centro de estos cambios está la optimización del tiempo de ejecución y una base de código más limpio en general. Si vemos el manual de PH...

Zend Studio y el símbolo de euro para PHPExcel

Imagen
El que esté familiarizado con la librería de PHP para generar archivos Excel de codeplex (PHPExcel) sabe que todos los textos para que esta librería funcione correctamente deben estar en UTF-8. El problema viene cuando queremos utilizar caracteres especiales como el símbolo del euro y nuestro código está en otra codificación. Por ejemplo los proyectos en Zend Studio por defecto están en CP1252 (la mayoría de las veces se puede confundir con el estándar ISO 8859-15 pero no es lo mismo) con lo cual si queremos convertir a UTF-8 un texto sabiendo que puede contener el símbolo de euro (€) no vale con utilizar las funciones utf8_encode o utf8_decode porque ambas codifican o decodifican entre ISO 8859-1 y UTF-8. ¿Qué opciones tenemos para codificar textos en Windows-1252 a UTF-8? Existen varias herramientas ninguna de ella exenta de tener que instalar librerías adicionales aunque son bastante sencillas y universales. La primera opción es mb_convert_encoding y la segunda es iconv ...

Error ZDS: Bad escape sequence

Un error común, por lo menos para mí, cuando trabajo con el Zend Development Studio (ZDS) es el de Bad escape sequence cuando pongo el caracter “\” dentro de una cadena. Por ejemplo, imagina que tenemos: include_once “c:\archivo.php” Esta instrucción estaría correcta realmente pero el ZDS marca el error como bad escape sequence \a . La solución es muy sencilla, en vez de utilizar comillas dobles “ en la cadena debemos de utilizar comillas simples ‘, de esta forma ya el Zend no identifica esto como un error porque interpreta la cadena de otra manera. ¡Curioso!

Errores en Zend Development Studio

Sin lugar a dudas Zend Development Studio es una de las herramientas más completas para implementar código PHP aunque como todo buen hijo de vecino no está excento de algunos pequeños detalles. Si alguno ha programado con el ZDS le habrán molestado sobre manera estos dos warnings que suele poner: include-var : Unsafe use of variable in call include()/require() bool-assign : Assignment in condition Son realmente 2 warnings que implican en cierta medida una ayuda al programador, el primero evita cualquier posible fallo de seguridad incluyendo en un archivo una url que es variable, lo cual podría (y digo podría) ser un fallo de seguridad. El segundo nos previene por si acaso se nos ha olvidado poner la doble = en una instrucción booleana, lo cual en muchos casos no es cierto pues realmente queremos que se asigne NO que se compare. Si queremos evitar estos warnings es de una forma sencilla aunque realmente tonta. Para el primero el ZDS considera inseguro que se incluya desde una variable p...