
Como convertirse en un "Desarrollador PHP Senior" y no morir en el intento... escrito por Enrique Place
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!
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

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
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:
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
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
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.uitrue
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!
Netbeans: cómo agregar soporte para editar bash / scripts
Probado en Netbeans 8 en adelante:
- Instalar plugin C/C++
- Instalar plugin nb-noext-mime-resolver
- Cambiar configuración en tools/options/editor/spellchecker y desmarcar 'Script and make comments'
Fuente: stackoverflow.com
Suscribirse a:
Entradas (Atom)
Entradas populares
-
He visto mucha documentación que habla sobre el tema de los métodos "getter / setter", o traducido al castellano los métodos ...
-
Esto es lo que pasa cuando tienes entornos que no son homogéneos y cada aplicación se encuentra ubicada en distintas márgenes de un "rí...
-
Uno de los problemas que me he encontrado con la versión 5 de PHP es la falta de la representación de los "paquetes" desde el prop...
-
Este es un resumen de conclusiones que se vertieron en una discusión sobre el tema en Foros de Web , donde se plantea la duda de si PHP5 ...
-
Este es un ejemplo publicado a partir de la duda de un usuario , y como son preguntas que se hacen reiteradamente, les dejo el ejemplo aquí ...
-
Esta reflexión se la escribo a todos los "Programadores PHP": Al día de hoy la mayoría de los institutos o universidades de muchos...
-
El Patrón " Singleton " sirve para cuando buscamos restringir la creación de instancias de un objeto, obligando que solo se pueda ...
-
Hace un tiempo que vengo recomendando esta presentación como punto de partida para definir un estándar de desarrollo en una empresa. En ambi...
-
Bueno, luego de revisarlo una y otra vez (y otra vez) ya se encuentra terminada la primer versión del libro que junta toda la experiencia ac...
-
Estoy viendo muy seguido en foros que frecuento regularmente a muchos programadores que quieren dar " el gran salto " y evolucion...