PHP 8.0.0 Released!


"PHP 8.0 es una actualización importante del lenguaje PHP que contiene nuevos recursos y optimizaciones incluyendo argumentos nombrados, tipos de uniones, atributos, promoción de propiedades constructivas, expresiones match, operador nullsafe, JIT (traducción dinámica) y también mejoras en el sistema de tipos, manejo de errores y consistencia en general".

26/11/2020

Fuente: https://www.php.net/releases/8.0/es.php?lang=es


Tips: borrar paquetes viejos de PHP 7.0 si estás migrando a PHP 7.1 (Ubuntu)



Puede pasar que estás instalando paquetes y te diste cuenta que hay cosas que no están funcionando correctamente. Por ejemplo, si estás instalando PHP 7.1, puede ser que te queden paquetes anteriores de PHP 7.0 que no desinstalaste, por lo que este comando te puede ayudar a solucionarlo:

 sudo apt-get purge php7.0-common

Reading package lists... Done
Building dependency tree    
Reading state information... Done
The following packages will be REMOVED:
  libapache2-mod-php7.0* php7.0-cli* php7.0-common* php7.0-curl* php7.0-gd* php7.0-json* php7.0-mbstring* php7.0-mysql* php7.0-opcache* php7.0-readline*
  php7.0-sqlite3* php7.0-xml*
0 upgraded, 0 newly installed, 12 to remove and 0 not upgraded.
After this operation, 16,7 MB disk space will be freed.
Do you want to continue? [Y/n] Y

UPDATE: encontré un buen resumen en https://ayesh.me/Ubuntu-PHP-7.1

Tips: cómo resolver el cálculo de un factorial usando recursividad (PHP7)


Por lo general no es muy común que en PHP, y trabajando con sistemas comerciales, tengamos que implementar soluciones recursivas. Pero como tampoco es imposible, les paso un ejemplo. Tengamos en cuenta que aunque parezca obvio:

a) el problema debe ser "un problema recursivo" (que tenga sentido aplicar la recursividad)

b) cuando se trabaja con recursión, debe existir el caso "resoluble directo", que permite salir de la recursión (o entraríamos en loop infinito).

El ejemplo más clásico es el cálculo de un factorial. Si factorial de 5 se calcula 1 x 2 x 3 x 4 x 5, por lo tanto podemos hacer un método que reciba el número a calcular, y posteriormente se va a ir llamando a sí mismo restando 1, hasta llegar al caso "resoluble directo", es decir 0, posteriormente iniciará el retorno recursivo y haciendo el cálculo "al revés" de la invocación inicial (revisar ejecución al final del ejemplo).

PD: de paso, lo hacemos usando PHP 7 o superior. Si bien en este ejemplo no se aprovecha mucho, está bueno que nos empecemos a acostumbrar a las nuevas funcionalidades que trae (como en este caso, la validación de tipos tanto en el input como en el output).

/**
 * Cómo resolver el cálculo de un factorial usando recursividad
 *
 * factorial de 5 = 1 x 2 x 3 x 4 x 5
 *
 */


class Factorial{
  
    public function 
calcular(int $numero) : int
    {
      
        if (
$numero 0) {
          
            
// entro en la recursividad ...
            
$aux $this->calcular($numero 1);
          
            
$calculo $aux $numero;
            echo 
"$aux * $numero = $calculo \n";
          
            return 
$calculo;
        } else {
            
// caso resoluble directamente ...
            
return 1;
        }
    }
}


$factorial = new Factorial();

echo 
"resultado = " $factorial->calcular(5) . " \n";


// Ejecución

php index.php 

1 * 1 = 1 
1 * 2 = 2 
2 * 3 = 6 
6 * 4 = 24 
24 * 5 = 120 
resultado = 120 

Espero que les resulte útil! ;-) 

Espero todas sus dudas! 


PHP 7.1: cómo instalarlo en Ubuntu

Para quienes quieren probar PHP 7.1 en Ubuntu, ya que actualmente no está disponible como paquete oficial de instalación, pueden seguir los siguientes pasos:


sudo add-apt-repository ppa:ondrej/php

sudo apt-get update

sudo apt-get upgrade

(optional) sudo apt-get remove php7.0

sudo apt-get install php7.1


Anexo (otros paquetes que puedes necesitar)


sudo apt-get install php7.1-mbstring


sudo apt-get install php7.1-xml

Instalación probada en Ubuntu 16.04 / 17.04 LTS sin problemas.

Saludos! 

PHP 7.1, para tener en cuenta




  • Try/catch: poder atrapar en un solo catch varias excepciones
  • Soporte HTTP/2 en push de curl
  • Visibilidad en las constantes 
  • Poder definir en el retorno de un método que este es de tipo void
  • Warning por strings inválidos en operaciones matemáticas
  • Se depreca y remueve mcrypt()
  • y más
Un buen resumen en: https://dotdev.co



Zend Framework 3 disponible!




We are excited to deliver the latest release of Zend Framework, the first major release in four years.

Zend Framework 3, along with recent releases of Zend Server 9 and Zend Studio 13.5, makes it easier for you to develop, debug, monitor, and deploy modern web and mobile apps in PHP 7.

Zend Framework 3 includes:
  • Increased performance – up to 4X faster applications under PHP 5, and even better using
    PHP 7
  • PHP 7 support
  • Improved documentation for each component repository
  • Expressive, a PSR-7 middleware microframework that focuses on simplicity and interoperability
Create PHP applications simpler and faster with Zend Framework 3.
   
  

Happy PHPing,

http://info.zend.com/P000r0jLAX0H540U0zUC6R0

https://framework.zend.com/blog/2016-06-28-zend-framework-3.html

https://docs.zendframework.com/tutorials/migration/to-v3/overview/



GIT cambiar el editor por defecto a VIM

A veces cuando usamos git en consola unix / linux queda con un editor por defecto que puede no ser de nuestro agrado. Si vienes usando vim, puedes aplicar esta sintaxis:

git config --global core.editor "vim"

GIT: colorear el diff en consola


 

Estás trabajando remoto desde la consola de comandos, quieres ver la diferencia de tus fuentes con respecto a los cambios que estás haciendo, y los cambios se presentan en blanco y negro.

$ git diff

Para poder ver el diff con colores y clarificar mejor las diferencias en el código modificado, debes cambiar la configuración de GIT:

La preferencia es

color.ui


Y todas las funciones se pueden habilitar o deshabilitar con TRUE o FALSE

ejemplo:

$ git config --global color.ui true

Aquí dejamos habilitado para que el diff al ejecutar git diff se muestre en distintos colores para facilitar su lectura.

Existen muchas variaciones que se pueden aplicar, para más info, ver manual de referencia.

color.branch
color.diff
color.interactive
color.status

Saludos!


Entradas populares