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! 

Entradas populares