PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala...
Transcript of PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala...
![Page 1: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/1.jpg)
PHP en 2019
![Page 2: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/2.jpg)
![Page 4: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/4.jpg)
![Page 5: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/5.jpg)
1. Evolución2. Soporte3. Benchmarks4. Popularidad5. Casos concretos6. Presente y futuro
PHP
![Page 6: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/6.jpg)
1Evolución
![Page 7: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/7.jpg)
1993
![Page 8: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/8.jpg)
![Page 9: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/9.jpg)
![Page 10: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/10.jpg)
![Page 11: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/11.jpg)
![Page 12: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/12.jpg)
1994
![Page 13: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/13.jpg)
Rasmus Lerdorf
![Page 14: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/14.jpg)
• Pretendía ser un sistema de plantillas• Conjunto de Common Gateway
Interface (CGI) escritos en C• Los extiende para trabajar con:
• Formularios• BB.DD.
0.x
![Page 15: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/15.jpg)
• 1995• Personal Home Page Tools (PHP
Tools)• Variables• Gestión de formularios• Sintaxis HTML embebida
1.0
![Page 16: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/16.jpg)
![Page 17: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/17.jpg)
• 1997• PHP/FI 2.0 (Personal Home Page/Forms Interpreter)
• Aparece la etiqueta <?• Funciones• 1 único desarrollador• Desarrollo orgánico, sin diseño
2.0
![Page 18: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/18.jpg)
![Page 19: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/19.jpg)
Zeev Suraski Andi Gutmans
![Page 20: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/20.jpg)
• 1998• PHP: Hypertext Preprocessor• Orientación a objetos• Reescritura del parser• Soporte a múltiples bases de datos• Soporte a múltiples sistemas operativos• Sin soporte desde octubre de 2000
3.0
![Page 21: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/21.jpg)
• 2000• Zend Engine 1.0• Se crea Zend Technologies• Soporte a diversos servidores web• Sesiones HTTP• Sin soporte desde agosto de 2008• Uso en 0,5 % de la web con PHP (4.x)
4.0
![Page 22: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/22.jpg)
• vBulletin (2000)• phpBB (2000)• Simple Machines Forum (2001)• Invision Community (2002)
• Invision Power Board (2002)
Foros
![Page 23: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/23.jpg)
• Drupal (2000)• Moodle (1999-2001)• WordPress (2003)• Joomla (2005)
CMS
![Page 24: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/24.jpg)
• SourceForge (1999)• Wikipedia (2001)• Mailchimp (2001)• Flickr (2004)• Facebook (2004)
Webs
![Page 25: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/25.jpg)
• Linux• Apache• PHP• MySQL
LAMP
![Page 26: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/26.jpg)
• 2004• Zend Engine 2.0• Nuevo modelo de objetos• MySQLi• Soporte XML mejorado• Soporte para SQLite• Mejora en los streams
5.0
![Page 27: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/27.jpg)
• 2005• PDO
5.1
![Page 28: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/28.jpg)
• CakePHP (2005)• Symfony (2005)• CodeIgniter (2006)• Zend Framework (2006)
Frameworks
![Page 29: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/29.jpg)
• 2006• Extensión JSON• Extensión ZIP
5.2
![Page 30: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/30.jpg)
• 2006• ORM - DBAL• Doctrine Query Language (DQL) • Inspirado en Java Hibernate y
ActiveRecord RoR
Doctrine
![Page 31: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/31.jpg)
• PrestaShop (2007)• Magento (2008)• OpenCart (2010)• WooCommerce (2011)
Comercio electrónico
![Page 32: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/32.jpg)
• 2009• Namespaces• Funciones lambda y closures• Archivos Phar
5.3
![Page 33: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/33.jpg)
• Silex (2010) -> EOL junio 2018• Slim (2011)
• Laravel (2011). Framework
Microframeworks
![Page 34: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/34.jpg)
• 2012• Traits• Servidor web integrado• Sintaxis simple para arrays: [1, 2, 3]
5.4
![Page 35: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/35.jpg)
• 2012• Gestor de dependencias• Configuración JSON• Inspirado en npm y en bundler• Uso simple y robusto• Packagist
Composer
![Page 36: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/36.jpg)
• 2009: PHP Standards Group • 2011: PHP Framework
Interoperability Group• PSR: PHP Standard
Recommendations• WordPress, Laravel, Symfony
PHP-FIG
![Page 37: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/37.jpg)
• PSR-0: Carga automática -> PSR-4• PSR-1: Codificación básica• PSR-2: Guía de estilo de codificación
-> PSR-12• PSR-3: Interfaz de un logger• PSR-4: Carga automática
PSR
![Page 38: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/38.jpg)
• PSR-5: PHPDoc (draft)• PSR-6: Interfaz de cacheo• PSR-7: Interfaz de mensajes HTTP• PSR-8: Interfaz amigable (abandono)• PSR-9: Divulgación de seguridad
(abandono)
PSR
![Page 39: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/39.jpg)
• PSR-10: Proceso de avisos de seguridad (abandono)
• PSR-11: Interfaz de contenedores • PSR-12: Guía de estilo de
codificación extendida• PSR-13: Enlaces hipermedia
PSR
![Page 40: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/40.jpg)
• PSR-14: Disparador de eventos• PSR-15: HTTP Handlers• PSR-16: Caché simple• PSR-17: Factorías HTTP• PSR-18: Cliente HTTP• PSR-19: Etiquetas PHPDoc (draft)
PSR
![Page 41: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/41.jpg)
• 2013• Generadores y corrutinas• Hashing de contraseñas
simplificado• OPcache
5.5
![Page 42: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/42.jpg)
• 2014• Expresiones constantes • Funciones variádicas• Importación con «use»• Operador exponencial• Sin soporte desde enero de 2019• Uso en 56,7 % de la web con PHP (5.x)
5.6
![Page 43: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/43.jpg)
Especificación del lenguaje PHP – 2014
20 años desde el inicio
![Page 44: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/44.jpg)
6.0
![Page 45: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/45.jpg)
• 2010• HHVM: VM con compilación JIT • Rendimiento superior• Hack: tipado estático y dinámico• Septiembre 2017. Deja de ser
compatible con PHP
![Page 46: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/46.jpg)
• Versión mayor o menor cada año• 2 años soporte• 1 año más de soporte de
seguridad
Evolución
![Page 47: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/47.jpg)
• 3 diciembre 2015• Nuevo motor Zend• Incremento del rendimiento: el doble de rápido• Reducción de la memoria usada• Clases anónimas• Operator coalescencia nula (??)• Mejora en la gestión de excepciones• Declaraciones del tipo de dato y del valor devuelto
7.0
![Page 48: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/48.jpg)
• 1 diciembre 2016• Tipos nullables• Tipo void• Pseudotipo iterable
7.1
![Page 49: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/49.jpg)
• 30 noviembre 2017• Sodium: biblioteca criptográfica• Hashing con Argon2• Mejoras en el núcleo
7.2
![Page 50: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/50.jpg)
• 6 diciembre 2018• is_countable()• array_key_first() array_key_last()• Coma final en la llamada a
funciones
7.3
![Page 51: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/51.jpg)
• 28 noviembre 2019• Propiedades tipadas en clases• Funciones arrow• __serialize/__unserialize• Operador de asignación de coalescencia nula (??=)• Precarga
7.4
![Page 52: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/52.jpg)
• 23 septiembre 2021• JIT• Union Types
8.0
![Page 53: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/53.jpg)
![Page 54: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/54.jpg)
Nikita Popov
![Page 55: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/55.jpg)
2Soporte en las
distintas versiones
![Page 56: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/56.jpg)
![Page 57: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/57.jpg)
3Benchmarks
![Page 58: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/58.jpg)
![Page 59: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/59.jpg)
![Page 60: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/60.jpg)
![Page 61: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/61.jpg)
€
![Page 62: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/62.jpg)
4Popularidad
![Page 63: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/63.jpg)
![Page 64: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/64.jpg)
![Page 65: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/65.jpg)
![Page 66: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/66.jpg)
![Page 67: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/67.jpg)
![Page 68: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/68.jpg)
![Page 69: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/69.jpg)
Backendweb
![Page 70: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/70.jpg)
79 %w3techs.com
![Page 71: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/71.jpg)
![Page 72: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/72.jpg)
![Page 73: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/73.jpg)
![Page 74: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/74.jpg)
![Page 75: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/75.jpg)
![Page 76: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/76.jpg)
![Page 77: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/77.jpg)
Posición en el mercado
![Page 78: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/78.jpg)
![Page 79: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/79.jpg)
• Facebook.com (7)• Wikipedia.org (8)• 360.cn (14)• Sina.com.cn (15)• Vk.com (19)• Babytree.com (47)• WordPress.com (54)• Pinterest.com (94)
Sitios populares
![Page 80: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/80.jpg)
5Casos concretos
![Page 81: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/81.jpg)
5.1WordPress
![Page 82: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/82.jpg)
• Nace en 2003 como un fork de b2/cafelog• CMS líder: 35 % de la cuota de mercado
web• 61,7 % de la cuota de mercado de CMS• Propósito general, no solo blogs• Automattic (valorada en 3000 millones de
$)
WordPress
![Page 83: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/83.jpg)
• Comunidad muy grande• 97 grupos de meetup en España• 1620 grupos a nivel mundial• 143 WordCamps en 2018
WordPress
![Page 84: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/84.jpg)
• Temas • Plugins• API REST• Multitud de negocios
• Hosting dedicado• Marketplaces• Empresas de temas, plugins, servicios,...
WordPress
![Page 85: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/85.jpg)
![Page 86: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/86.jpg)
• Nace en 2011 • Framework MVC• Taylor Otwell• Basado en los componentes de Symfony• ORM propio (Eloquent)• Motor de plantillas propio (Blade)• Query builder
Laravel
![Page 87: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/87.jpg)
• Migraciones y seeding en las BB.DD.• Composer como gestión de paquetes• Test unitario (PHPUnit) y tests de integración
(Dusk) • Entornos de desarrollo: Homestead, Valet• CLI (Artisan)• Paquetes oficiales: Cashier, Passport,
Socialite,...
Laravel
![Page 88: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/88.jpg)
• Gran comunidad: paquetes• Modelo de negocio SaaS: Forge, Envoyer,
Vapor, Nova, certificación,...• Conferencias: US, EU, Australia• Curva de aprendizaje pequeña
Laravel
![Page 89: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/89.jpg)
• Nace en 2005• Framework web• Conjunto de bibliotecas PHP desacopladas• Fabien Potencier • SensioLabs• Doctrine (ORM)• Twig (motor de plantillas)
Symfony
![Page 90: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/90.jpg)
• Sus componentes son usados en otros proyectos: • Laravel • Drupal
• Negocio SaaS: Cloud, SymfonyCasts, SymfonyInsight, blackfire, certificación,...
Symfony
![Page 91: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/91.jpg)
6Presente y futuro
![Page 92: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/92.jpg)
• Curva de aprendizaje baja• Barrera de entrada pequeña• Accesible a una gran cantidad de usuarios,
no solo a programadores => diversidad• Accesible en todos los ISP• Barato• Diseñado para web, aunque válido en otros
entornos (CLI,...)
Presente y futuro
![Page 93: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/93.jpg)
• Altamente escalable. Buen rendimiento• Comunidad enorme• Programadores disponibles para contratar• Formación rápida• Lenguaje OO y completo• Composer• PSR (PHP Standards Recommendations)
Presente y futuro
![Page 94: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/94.jpg)
• Herramientas de gran calidad: • IDE: PhpStorm• Entornos desarrollo: Homestead, LAMP,
VVV,...• Tests: PHPUnit, Laravel Dusk, Symfony
Panther,...• Librerías: The League of Extraordinary
Packages, Spatie,...
Presente y futuro
![Page 95: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/95.jpg)
• Herramientas ampliamente usadas: • CMS: WordPress, Drupal,... • Frameworks: Laravel, Symfony,...• Comercio electrónico: WooCommerce,
Magento, PrestaShop,...• LAMP omnipresente
Presente y futuro
![Page 96: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/96.jpg)
• Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen
• Carencias en el lenguaje• Mucho tiempo para nuevas funcionalidades• Falta de una fundación que gestione el
proyecto• Falta de financiación• Mala imagen, poco «cool»
Presente y futuro
![Page 97: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/97.jpg)
¿Debemos aprender PHP?
![Page 98: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/98.jpg)
Sí
![Page 99: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/99.jpg)
Pero, ¿PHP no está muerto?
![Page 100: PHP en 2019 - Jesús Amieiro · •Barrera de entrada pequeña => código y proyectos de mala calidad => mala imagen • Carencias en el lenguaje • Mucho tiempo para nuevas funcionalidades](https://reader034.fdocuments.ec/reader034/viewer/2022042301/5ecc440ae2e77955c85a58b0/html5/thumbnails/100.jpg)