Presentación del webinar Radiografía actual del lenguaje PHP, en el que hemos repasado la evolución de PHP y explicamos de forma práctica los primeros pasos y las buenas prácticas con este lenguaje de cara al Desarrollo Web.
El vídeo íntegro del webinar está disponible en nuestro perfil en YouTube: https://www.youtube.com/Arsys
Más información sobre los webinars de Arsys en https://www.arsys.es/blog/
2. Qué veremos hoy
▪ Índice
o Qué es PHP
• Iniciarse con PHP
o Evolución de PHP
o Por qué PHP tiene "mala fama"
• Actualización
• Seguridad
• Malas prácticas
o PHP: el enfoque correcto
4. Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
5. Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
6. Qué es PHP
PHP es un lenguaje de programación específico para la realización de páginas y
aplicaciones web, del lado del servidor.
Lenguaje de programación web del lado
del servidor
https://arsys.es
7. Qué es PHP
Backend / frontend
Front-end: El desarrollo con los
lenguajes que se ejecutan del lado
del cliente
Back-end: El desarrollo con los
lenguajes que se ejecutan del lado
del servidor.
8. Qué es PHP
Ventajas de PHP
● Es sencillo de usar y aprender
● Amplio soporte en proveedores de alojamiento
● Software popular
○ WordPress
○ Woocommerce
○ Prestashop
○ Magento
○ Joomla!
○ Drupal
○ Laravel
○ Symfony
● Gran comunidad
9. Qué es PHP
Ventajas de PHP
● Es sencillo de usar y aprender
● Amplio soporte
● Software popular
○ WordPress
○ Woocommerce
○ Prestashop
○ Magento
○ Joomla!
○ Drupal
○ Laravel
○ Symfony
● Gran comunidad
https://w3techs.com/technologies/details/pl-php/all/all
10. Primeros pasos con PHP
Para trabajar con PHP necesitamos instalar en local una serie de programas:
- Un servidor web (Apache / Nginx)
- El módulo de soporte de PHP
- Generalmente una base de datos (MySQL / MariaDB)
Instalar PHP en local
Mamp
Laragon
https://www.apachefriends.org/es/index.html
https://laragon.org/
https://www.mamp.info/en/
13. Evolución de PHP
- 1994: "Personal Home Page/Forms Interpreter" or PHP/FI.
- 1998: PHP 3 "PHP: Hypertext Preprocessor"
- 2000: PHP 4 *Powered Zend Engine (sin soporte desde 2008)
- 2004: PHP 5 alcanza su madurez. Soporte "serio" para orientación a objetos, PDO.
Soporte oficial finalizó en diciembre 2018
- 2015: PHP 7 Aumento considerable del rendimiento. Manejo de tipos.
Versiones de PHP
16. "Mala fama"
Lenguaje primitivo
Es cierto que las primeras versiones de PHP no tenían muchas de las características
que se supone deseables en lenguajes avanzados.
- En PHP 5 se consiguió una orientación a objetos a la altura de lenguajes de
primer nivel.
- Herencia, traits, interfaces
- Autoload de clases
- Type hinting
- Namespaces…
- Las mejoras continuaron en PHP 7
17. "Mala fama"
Rendimiento
Se dice que PHP es un lenguaje más lento que otras alternativas para backend.
- En PHP 7 esta situación cambia y se pone a la altura de otros lenguajes
Cada lenguaje es bueno en su parcela
18. "Mala fama"
¿Algún motivo real?
Si PHP es un lenguaje avanzado y capaz de ofrecer un rendimiento apropiado para
la mayoría de las aplicaciones web.
¿Por qué continúa teniendo mala fama?
19. "Mala fama"
Malas prácticas
PHP es un lenguaje donde es fácil caer en malas prácticas.
- Los primeros pasos al aprender a programar en PHP consisten en colocar el código
PHP embebido en el código HTML.
- No es fácil encontrar una arquitectura de aplicación clara
- Dependencia con la base de datos y un API de funciones demasiado permisivo
- Configuraciones predeterminadas de PHP en versiones antiguas dan pie a posibles
brechas de seguridad
20. "Mala fama"
Comunidad
Los problemas que actualmente podemos achacar a PHP en realidad son debidos a la
comunidad de desarrolladores (una parte), que no son capaces de hacer un buen uso del
lenguaje.
- Código spaghetti
- Aplicaciones poco mantenibles
- Baja escalabilidad
- Compleja portabilidad
- Aplicaciones inseguras por programación deficiente
- Aplicaciones inseguras por no actualizar los sistemas
21. "Mala fama"
Seguridad del software libre
PHP y las aplicaciones de software libre en general deben ser actualizadas
constantemente, para evitar el uso de versiones con vulnerabilidades conocidas.
- Actualizar a PHP 7
- Actualizar Linux, Apache, Nginx...
- Actualizar las librerías que se usan(Composer)
- Actualizar los CMS / Frameworks
- WordPress
- Joomla!
- ...
23. Enfoque correcto
Actualizar a PHP 7
Se hace necesario actualizar a PHP 7.
- Mejora del rendimiento
- Seguridad!
El trabajo para migrar desde PHP 5 a PHP 7 consiste en elimina funcionalidades
marcadas como obsoletas. Estas funcionalidades venían siendo advertidas ya en
versiones de PHP 5 avanzadas.
1) Cambiar la versión de PHP en el servidor de desarrollo
2) Realizar los cambios oportunos https://www.php.net/manual/es/migration70.php
3) Subir al servidor
24. Enfoque correcto
Actualizar a PHP 7 - MySQL
El cambio más relevante es el fin de soporte de la extensión ext/mysql en PHP 7.0
Se debe migrar a la extensión ext/mysqli o PDO.
Elegir un API para MySQL:
https://www.php.net/manual/es/mysqlinfo.api.choosing.php
Aprovechar las sentencias preparadas
https://php.net/manual/es/mysqli.quickstart.prepared-statements.php
25. Enfoque correcto
Actualizar a PHP 7: Rector
Rector es un analizador de código que permite alterar automáticamente,
transformándolo según nuestras necesidades: https://github.com/rectorphp/rector
composer require rector/rector --dev (https://getcomposer.org)
Una vez instalado podemos ver los distintos niveles de trabajo con:
vendor/bin/rector levels
Podemos cambiar las extensiones de MySQL a MySQLi mediante el comando:
* Usa Git para revisar las versiones del código
vendor/bin/rector process public --level mysql-to-mysqli
26. Enfoque correcto
PHP The Right Way
Es un completo sitio dedicado a las buenas prácticas en PHP. Podemos obtener muchas
recomendaciones y guías para desarrollar proyectos de mayor calidad.
https://phptherightway.com/
Recomendaciones para estudio
- Composer & Packagist
- Namespaces
- PDO / Sentencias preparadas en MySQLi
- Sistemas de templates
- Seguridad
- Virtualización
27. Enfoque correcto
Frameworks
Por supuesto, el uso de frameworks PHP nos ofrece una base de código robusta, segura
y escalable para el desarrollo de aplicaciones web.
Laravel
https://laravel.com/
Symfony
https://symfony.com/