window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(funktion () { var w = vindue if (w.LeadBooster) { console.warn('LeadBooster findes allerede') } 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 }) }, } } })() Hvorfor har vi brug for Symfony Polyfill (... og hvorfor vi ikke bør) - The Codest
Codest
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Industrier
    • Fintech og bankvirksomhed
    • E-commerce
    • Adtech
    • Sundhedsteknologi
    • Produktion
    • Logistik
    • Biler
    • IOT
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
  • Om os
  • Serviceydelser
    • Udvikling af software
      • Frontend-udvikling
      • Backend-udvikling
    • Staff Augmentation
      • Frontend-udviklere
      • Backend-udviklere
      • Dataingeniører
      • Cloud-ingeniører
      • QA-ingeniører
      • Andet
    • Det rådgivende
      • Revision og rådgivning
  • Værdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leder af levering
  • Vores team
  • Casestudier
  • Ved hvordan
    • Blog
    • Møder
    • Webinarer
    • Ressourcer
Karriere Tag kontakt til os
Pil tilbage GÅ TILBAGE
2022-05-19
Udvikling af software

Hvorfor har vi brug for Symfony Polyfill (... og hvorfor vi ikke bør)

Codest

Sebastian Luczak

PHP Enhedsleder

I den følgende artikel forklarer vi, hvordan Symfony Polyfill fungerer, og hvordan det relaterer sig til Symfony-projekter. Vi vil også dykke dybere ned i den idé, som dette bibliotek forsøger at løse.

I de fleste moderne PHP projektervil du bemærke en stor afhængighed af Symfony Polyfill bibliotek. I denne artikel forklarer vi ikke kun, hvordan det fungerer, og hvordan det hænger sammen med Symfony-projektermen vi vil også gå dybere ind i ideen om det problem, den forsøger at løse.

En lille smule historie

PHP var i dårlig form i lang tid. Det var i 2005, at Andrei Zmievski startede en projekt for at bringe indbygget Unicode-understøttelse til PHP på grund af blandede anmeldelser og mange bekymringer om, at PHP går den forkerte vej. Udvikling af PHP 6.x blev påbegyndt. Men det blev aldrig færdigt - og det er en historie til en anden dag. 10 år senere, et sted mellem 2014 og 2015, startede Dmitry Stogov, Xinchen Hui og Nikita Popov phpng - projekt, der optimerede og refaktoriserede den interne Zend Engine, der bruges af PHP.

>_ PHP 7 blev født

Og for de seneste år, PHP vokser hurtigere end nogensinde og er nu i en stabil version 8.1.

billede

På grund af den hurtige udvikling af nye funktioner i sproget var det ikke kun udviklere, der skulle tilpasse sig disse ændringer, men også leverandører af infrastruktur og hostingtjenester.

For at sikre, at vi udviklere kan bruge de nyeste og bedste funktioner i vores elskede programmeringssprog Symfony Polyfill projekt blev født.

Symfony Polyfill og dens funktion

Dette projekt bagudporterer funktioner, der findes i den seneste PHP-versioner og giver kompatibilitetslag for nogle udvidelser og funktioner. Den er beregnet til at blive brugt, når portabilitet på tværs af PHP-versioner og udvidelser er ønsket.

Dette er en ren beskrivelse af Symfony Polyfill Men hvad betyder det?

På grund af den hurtige udvikling PHP sprog og ISP'ernes manglende softwaretilpasning har de fleste udviklere stået over for et simpelt valg:

  • Som udvikler laver jeg applikationer i en ældre version af PHP og kan ikke bruge de nyeste funktioner i sproget, eller
  • Som udvikler skaber jeg en moderne applikation ved hjælp af den nyeste version af PHP.

Men de var nødt til at bevare kompatibiliteten med andre værktøjer og tjenester, der allerede blev brugt både på Kode og infrastruktursiden - næsten altid med ældre versioner af PHPBehøver jeg at nævne, kære læser, den såkaldte 'fun factor' ved disse to løsninger?

For at lette vejen for udviklere skabte Open Source-fællesskabet i 2015 Den første stabile version af Polyfill er nummereret 1.0. Udviklernes liv blev lettere, og man kan sige, at Symfony Polyfill løste en lang række problemer som f.eks. kodeportabilitet mellem forskellige platforme, PHP-version forskelle og gjort refaktorering af applikationer og reduktion af teknologigæld meget nemmere.

Desværre er det ikke alle problemer, der kan løses med ét værktøj.

Problemer med at vedligeholde flere versioner af miljøet

For komplekse IT-projekterAt vedligeholde forskellige versioner af miljøer til forskellige kunder/brancher/afdelinger er en almindelig procedure. Dette resulterer i behovet for at udvikle mange forskellige grene af applikationer på samme tid, ofte med forskellige funktionelle krav og med deres egen trækkraft. Jeg har mange gange stået over for problemet med at vedligeholde den samme applikation til forskellige kunder på forskellige PHP5 / PHP7-miljøer, og de mange problemer i forbindelse med inkompatibiliteten af biblioteker eller deres afhængigheder for forskellige versioner er simpelthen uløselige ved kun at bruge Symfony Polyfill.

Kompetencegabet mellem medlemmerne af udviklingsteamet

På grund af den hurtige vækst i funktioner indbygget i PHPMange udviklere har ikke fulgt med i forandringens tempo. Mange af de funktioner, der tilbydes i højere versioner af PHP er nemme at opnå med eksterne biblioteker, eller udviklerne havde simpelthen ikke brug for de nye funktioner, som f.eks. PHP-fibre. Når du vælger hold medlemmer, er det en god idé at sikre, at færdighederne matcher, eller at kodeleveringsprocessen gøres mere konsekvent ved hjælp af statiske analyseværktøjer og tidlig opdagelse af versionsregressionsfejl.

Modvilje mod forandring

billede

Anvendelsen af nye sprogfunktioner er stadig ret lav, og PHP 5's andel på over 24% viser tydeligt, at En fjerdedel af PHP-projekterne kører versioner, der er lavere end 7.x, hvis sikkerhedsstøtte ophører den 6. december 2022. Det betyder, at i skrivende stund vil over 25% af PHP-baserede webprojekter være potentielt sårbare over for alle nye sikkerhedshuller inden årets udgang. "Hvis det virker, hvorfor skal vi så bekymre os"?

Konklusion

Vi bør tilpasse os sprogændringer så hurtigt som muligt og bruge de nyeste løsninger så hurtigt som muligt. Under en mulig migrering af et Legacy-projekt er det værd at medtage Symfony Polyfill som en hjælper og ved at bruge teknikker som Strangler Pattern og den for tiden moderne BDD-metodologi, som er fantastisk nem at anvende på Symfony-rammeværk. Så er vi virkelig tvunget til at bruge Symfony Polyfill?

PHP udvikling gratis rådgivning

Læs mere om det:

PHP udvikling: 5 ting, du bør vide

7 startups og scaleups, der vil ryste markedspladsen i 2022

PHP udvikling. Symfony-konsolkomponent - tips og tricks

Relaterede artikler

Udvikling af software

PHP 8.2: Hvad er nyt?

Den nye version af PHP er lige om hjørnet. Hvad er de nye implementeringer, du bør kende til? Tjek denne artikel for at finde ud af det!

Codest
Sebastian Luczak PHP Enhedsleder
Udvikling af software

PHP udvikling. Symfony-konsolkomponent - tips og tricks

Denne artikel er lavet med det formål at vise dig de mest nyttige og nyttige tips og tricks om Symfony Console Development.

Codest
Sebastian Luczak PHP Enhedsleder
Udvikling af software

Ansættelse af interne vs. eksterne udviklere

Ansætte internt eller eksternt? Det er et ultimativt dilemma! Find ud af fordelene ved at outsource eller opbygge et in-house team i den følgende artikel.

Codest
Grzegorz Rozmus Leder af Java-enhed

Tilmeld dig vores vidensbase, og hold dig opdateret om ekspertisen fra it-sektoren.

    Om os

    The Codest - International softwareudviklingsvirksomhed med tech-hubs i Polen.

    Storbritannien - Hovedkvarter

    • Kontor 303B, 182-184 High Street North E6 2JA
      London, England

    Polen - Lokale teknologiske knudepunkter

    • Fabryczna Office Park, Aleja
      Pokoju 18, 31-564 Kraków
    • Hjerneambassaden, Konstruktorska
      11, 02-673 Warszawa, Polen

      Codest

    • Hjem
    • Om os
    • Serviceydelser
    • Casestudier
    • Ved hvordan
    • Karriere
    • Ordbog

      Serviceydelser

    • Det rådgivende
    • Udvikling af software
    • Backend-udvikling
    • Frontend-udvikling
    • Staff Augmentation
    • Backend-udviklere
    • Cloud-ingeniører
    • Dataingeniører
    • Andet
    • QA-ingeniører

      Ressourcer

    • Fakta og myter om at samarbejde med en ekstern softwareudviklingspartner
    • Fra USA til Europa: Hvorfor beslutter amerikanske startups sig for at flytte til Europa?
    • Sammenligning af Tech Offshore-udviklingsknudepunkter: Tech Offshore Europa (Polen), ASEAN (Filippinerne), Eurasien (Tyrkiet)
    • Hvad er de største udfordringer for CTO'er og CIO'er?
    • Codest
    • Codest
    • Codest
    • Privacy policy
    • Vilkår for brug af hjemmesiden

    Copyright © 2025 af The Codest. Alle rettigheder forbeholdes.

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