Entradas

Migrando zend expressive a mezzio

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-configzendframework/zend-cache => laminas/laminas-cachezendframework/zend-code => laminas/laminas-codezendframework/zend-component-installer => laminas/laminas-component-installerzendframework/zend-config-aggregator => laminas/laminas-config-aggregatorzendframework/zend-db => laminas/laminas-dbzendframework/zend-debug is abandoned, you should avoid using it. No replacement was suggested.zendframework/zend-diactoros => laminas/laminas-diactoroszendframework/zend-escaper => laminas/laminas-escaperzendframework/zend-eventmanager => laminas/laminas-eventmanagerzendframework/zend-expressive => mezzio/mezziozendframework/zend-expressive-aurarouter => mez…

CentOS 8 ahora viene con DNF

Uno de los cambios más radicales en CentOS 8 ha sido la sustitución del gestor de paquetes YUM por DNF, en la mayoría de los sitios comentan que la transición es casi trivial, pero esto no es del todo cierto, en este post veremos algunas consideraciones sobre este cambio.
Primero veamos las 3 razones que se esgrimen para haber levado a cabo este cambio:
La documentación de yum es casi inexistente para ampliar su funcionalidadYUM no soporta Python 3El gestor de dependencias utilizado por DNF es más estándar, ya vine siendo utilizado por SUSE hace mucho tiempo dentro de zypper. Ahora bien, pese a que la sintaxis es básicamente la misma el manejo de repositorios no lo es tanto, se van a poder agregar como se hacía con YUM, incluso dejando en el mismo directorio los archivos .repo pero algunas cosas cambian, en mi caso pondré las diferencias para trabajar con algunas librerías de PHP. Por ejemplo, en vez de habilitar diferentes repos para una u otra versión ahora se habilita un módulo par…

SQL Server, columnas calculadas

Aquí os dejo algunos apuntes básicos sobre las columnas calculadas en SQL Server. ¿Cuando se calculan? Depende de cómo defina la columna calculada. Una columna calculada PERSISTIDA se calculará y luego se almacenará como datos dentro de la tabla al ser creada. Si no define la columna como PERSISTIDA, se calculará cada vez que se ejecute una consulta que la incluya.

Mas info aquí. Tablas temporales o versionadas La modificación del esquema de una tabla versionada por el sistema (tablas temporales) falla porque no se admite agregar una columna calculada mientras el versionado del sistema está activado. Para solucionarlo:
Primero desactivar el versionadoLuego agregar la columna calculada a la tabla baseVerificar el tipo de la columna calculada resultanteAgregar la columna con el tipo estático apropiado a la tabla de historial (tabla temporal o tabla versionada)Volver a activar el versionado
Otra cosa a tener en cuenta es que una columna calculada que utiliza una función definida por el …

Ciclos de lanzamiento en PHP, curiosidades

Imagen
A raíz de la cada vez más cercana versión 8 de PHP y sus esperadas mejoras han surgido algunos bulos sobre su fecha de lanzamiento, hasta ser confirmada finalmente el 10 de febrero con el siguiente tweet: 

En este tweet se habla de los ciclos de lanzamiento de PHP, puede parecer algo trivial o sin importancia, pero desde la versión 7, no sólo ha mejorado el lenguaje, sino la forma de trabajar del equipo de desarrollo. Si tomamos por ejemplo los 414 lanzamientos que se han publicado desde junio de 2003, de ellos 27 alfas, 30 betas y 52 candidatas, podemos ver una mayor organización y previsible agenda en los mismos.
Por citar un ejemplo, mientras en php 5 no siempre se publicaban alfas, betas o RC, en php 7 si, y además periódicamente, las versiones 0,1,2,3 y 4 de php 7 comparten los mismo tiempos, desde el lanzamiento de la primera beta hasta el lanzamiento de la primera versión candidata pasan exactamente 42 días, y también para la mayoría de transiciones de alfa a beta (7.1, 7.2 y …

Instalar libreria PHP image magick en MacOS Catalina

Imagen
Primero necesitamos instalar los pre requisitos, en caso que no los tengamos
brew install imagemagick
Luego ejecutamos la instalación con PECL y le damos INTRO a cada pregunta para aceptar los valores por defecto
pecl install imagick Please provide the prefix of ImageMagick installation [autodetect] :
Ignorar los siguientes errores
cp: /private/tmp/pear/temp/imagick/build/php.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/shtool: Permission denied cp: /private/tmp/pear/temp/imagick/build/libtool.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/ax_check_compile_flag.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/ax_gcc_func_attribute.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/php_cxx_compile_stdcxx.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/pkg.m4: Permission denied cp: /private/tmp/pear/temp/imagick/build/config.guess: Permission denied cp: /private/tmp/pear/temp/imagick/build/config.sub: Permissio…

Instalar librería memcached para PHP en MacOS Catalina

Imagen
Primero necesitamos instalar los pre requisitos, en caso que no los tengamos
brew install zlib brew install pkg-config brew install libmemcached
Luego ejecutamos la instalación con PECL y le damos INTRO a cada pregunta para aceptar los valores por defecto
pecl install memcached libmemcached directory [no] : zlib directory [no] : use system fastlz [no] : enable igbinary serializer [no] : enable msgpack serializer [no] : enable json serializer [no] : enable server protocol [no] : enable sasl [yes] : enable sessions [yes] :
Ignorar el siguiente error
Warning: Use of undefined constant name - assumed 'name' (this will throw an Error in a future version of PHP) in Builder.php on line 407

SQL Server schemabinding

Este post es una traducción al castellano de este otro.
Cuando se utiliza la palabra clave SchemaBinding al crear una vista o función, lo que hace es vincular la estructura a las tablas o vistas subyacentes. ¿Qué significa? Significa que mientras un objeto exista como un objeto vinculado, está limitado en los cambios que se pueden realizar sobre él por las tablas o vistas que lo referencian. Si una tabla es referenciada por una función o vista vinculada, solo las columnas a las que hace referencia la función o la vista no se pueden modificar, el resto si.
Cuando tienes objetos vinculados en una base de datos: No puedes cambiar la intercalación (collation) de la base de datos. No puedes usar SELECT * en las vistas vinculadas. No puedes ejecutar sp_refreshview en las vistas vinculadas. Puedes realizar cualquier cambio en la tabla origen que no afecte la estructura de las columnas enlazadas.Puedes averiguar si un objeto está vinculado al esquema mirando la columna is_schema_bound en sys…