window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = window if (w.LeadBooster) { console.warn('LeadBooster już istnieje') } 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 }) }, } } })() Dlaczego potrzebujemy Symfony Polyfill (... i dlaczego nie powinniśmy) - The Codest
The Codest
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Branże
    • Fintech i bankowość
    • E-commerce
    • Adtech
    • Healthtech
    • Produkcja
    • Logistyka
    • Motoryzacja
    • IOT
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
  • O nas
  • Nasze Usługi
    • Software Development
      • Frontend Development
      • Backend Development
    • Zespoły IT
      • Programiści frontendowi
      • Backend Dev
      • Inżynierowie danych
      • Inżynierowie rozwiązań chmurowych
      • Inżynierowie QA
      • Inne
    • Konsultacje IT
      • Audyt i doradztwo
  • Wartość dla
    • CEO
    • CTO
    • Delivery Managera
  • Nasz zespół
  • Case Studies
  • Nasze Know How
    • Blog
    • Meetups
    • Webinary
    • Raporty
Kariera Skontaktuj się z nami
Strzałka w tył WSTECZ
2022-05-19
Software Development

Dlaczego potrzebujemy Symfony Polyfill (... i dlaczego nie powinniśmy)?

The Codest

Sebastian Łuczak

Lider jednostki PHP

W poniższym artykule wyjaśnimy, jak działa Symfony Polyfill i jak odnosi się do projektów Symfony. Zagłębimy się również w ideę, którą ta biblioteka próbuje rozwiązać.

W większości nowoczesnych PHP projektówzauważysz dużą zależność od Symfony Polyfill biblioteka. W tym artykule wyjaśnimy nie tylko, jak to działa i jak odnosi się do Projekty Symfonyale także zagłębimy się w ideę problemu, który próbuje rozwiązać.

Trochę historii

PHP była w złym stanie przez długi czas. Był rok 2005, kiedy Andrei Zmievski rozpoczął projekt projekt aby zapewnić natywną obsługę Unicode dla PHP z powodu mieszanych recenzji i wielu obaw, że PHP idzie w złym kierunku. Rozwój PHP 6.x został uruchomiony. Ale nigdy nie został ukończony - i to jest historia na inny dzień. 10 lat później, gdzieś pomiędzy 2014 a 2015 rokiem, Dmitry Stogov, Xinchen Hui i Nikita Popov rozpoczęli prace nad phpng - który zoptymalizował i zrefaktoryzował wewnętrzny silnik Zend Engine używany przez PHP.

>_ Narodził się model PHP 7

I przez ostatnie lata, PHP rozwija się szybciej niż kiedykolwiek, obecnie w stabilnej wersji 8.1.

obraz

Ze względu na szybki rozwój nowych funkcji w języku, nie tylko programiści musieli dostosować się do tych zmian, ale także dostawcy infrastruktury i usług hostingowych.

Aby zapewnić nam, programistom, możliwość korzystania z najnowszych i najlepszych funkcji naszego ukochanego języka programowania Symfony Polyfill narodził się projekt.

Symfony Polyfill i jego funkcje

Ten projekt backportuje funkcje znalezione w najnowszej wersji Wersje PHP i zapewnia warstwy kompatybilności dla niektórych rozszerzeń i funkcji. Jest przeznaczony do stosowania, gdy przenośność między Wersje PHP i rozszerzenia są pożądane.

To jest czysty opis Symfony Polyfill ale co to oznacza?

Ze względu na szybki rozwój Język PHP i niestandardowe oprogramowanie dostawców usług internetowych, większość deweloperów stanęła przed prostym wyborem:

  • Jako programista tworzę aplikacje w starszej wersji PHP i nie może korzystać z najnowszych funkcji języka, lub
  • Jako programista tworzę nowoczesną aplikację przy użyciu najnowszej wersji PHP.

Musieli jednak zachować kompatybilność z innymi narzędziami i usługami już używanymi zarówno na kod i po stronie infrastruktury - prawie zawsze przy użyciu starszych wersji PHPCzy muszę wspominać, drogi czytelniku, o tak zwanym "czynniku zabawy" tych dwóch rozwiązań?

Aby ułatwić pracę deweloperom, społeczność Open Source w 2015 roku stworzyła pierwsza stabilna wersja Polyfill oznaczona numerem 1.0. Życie programistów stało się łatwiejsze i można powiedzieć, że Symfony Polyfill rozwiązał wiele problemów, takich jak przenośność kodu między różnymi platformami, Wersja PHP różnice i znacznie ułatwiły refaktoryzację aplikacji i zmniejszenie długu technologicznego.

Niestety, nie wszystkie problemy można rozwiązać za pomocą jednego narzędzia.

Problemy związane z utrzymywaniem wielu wersji środowiska

Dla złożonych Projekty ITUtrzymywanie różnych wersji środowisk dla różnych klientów/oddziałów/działów jest powszechną procedurą. Powoduje to konieczność rozwijania wielu różnych gałęzi aplikacji w tym samym czasie, często o różnych wymaganiach funkcjonalnych i z własną trakcją. Wielokrotnie spotykałem się z problemem utrzymywania tej samej aplikacji dla różnych klientów na różnych środowiskach PHP5 / PHP7 i mnogość problemów związanych z niekompatybilnością bibliotek lub ich zależności dla różnych wersji jest po prostu nie do rozwiązania przy użyciu jedynie Symfony Polyfill.

Luka w umiejętnościach między członkami zespołu programistów

Ze względu na szybki rozwój funkcji wbudowanych w PHPWielu deweloperów nie nadąża za tempem zmian. Wiele funkcji oferowanych w wyższych wersjach PHP są łatwe do osiągnięcia za pomocą zewnętrznych bibliotek lub deweloperzy po prostu nie potrzebowali nowych funkcji, takich jak Włókna PHP. Podczas wybierania zespół Dobrym pomysłem jest upewnienie się, że umiejętności są dopasowane lub że proces dostarczania kodu jest bardziej spójny dzięki narzędziom do analizy statycznej i wczesnemu wykrywaniu błędów regresji wersji.

Niechęć do zmian

obraz

Przyjęcie nowych funkcji językowych jest nadal dość niskie i PHP Udział 5 powyżej 24% wyraźnie pokazuje, że Jedna czwarta projektów PHP korzysta z wersji niższych niż 7.xktórego wsparcie bezpieczeństwa zakończy się 6 grudnia 2022 roku. Oznacza to, że w momencie pisania tego postu ponad 25% projektów internetowych opartych na PHP będzie potencjalnie podatnych na wszystkie nowe luki w zabezpieczeniach do końca roku. "Jeśli to działa, dlaczego mielibyśmy się tym przejmować"?

Wnioski

Powinniśmy jak najszybciej dostosowywać się do zmian językowych i korzystać z najnowszych rozwiązań. Podczas ewentualnej migracji projektu Legacy warto uwzględnić Symfony Polyfill jako pomocnika i wykorzystując techniki takie jak Strangler Pattern i modną obecnie metodologię BDD, która jest bajecznie łatwa do zastosowania w Framework Symfony. Czy naprawdę jesteśmy zmuszeni używać Symfony Polyfill?

Bezpłatne doradztwo w zakresie rozwoju PHP

Czytaj więcej:

PHP Development: 5 rzeczy, które powinieneś wiedzieć

7 startupów i scaleupów, które wstrząsną sceną rynkową w 2022 roku

PHP Development. Komponent konsoli Symfony - porady i wskazówki

Powiązane artykuły

Software Development

PHP 8.2: Co nowego?

Nowa wersja PHP jest tuż za rogiem. Jakie są nowe implementacje, o których powinieneś wiedzieć? Sprawdź ten artykuł, aby się dowiedzieć!

The Codest
Sebastian Łuczak Lider jednostki PHP
Software Development

PHP Development. Komponent konsoli Symfony - porady i wskazówki

Ten artykuł został stworzony w celu pokazania najbardziej przydatnych i przydatnych wskazówek i sztuczek dotyczących rozwoju konsoli Symfony.

The Codest
Sebastian Łuczak Lider jednostki PHP
Software Development

Zatrudnianie programistów wewnętrznych vs. zewnętrznych

Zatrudniać wewnętrznie czy zewnętrznie? To ostateczny dylemat! Poznaj zalety outsourcing lub budowania zespołu wewnętrznego w poniższym artykule.

The Codest
Grzegorz Rozmus Java Unit Leader

Subskrybuj naszą bazę wiedzy i bądź na bieżąco!

    O nas

    The Codest - Międzynarodowa firma programistyczna z centrami technologicznymi w Polsce.

    Wielka Brytania - siedziba główna

    • Office 303B, 182-184 High Street North E6 2JA
      Londyn, Anglia

    Polska - lokalne centra technologiczne

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

      The Codest

    • Strona główna
    • O nas
    • Nasze Usługi
    • Case Studies
    • Nasze Know How
    • Kariera
    • Słownik

      Nasze Usługi

    • Konsultacje IT
    • Software Development
    • Backend Development
    • Frontend Development
    • Zespoły IT
    • Backend Dev
    • Inżynierowie rozwiązań chmurowych
    • Inżynierowie danych
    • Inne
    • Inżynierowie QA

      Raporty

    • Fakty i mity na temat współpracy z zewnętrznym partnerem programistycznym
    • Z USA do Europy: Dlaczego amerykańskie startupy decydują się na relokację do Europy?
    • Porównanie centrów rozwoju Tech Offshore: Tech Offshore Europa (Polska), ASEAN (Filipiny), Eurazja (Turcja)
    • Jakie są największe wyzwania CTO i CIO?
    • The Codest
    • The Codest
    • The Codest
    • Privacy policy
    • Warunki korzystania z witryny

    Copyright © 2025 by The Codest. Wszelkie prawa zastrzeżone.

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