window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versión: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster ya existe') } else { w.LeadBooster = { q: [], on: function (n, h) { this.q.push({ t: 'o', n: n, h: h }) }, trigger: function (n) { this.q.push({ t: 't', n: n }) }, } } })() Por qué necesitamos Symfony Polyfill (... y por qué no deberíamos) - The Codest
The Codest
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Industrias
    • Fintech y Banca
    • E-commerce
    • Adtech
    • Tecnología sanitaria
    • Fabricación
    • Logística
    • Automoción
    • IOT
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
  • Quiénes somos
  • Servicios
    • Desarrollo de software
      • Desarrollo Frontend
      • Desarrollo backend
    • Staff Augmentation
      • Desarrolladores frontales
      • Desarrolladores de backend
      • Ingenieros de datos
      • Ingenieros de la nube
      • Ingenieros de control de calidad
      • Otros
    • Asesoramiento
      • Auditoría y consultoría
  • Valor para
    • CEO
    • CTO
    • Gestor de entregas
  • Nuestro equipo
  • Case Studies
  • Saber cómo
    • Blog
    • Meetups
    • Seminarios en línea
    • Recursos
Carreras profesionales Póngase en contacto
Flecha atrás VOLVER
2022-05-19
Desarrollo de software

Por qué necesitamos Symfony Polyfill (... y por qué no deberíamos)

The Codest

Sebastian Luczak

PHP Jefe de Unidad

En el siguiente artículo, explicaremos cómo funciona Symfony Polyfill y cómo se relaciona con los proyectos Symfony. También profundizaremos en la idea que trata de resolver esta librería.

En la mayoría de los PHP proyectosnotará una fuerte dependencia de la aplicación Polyfill Symfony biblioteca. En este artículo, explicaremos no sólo cómo funciona y cómo se relaciona con Proyectos Symfonypero también profundizaremos en la idea del problema que trata de resolver.

Un poco de historia

PHP estuvo en mal estado durante mucho tiempo. Fue en 2005 cuando Andrei Zmievski inició un proyecto para ofrecer compatibilidad nativa con Unicode para PHP debido a las críticas encontradas y a la preocupación de que PHP va por mal camino. Desarrollo de PHP 6.x comenzó. Pero nunca se terminó, y esa es una historia para otro día. 10 años después, en algún momento entre 2014 y 2015, Dmitry Stogov, Xinchen Hui y Nikita Popov iniciaron phpng - proyecto que optimizó y refactorizó el motor Zend interno utilizado por PHP.

>_ Nace el PHP 7

Y durante los últimos años, PHP está creciendo más rápido que nunca, actualmente en la versión estable 8.1.

imagen

Debido al rápido desarrollo de nuevas funciones en el lenguaje, no sólo los desarrolladores tuvieron que adaptarse a esos cambios, sino también los proveedores de infraestructuras y servicios de alojamiento.

Para garantizar que los desarrolladores podamos utilizar las nuevas y mejores funciones de nuestro querido lenguaje de programación Polyfill Symfony nació el proyecto.

Symfony Polyfill y su función

Este proyecto incorpora funciones de la última versión de Versiones PHP y proporciona capas de compatibilidad para algunas extensiones y funciones. Está pensado para ser utilizado cuando la portabilidad a través de Versiones PHP y extensiones.

Esta es una descripción pura de Polyfill Symfony ¿pero qué significa eso?

Debido a la rápida evolución Idioma PHP y la personalización del software de los proveedores de servicios de Internet, la mayoría de los desarrolladores se han enfrentado a una elección sencilla:

  • Como desarrollador, creo aplicaciones en una versión anterior de PHP y no puede utilizar las últimas funciones de la lengua, o
  • Como desarrollador, creo una aplicación moderna utilizando la última versión de PHP.

Pero tenían que mantener la compatibilidad con otras herramientas y servicios ya utilizados tanto en el código e infraestructura, casi siempre con versiones antiguas de PHP¿Necesito mencionar, querido lector, el llamado "factor diversión" de estas dos soluciones?

Para facilitar el camino a los desarrolladores, la comunidad de código abierto creó en 2015 la primera versión estable de Polyfill numerada 1.0. La vida de los desarrolladores se hizo más fácil y se podría decir que Symfony Polyfill resolvió multitud de problemas como la portabilidad del código entre diferentes plataformas, Versión PHP y facilitó la refactorización de las aplicaciones y la reducción de la deuda tecnológica.

Por desgracia, no todos los problemas pueden resolverse con una sola herramienta.

Problemas asociados al mantenimiento de varias versiones del entorno

Para complejos Proyectos informáticosEn la actualidad, mantener diferentes versiones de entornos para distintos clientes/ramas/departamentos es un procedimiento habitual. Esto resulta en la necesidad de desarrollar muchas ramas diferentes de aplicaciones al mismo tiempo, a menudo con diferentes requisitos funcionales y con su propia tracción. Me he enfrentado muchas veces al problema de mantener la misma aplicación para diferentes clientes en diferentes entornos PHP5 / PHP7 y la multitud de problemas relacionados con la incompatibilidad de librerías o sus dependencias para diferentes versiones es simplemente irresoluble usando sólo Polyfill Symfony.

La brecha de competencias entre los miembros del equipo de desarrollo

Debido al rápido crecimiento de las funciones integradas en PHPSin embargo, muchos desarrolladores no han seguido el ritmo del cambio. Muchas de las funciones ofrecidas en versiones superiores de PHP son fáciles de conseguir con bibliotecas externas, o simplemente los desarrolladores no necesitaban las nuevas funciones, como por ejemplo Fibras PHP. Al seleccionar equipo miembros, es una buena idea asegurarse de que las competencias coinciden o de que el proceso de entrega del código es más coherente gracias a las herramientas de análisis estático y a la detección precoz de errores de regresión de versión.

Reticencia al cambio

imagen

La adopción de nuevas funciones lingüísticas sigue siendo bastante baja y PHP 5 sobre la cuota de 24% muestra claramente que una cuarta parte de los proyectos PHP utilizan versiones inferiores a 7.xcuyo soporte de seguridad finalizará el 6 de diciembre de 2022. Esto significa que en el momento de escribir este post, más de 25% de proyectos Web basados en PHP serán potencialmente vulnerables a todas las nuevas vulnerabilidades de seguridad a finales de año. "Si funciona, ¿para qué molestarse?

Conclusión

Debemos adaptarnos a los cambios lingüísticos lo antes posible y utilizar las soluciones más recientes cuanto antes. Durante una posible migración de un proyecto Legacy, merece la pena incluir Polyfill Symfony como ayuda y utilizando técnicas como el Patrón Estrangulador y la metodología BDD, tan de moda actualmente, que es fabulosamente fácil de aplicar a la Marco Symfony. Entonces, ¿estamos realmente obligados a utilizar Polyfill Symfony?

PHP desarrollo asesoramiento gratuito

Más información:

Desarrollo del PHP: 5 cosas que debe saber

7 Startups y Scaleups que sacudirán el panorama de los mercados en 2022

PHP Desarrollo. Symfony Console Component - Trucos y consejos

Artículos relacionados

Desarrollo de software

PHP 8.2: ¿Qué hay de nuevo?

La nueva versión de PHP está a la vuelta de la esquina. ¿Cuáles son las nuevas implementaciones que debe conocer? Consulte este artículo para saberlo.

The Codest
Sebastian Luczak PHP Jefe de Unidad
Desarrollo de software

PHP Desarrollo. Symfony Console Component - Trucos y consejos

Este artículo fue creado con el objetivo de mostrarte los consejos y trucos más útiles y recuperables sobre el desarrollo de la consola Symfony.

The Codest
Sebastian Luczak PHP Jefe de Unidad
Desarrollo de software

Contratación de desarrolladores internos o externos

¿Contratación interna o externa? Es el dilema definitivo. Descubra las ventajas de outsourcing o de crear un equipo interno en el siguiente artículo.

The Codest
Grzegorz Rozmus Jefe de unidad Java

Suscríbase a nuestra base de conocimientos y manténgase al día de la experiencia del sector informático.

    Quiénes somos

    The Codest - Empresa internacional de desarrollo de software con centros tecnológicos en Polonia.

    Reino Unido - Sede central

    • Oficina 303B, 182-184 High Street North E6 2JA
      Londres, Inglaterra

    Polonia - Centros tecnológicos locales

    • Parque de oficinas Fabryczna, Aleja
      Pokoju 18, 31-564 Cracovia
    • Embajada del Cerebro, Konstruktorska
      11, 02-673 Varsovia, Polonia

      The Codest

    • Inicio
    • Quiénes somos
    • Servicios
    • Case Studies
    • Saber cómo
    • Carreras profesionales
    • Diccionario

      Servicios

    • Asesoramiento
    • Desarrollo de software
    • Desarrollo backend
    • Desarrollo Frontend
    • Staff Augmentation
    • Desarrolladores de backend
    • Ingenieros de la nube
    • Ingenieros de datos
    • Otros
    • Ingenieros de control de calidad

      Recursos

    • Hechos y mitos sobre la cooperación con un socio externo de desarrollo de software
    • De EE.UU. a Europa: ¿Por qué las startups estadounidenses deciden trasladarse a Europa?
    • Comparación de los polos de desarrollo de Tech Offshore: Tech Offshore Europa (Polonia), ASEAN (Filipinas), Eurasia (Turquía)
    • ¿Cuáles son los principales retos de los CTO y los CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Condiciones de uso del sitio web

    Copyright © 2025 por The Codest. Todos los derechos reservados.

    es_ESSpanish
    en_USEnglish de_DEGerman sv_SESwedish da_DKDanish nb_NONorwegian fiFinnish fr_FRFrench pl_PLPolish arArabic it_ITItalian jaJapanese ko_KRKorean nl_NLDutch etEstonian elGreek es_ESSpanish