The Codest
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Odvětví
    • Fintech a bankovnictví
    • E-commerce
    • Adtech
    • Healthtech
    • Výroba
    • Logistika
    • Automobilový průmysl
    • IOT
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
  • O nás
  • Služby
    • Vývoj softwaru
      • Vývoj frontendů
      • Vývoj backendu
    • Staff Augmentation
      • Vývojáři frontendů
      • Vývojáři backendu
      • Datoví inženýři
      • Cloudoví inženýři
      • Inženýři QA
      • Další
    • To Advisory
      • Audit a poradenství
  • Hodnota za
    • CEO
    • CTO
    • Manažer dodávek
  • Náš tým
  • Case Studies
  • Vědět jak
    • Blog
    • Setkání
    • Webové semináře
    • Zdroje
Kariéra Spojte se s námi
Šipka zpět ZPĚT
2022-05-19
Vývoj softwaru

Proč potřebujeme Symfony Polyfill (... a proč bychom neměli)

The Codest

Sebastian Luczak

PHP Vedoucí jednotky

V následujícím článku vysvětlíme, jak Symfony Polyfill funguje a jak souvisí s projekty Symfony. Také se hlouběji ponoříme do myšlenky, kterou se tato knihovna snaží řešit.

Ve většině moderních PHP projekty, všimnete si silné závislosti na příkazu Symfony Polyfill knihovna. V tomto článku si vysvětlíme nejen to, jak funguje a jak souvisí s Projekty Symfony, ale také se budeme hlouběji zabývat myšlenkou problému, který se snaží řešit.

Trocha historie

PHP byl dlouho ve špatném stavu. Bylo to v roce 2005, kdy Andrej Zmievski zahájil projekt přinést nativní podporu Unicode pro PHP kvůli smíšeným recenzím a mnoha obavám, že PHP se ubírá špatným směrem. Vývoj PHP 6.x byl spuštěn. Nikdy však nebyl dokončen - a to je příběh na jindy. O deset let později, někdy mezi lety 2014 a 2015, začali Dmitrij Stogov, Xinchen Hui a Nikita Popov s projektem phpng - projekt, který optimalizoval a refaktorizoval interní Zend Engine používaný systémem PHP.

>_ Zrodil se model PHP 7

A za poslední roky, PHP roste rychleji než kdykoli předtím a v současné době je ve stabilní verzi 8.1.

obrázek

Vzhledem k rychlému vývoji nových funkcí jazyka se těmto změnám museli přizpůsobit nejen vývojáři, ale také poskytovatelé infrastruktury a hostingových služeb.

Abychom my, vývojáři, mohli používat nejnovější a nejlepší funkce našeho milovaného programovacího jazyka. Symfony Polyfill vznikl projekt.

Symfony Polyfill a jeho funkce

Tento projekt backportuje funkce nalezené v nejnovějším Verze PHP a poskytuje vrstvy kompatibility pro některá rozšíření a funkce. Je určen k použití v případě přenositelnosti napříč zeměmi. Verze PHP a rozšíření je žádoucí.

Jedná se o čistý popis Symfony Polyfill ale co to znamená?

Vzhledem k rychle se vyvíjejícímu Jazyk PHP a nestandardní přizpůsobení softwaru poskytovatelů internetových služeb, většina vývojářů byla postavena před jednoduchou volbu:

  • Jako vývojář vytvářím aplikace ve starší verzi systému PHP a nemohou používat nejnovější funkce jazyka, nebo
  • Jako vývojář vytvářím moderní aplikaci pomocí nejnovější verze systému PHP.

Museli však zachovat kompatibilitu s ostatními nástroji a službami, které se již používají jak na kód a na straně infrastruktury - téměř vždy s použitím starších verzí PHP.Musím se, milý čtenáři, zmiňovat o takzvaném "faktoru zábavy" těchto dvou řešení?

Aby vývojářům usnadnila cestu, vytvořila komunita open source v roce 2015 první stabilní verze Polyfill s číslem 1.0. Život vývojářů se stal jednodušším a dá se říci, že Symfony Polyfill vyřešil řadu problémů, jako je například přenositelnost kódu mezi různými platformami, Verze PHP rozdíly a usnadnilo refaktorizaci aplikací a snížení technologického dluhu.

Bohužel ne všechny problémy lze vyřešit jedním nástrojem.

Problémy spojené s udržováním více verzí prostředí

Pro komplexní IT projekty, udržování různých verzí prostředí pro různé zákazníky/oddělení/odbory je běžný postup. To vede k nutnosti vyvíjet současně mnoho různých větví aplikací, často s různými funkčními požadavky a s vlastní trakcí. Mnohokrát jsem se setkal s problémem udržování stejné aplikace pro různé zákazníky na různých prostředích PHP5 / PHP7 a množství problémů souvisejících s nekompatibilitou knihoven nebo jejich závislostí pro různé verze je prostě neřešitelné pouze pomocí Symfony Polyfill.

Rozdíl v dovednostech členů vývojového týmu

Vzhledem k rychlému nárůstu funkcí zabudovaných do PHP, mnoho vývojářů neudrželo krok s tempem změn. Mnoho funkcí nabízených ve vyšších verzích PHP lze snadno dosáhnout pomocí externích knihoven, nebo vývojáři jednoduše nepotřebovali nové funkce, jako např. PHP Vlákna. Při výběru tým členů, je dobré zajistit, aby byly dovednosti sladěny nebo aby byl proces dodávání kódu konzistentnější díky nástrojům statické analýzy a včasné detekci chyb při regresi verzí.

Neochota ke změně

obrázek

Přijetí nových jazykových funkcí je stále poměrně nízké a PHP 5 je více než 24% podíl jasně ukazuje, že čtvrtina projektů PHP používá verze nižší než 7.x., jejíž bezpečnostní podpora bude ukončena 6. prosince 2022. To znamená, že v době psaní tohoto příspěvku bude více než 25% webových projektů založených na PHP do konce roku potenciálně zranitelných vůči všem novým bezpečnostním chybám. "Když to funguje, proč bychom se tím měli zabývat"?

Závěr

Měli bychom se co nejrychleji přizpůsobit jazykovým změnám a co nejdříve používat nejnovější řešení. Při případné migraci projektu Legacy je vhodné zahrnout i Symfony Polyfill jako pomocníka a s využitím technik, jako je Strangler Pattern a v současnosti módní metodika BDD, která se báječně snadno aplikuje na Rámec Symfony. Jsme tedy opravdu nuceni používat Symfony Polyfill?

PHP vývoj bezplatné poradenství

Přečtěte si více:

PHP Vývoj: 5 věcí, které byste měli vědět

7 startupů a scaleupů, které v roce 2022 otřesou tržní scénou

PHP Vývoj. Komponenta Symfony Console - Tipy a triky

Související články

Vývoj softwaru

PHP 8.2: Co je nového?

Nová verze PHP je již za rohem. O jakých nových implementacích byste měli vědět? Podívejte se na tento článek a zjistěte to!

The Codest
Sebastian Luczak PHP Vedoucí jednotky
Vývoj softwaru

PHP Vývoj. Komponenta Symfony Console - Tipy a triky

Tento článek byl vytvořen s cílem ukázat vám nejužitečnější a nejpoužívanější tipy a triky o vývoji konzole Symfony.

The Codest
Sebastian Luczak PHP Vedoucí jednotky
Vývoj softwaru

Najímání interních a externích vývojářů

Najímání zaměstnanců interně nebo externě? To je zásadní dilema! V následujícím článku se dozvíte, jaké jsou výhody outsourcing nebo budování interního týmu.

The Codest
Grzegorz Rozmus Vedoucí jednotky Java

Přihlaste se k odběru naší znalostní databáze a získejte aktuální informace o odborných znalostech z oblasti IT.

    O nás

    The Codest - Mezinárodní společnost zabývající se vývojem softwaru s technologickými centry v Polsku.

    Spojené království - ústředí

    • Kancelář 303B, 182-184 High Street North E6 2JA
      Londýn, Anglie

    Polsko - Místní technologická centra

    • Kancelářský park Fabryczna, Aleja
      Pokoju 18, 31-564 Krakov
    • Brain Embassy, Konstruktorska
      11, 02-673 Varšava, Polsko

      The Codest

    • Home
    • O nás
    • Služby
    • Case Studies
    • Vědět jak
    • Kariéra
    • Slovník

      Služby

    • To Advisory
    • Vývoj softwaru
    • Vývoj backendu
    • Vývoj frontendů
    • Staff Augmentation
    • Vývojáři backendu
    • Cloudoví inženýři
    • Datoví inženýři
    • Další
    • Inženýři QA

      Zdroje

    • Fakta a mýty o spolupráci s externím partnerem pro vývoj softwaru
    • Z USA do Evropy: Proč se americké startupy rozhodly přesídlit do Evropy?
    • Srovnání technických vývojových center v zahraničí: Tech Offshore Evropa (Polsko), ASEAN (Filipíny), Eurasie (Turecko)
    • Jaké jsou hlavní výzvy CTO a CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Website terms of use

    Copyright © 2026 by The Codest. Všechna práva vyhrazena.

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