Entradas

Mostrando entradas de 2020

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

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 funcionalidad YUM no soporta Python 3 El 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

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 versionado Luego agregar la columna calculada a la tabla base Verificar el tipo de la columna calculada resultante Agregar 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

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

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

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_

Instalar PHP 7.4+ en MacOS Catalina 10.15+

Imagen
  Ahora instalar PHP es muchísimo más sencillo en Mac, con un solo comando podemos hacerlo tal y como se hace en CentOS. brew install php php -v PHP 7.4.2 (cli) (built: Jan 22 2020 06:30:58) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.2, Copyright (c), by Zend Technologies Si la versión de PHP no es la última, es posible que hayas instalado una versión previa utilizando el script de liip , si es tu caso te recomiendo desinstalarlo, el problema es si liip te lo ha instalado en /usr/bin/php en vez de /usr/local/bin/php , que seguramente es tu caso porque brew lo instala en esta última ubicación. Desisntalar PHP instalado con liip sudo rm -rf /usr/local/php* Luego necesitas deshabilitar System Integrity Protection , para ello tienes que reiniciar en modo recuperación (Command + R) y sin elegir ninguna opción del menú, ir al Terminal y ejecutar csrutil disable , para más info puedes consultar este otro e