window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', versjon: 2, } ;(function () { var w = vindu if (w.LeadBooster) { console.warn('LeadBooster finnes 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 trenger vi Symfony Polyfill (... og hvorfor vi ikke bør gjøre det) - The Codest
The Codest
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Industrier
    • Fintech og bankvirksomhet
    • E-commerce
    • Adtech
    • Helseteknologi
    • Produksjon
    • Logistikk
    • Bilindustrien
    • IOT
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
  • Om oss
  • Tjenester
    • Programvareutvikling
      • Frontend-utvikling
      • Backend-utvikling
    • Staff Augmentation
      • Frontend-utviklere
      • Backend-utviklere
      • Dataingeniører
      • Ingeniører i skyen
      • QA-ingeniører
      • Annet
    • Det rådgivende
      • Revisjon og rådgivning
  • Verdi for
    • ADMINISTRERENDE DIREKTØR
    • CTO
    • Leveransesjef
  • Vårt team
  • Casestudier
  • Vet hvordan
    • Blogg
    • Møter
    • Webinarer
    • Ressurser
Karriere Ta kontakt med oss
Pil tilbake GÅ TILBAKE
2022-05-19
Programvareutvikling

Hvorfor trenger vi Symfony Polyfill (... og hvorfor vi ikke bør gjøre det)

The Codest

Sebastian Luczak

PHP Enhetsleder

I den følgende artikkelen forklarer vi hvordan Symfony Polyfill fungerer og hvordan det er relatert til Symfony-prosjekter. Vi vil også dykke dypere inn i ideen som dette biblioteket forsøker å løse.

I de fleste moderne PHP prosjektervil du legge merke til en stor avhengighet av Symfony Polyfill bibliotek. I denne artikkelen forklarer vi ikke bare hvordan det fungerer, men også hvordan det er knyttet til Symfony-prosjektermen vi vil også gå dypere inn i ideen om problemet den forsøker å løse.

Litt historie

PHP var i dårlig forfatning i ganske lang tid. Det var i 2005 at Andrei Zmievski startet en prosjekt for å gi opprinnelig Unicode-støtte for PHP på grunn av blandede anmeldelser og mange bekymringer for at PHP går i feil retning. Utviklingen av PHP 6.x ble påbegynt. Men den ble aldri ferdig - og det er en historie for en annen dag. 10 år senere, et sted mellom 2014 og 2015, startet Dmitry Stogov, Xinchen Hui og Nikita Popov phpng - prosjekt som optimaliserte og refaktoriserte den interne Zend Engine som brukes av PHP.

>_ PHP 7 ble født

Og for de siste årene, PHP vokser raskere enn noensinne, og er nå i stabil versjon 8.1.

bilde

På grunn av den raske utviklingen av nye funksjoner i språket var det ikke bare utviklerne som måtte tilpasse seg endringene, men også leverandører av infrastruktur og hostingtjenester.

For å sikre at vi utviklere kan bruke de nyeste og beste funksjonene i vårt kjære programmeringsspråk Symfony Polyfill prosjektet ble født.

Symfony Polyfill og dens funksjon

Dette prosjektet tilbakeporterer funksjoner som finnes i den nyeste PHP-versjoner og tilbyr kompatibilitetslag for enkelte utvidelser og funksjoner. Den er ment å brukes når portabilitet på tvers av PHP-versjoner og utvidelser er ønskelig.

Dette er en ren beskrivelse av Symfony Polyfill Men hva betyr det?

På grunn av den raske utviklingen PHP språk og den utradisjonelle programvaretilpasningen hos Internett-leverandørene, har de fleste utviklere blitt stilt overfor et enkelt valg:

  • Som utvikler lager jeg applikasjoner i en eldre versjon av PHP og ikke kan bruke de nyeste funksjonene i språket, eller
  • Som utvikler lager jeg en moderne applikasjon ved hjelp av den nyeste versjonen av PHP.

Men de måtte opprettholde kompatibilitet med andre verktøy og tjenester som allerede var i bruk både på kode og infrastruktursiden - nesten alltid ved hjelp av eldre versjoner av PHPTrenger jeg å nevne, kjære leser, den såkalte "morsomhetsfaktoren" ved disse to løsningene?

For å gjøre det enklere for utviklere, utviklet Open Source-fellesskapet i 2015 den første stabile versjonen av Polyfill nummerert 1.0. Utviklernes liv ble enklere, og man kan si at Symfony Polyfill løste en rekke problemer, som for eksempel kodeportabilitet mellom ulike plattformer, PHP-versjon forskjeller, og gjorde det mye enklere å refaktorisere applikasjoner og redusere teknologigjelden.

Dessverre er det ikke alle problemer som kan løses med ett verktøy.

Problemer forbundet med å vedlikeholde flere versjoner av miljøet

For komplekse IT-prosjekterDet er vanlig å vedlikeholde ulike versjoner av miljøer for ulike kunder/bransjer/avdelinger. Dette resulterer i behovet for å utvikle mange forskjellige grener av applikasjoner samtidig, ofte med forskjellige funksjonelle krav og med sin egen trekkraft. Jeg har mange ganger møtt problemet med å vedlikeholde den samme applikasjonen for forskjellige kunder på forskjellige PHP5 / PHP7-miljøer, og de mange problemene knyttet til inkompatibiliteten til biblioteker eller deres avhengigheter for forskjellige versjoner er rett og slett uløselige ved å bare bruke Symfony Polyfill.

Kompetansegapet mellom medlemmene i utviklingsteamet

På grunn av den raske veksten av funksjoner innebygd i PHPhar mange utviklere ikke holdt tritt med utviklingen. Mange av funksjonene som tilbys i høyere versjoner av PHP er enkle å oppnå med eksterne biblioteker, eller utviklerne hadde rett og slett ikke behov for de nye funksjonene, som for eksempel PHP-fibre. Når du velger team er det en god idé å sørge for at kompetansen er tilpasset hverandre, eller at kodeleveranseprosessen gjøres mer konsistent ved hjelp av statiske analyseverktøy og tidlig oppdagelse av feil ved versjonsregresjon.

Motvilje mot endring

bilde

Bruken av nye språkfunksjoner er fortsatt ganske lav, og PHP 5s andel på over 24% viser tydelig at En fjerdedel av PHP-prosjektene kjører lavere versjoner enn 7.x, som vil få sikkerhetsstøtten terminert 6. desember 2022. Dette betyr at når dette innlegget skrives, vil over 25% av PHP-baserte webprosjekter være potensielt sårbare for alle nye sikkerhetshull innen utgangen av året. "Hvis det fungerer, hvorfor skal vi bry oss?"

Konklusjon

Vi bør tilpasse oss språkendringer så raskt som mulig og ta i bruk de nyeste løsningene så snart som mulig. Under en eventuell migrering av et Legacy-prosjekt er det verdt å inkludere Symfony Polyfill som et hjelpemiddel og ved hjelp av teknikker som Strangler Pattern og den for tiden moteriktige BDD-metodikken, som er fabelaktig enkel å bruke på Rammeverket Symfony. Så er vi virkelig tvunget til å bruke Symfony Polyfill?

PHP utvikling gratis rådgivning

Les mer om dette:

PHP Utvikling: 5 ting du bør vite

7 oppstartsbedrifter og vekstbedrifter som vil ryste markedsscenen i 2022

PHP Utvikling. Symfony-konsollkomponent - tips og triks

Relaterte artikler

Programvareutvikling

PHP 8.2: Hva er nytt?

Den nye versjonen av PHP er rett rundt hjørnet. Hvilke nye implementeringer bør du vite om? Sjekk denne artikkelen for å finne ut av det!

The Codest
Sebastian Luczak PHP Enhetsleder
Programvareutvikling

PHP Utvikling. Symfony-konsollkomponent - tips og triks

Denne artikkelen ble opprettet med sikte på å vise deg de mest nyttige og nyttige tipsene og triksene om Symfony Console Development.

The Codest
Sebastian Luczak PHP Enhetsleder
Programvareutvikling

Ansette interne vs. eksterne utviklere

Ansette internt eller eksternt? Det er det ultimate dilemmaet! I denne artikkelen kan du lese om fordelene ved å outsource eller bygge opp et internt team.

The Codest
Grzegorz Rozmus Leder for Java-enheten

Abonner på vår kunnskapsbase og hold deg oppdatert på ekspertisen fra IT-sektoren.

    Om oss

    The Codest - Internasjonalt programvareutviklingsselskap med teknologisentre i Polen.

    Storbritannia - Hovedkvarter

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

    Polen - Lokale teknologisentre

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

      The Codest

    • Hjem
    • Om oss
    • Tjenester
    • Casestudier
    • Vet hvordan
    • Karriere
    • Ordbok

      Tjenester

    • Det rådgivende
    • Programvareutvikling
    • Backend-utvikling
    • Frontend-utvikling
    • Staff Augmentation
    • Backend-utviklere
    • Ingeniører i skyen
    • Dataingeniører
    • Annet
    • QA-ingeniører

      Ressurser

    • Fakta og myter om samarbeid med en ekstern programvareutviklingspartner
    • Fra USA til Europa: Hvorfor velger amerikanske oppstartsbedrifter å flytte til Europa?
    • Sammenligning av Tech Offshore Development Hubs: Tech Offshore Europa (Polen), ASEAN (Filippinene), Eurasia (Tyrkia)
    • Hva er de største utfordringene for CTO-er og CIO-er?
    • The Codest
    • The Codest
    • The Codest
    • Retningslinjer for personver
    • Vilkår for bruk av nettstedet

    Opphavsrett © 2025 av The Codest. Alle rettigheter forbeholdt.

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