window.pipedriveLeadboosterConfig = { base: 'leadbooster-chat.pipedrive.com', companyId: 11580370, playbookUuid: '22236db1-6d50-40c4-b48f-8b11262155be', version: 2, } ;(function () { var w = Fenster if (w.LeadBooster) { console.warn('LeadBooster existiert bereits') } 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 }) }, } } })() Warum brauchen wir Symfony Polyfill (... und warum wir es nicht brauchen) - The Codest
Der Codest
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Branchen
    • Fintech & Bankwesen
    • E-commerce
    • Adtech
    • Gesundheitstechnik
    • Herstellung
    • Logistik
    • Automobilindustrie
    • IOT
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
  • Über uns
  • Dienstleistungen
    • Software-Entwicklung
      • Frontend-Softwareentwicklung
      • Backend-Softwareentwicklung
    • Staff Augmentation
      • Frontend-Entwickler
      • Backend-Entwickler
      • Daten-Ingenieure
      • Cloud-Ingenieure
      • QS-Ingenieure
      • Andere
    • IT-Beratung
      • Prüfung und Beratung
  • Wert für
    • CEO
    • CTO
    • Delivery Manager
  • Unser Team
  • Fallstudien
  • Gewusst wie
    • Blog
    • Begegnungen
    • Webinare
    • Ressourcen
Karriere Kontakt aufnehmen
Pfeil zurück ZURÜCK
2022-05-19
Software-Entwicklung

Warum brauchen wir Symfony Polyfill (... und warum wir es nicht brauchen)

Der Codest

Sebastian Luczak

PHP Einheitsführer

Im folgenden Artikel erklären wir, wie Symfony Polyfill funktioniert und wie es sich auf Symfony-Projekte bezieht. Wir werden auch tiefer in die Idee eintauchen, die diese Bibliothek zu lösen versucht.

In den meisten modernen PHP Projektewerden Sie feststellen, dass eine starke Abhängigkeit von der Symfony Polyfill Bibliothek. In diesem Artikel werden wir nicht nur erklären, wie sie funktioniert und wie sie sich auf Symfony-Projekteaber wir werden auch die Idee des Problems, das es zu lösen versucht, näher beleuchten.

Ein wenig Geschichte

PHP war lange Zeit in einem schlechten Zustand. Es war 2005, als Andrei Zmievski ein Projekt um die native Unicode-Unterstützung für PHP aufgrund gemischter Kritiken und vieler Bedenken, dass PHP geht in die falsche Richtung. Entwicklung von PHP 6.x begonnen. Aber es wurde nie fertiggestellt - aber das ist eine Geschichte für einen anderen Tag. 10 Jahre später, irgendwo zwischen 2014 und 2015, begannen Dmitry Stogov, Xinchen Hui und Nikita Popov phpng - Projekt, das die interne Zend-Engine optimiert und überarbeitet hat, die von PHP.

>_ Die PHP 7 wurde geboren

Und in den vergangenen Jahren, PHP wächst schneller als je zuvor und hat derzeit die stabile Version 8.1.

Bild

Aufgrund der raschen Entwicklung neuer Funktionen in der Sprache mussten sich nicht nur die Entwickler an diese Änderungen anpassen, sondern auch die Anbieter von Infrastruktur- und Hostingdiensten.

Um sicherzustellen, dass wir, die Entwickler, die neuesten und besten Funktionen unserer geliebten Programmiersprache nutzen können Symfony Polyfill wurde das Projekt geboren.

Symfony Polyfill und seine Funktion

Dieses Projekt portiert Funktionen aus der neuesten PHP-Versionen und bietet Kompatibilitätsschichten für einige Erweiterungen und Funktionen. Es soll verwendet werden, wenn die Übertragbarkeit zwischen PHP-Versionen und Erweiterungen ist erwünscht.

Dies ist eine reine Beschreibung von Symfony Polyfill aber was bedeutet das?

Aufgrund der sich rasch entwickelnden PHP Sprache und die nicht mehr zeitgemäße Softwareanpassung der ISPs haben die meisten Entwickler vor eine einfache Wahl gestellt:

  • Als Entwickler erstelle ich Anwendungen in einer älteren Version von PHP und nicht die neuesten Funktionen der Sprache nutzen können, oder
  • Als Entwickler erstelle ich eine moderne Anwendung unter Verwendung der neuesten Version von PHP.

Sie mussten jedoch die Kompatibilität mit anderen Werkzeugen und Diensten wahren, die bereits sowohl auf dem Code und der Infrastruktur - fast immer mit älteren Versionen von PHPMuss ich, lieber Leser, den so genannten "Spaßfaktor" dieser beiden Lösungen erwähnen?

Um den Entwicklern den Weg zu erleichtern, hat die Open-Source-Gemeinschaft im Jahr 2015 die erste stabile Version von Polyfill mit der Nummer 1.0. Das Leben der Entwickler wurde einfacher, und man könnte sagen, dass Symfony Polyfill eine Vielzahl von Problemen wie die Code-Portabilität zwischen verschiedenen Plattformen gelöst hat, PHP-Version Unterschiede und erleichterte das Refactoring von Anwendungen und den Abbau von technologischen Schulden.

Leider können nicht alle Probleme mit einem einzigen Werkzeug gelöst werden.

Probleme im Zusammenhang mit der Pflege mehrerer Versionen der Umgebung

Für komplexe IT-ProjekteDie Pflege verschiedener Versionen von Umgebungen für verschiedene Kunden/Branchen/Abteilungen ist ein gängiges Verfahren. Daraus ergibt sich die Notwendigkeit, viele verschiedene Zweige von Anwendungen gleichzeitig zu entwickeln, oft mit unterschiedlichen funktionalen Anforderungen und mit eigener Zugkraft. Ich bin schon oft mit dem Problem konfrontiert worden, dieselbe Anwendung für verschiedene Kunden auf verschiedenen PHP5 / PHP7-Umgebungen zu pflegen, und die Vielzahl von Problemen im Zusammenhang mit der Inkompatibilität von Bibliotheken oder deren Abhängigkeiten für verschiedene Versionen ist einfach unlösbar, wenn man nur Symfony Polyfill.

Das Qualifikationsgefälle zwischen den Mitgliedern des Entwicklungsteams

Aufgrund der rasanten Zunahme von Funktionen, die in PHPViele Entwickler haben mit dem Tempo der Veränderungen nicht Schritt gehalten. Viele der Funktionen, die in höheren Versionen von PHP mit externen Bibliotheken leicht zu erreichen sind, oder die Entwickler die neuen Funktionen einfach nicht benötigten, wie z. B. PHP Fasern. Bei der Auswahl Team Mitglieder ist es eine gute Idee, dafür zu sorgen, dass die Fähigkeiten aufeinander abgestimmt sind oder dass der Codebereitstellungsprozess durch statische Analysewerkzeuge und die frühzeitige Erkennung von Versionsregressionsfehlern konsistenter gestaltet wird.

Abneigung gegen Veränderungen

Bild

Die Übernahme neuer Sprachfunktionen ist noch recht gering und PHP 5 über 24% zeigt deutlich, dass in einem Viertel der PHP-Projekte werden Versionen unter 7.x eingesetztdessen Sicherheitsunterstützung am 6. Dezember 2022 ausläuft. Das bedeutet, dass zum Zeitpunkt der Abfassung dieses Beitrags über 25% der PHP-basierten Webprojekte bis zum Ende des Jahres potenziell für alle neuen Sicherheitslücken anfällig sein werden. "Wenn es funktioniert, warum sollten wir uns die Mühe machen"?

Schlussfolgerung

Wir sollten uns so schnell wie möglich an Sprachänderungen anpassen und so schnell wie möglich die neuesten Lösungen verwenden. Bei einer möglichen Migration eines Legacy-Projekts lohnt es sich, Folgendes zu berücksichtigen Symfony Polyfill als Hilfsmittel und unter Verwendung von Techniken wie dem Strangler-Pattern und der derzeit in Mode befindlichen BDD-Methodik, die sich fabelhaft einfach auf die Symfony-Framework. Sind wir also wirklich gezwungen, die Symfony Polyfill?

PHP Entwicklung kostenlose Beratung

Lesen Sie mehr:

PHP Entwicklung: 5 Dinge, die Sie wissen sollten

7 Startups & Scaleups, die 2022 die Marktplatz-Szene erschüttern werden

PHP Entwicklung. Symfony Konsolenkomponente - Tipps & Tricks

Ähnliche Artikel

Software-Entwicklung

PHP 8.2: Was ist neu?

Die neue Version von PHP steht vor der Tür. Was sind die neuen Implementierungen, über die Sie Bescheid wissen sollten? Lesen Sie diesen Artikel, um es herauszufinden!

Der Codest
Sebastian Luczak PHP Einheitsführer
Software-Entwicklung

PHP Entwicklung. Symfony Konsolen-Komponente - Tipps & Tricks

Dieser Artikel wurde mit dem Ziel erstellt, Ihnen die nützlichsten und abrufbarsten Tipps und Tricks über Symfony Console Development zu zeigen.

Der Codest
Sebastian Luczak PHP Einheitsführer
Software-Entwicklung

Einstellung von internen vs. externen Entwicklern

Internes oder externes Personal einstellen? Das ist ein ultimatives Dilemma! Im folgenden Artikel erfahren Sie mehr über die Vorteile des Outsourcings oder des Aufbaus eines internen Teams.

Der Codest
Grzegorz Rozmus Leiter der Java-Abteilung

Abonnieren Sie unsere Wissensdatenbank und bleiben Sie auf dem Laufenden über das Fachwissen aus dem IT-Sektor.

    Über uns

    The Codest - Internationales Software-Unternehmen mit technischen Zentren in Polen.

    Vereinigtes Königreich - Hauptsitz

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

    Polen - Lokale Tech-Hubs

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

      Der Codest

    • Startseite
    • Über uns
    • Dienstleistungen
    • Fallstudien
    • Gewusst wie
    • Karriere
    • Wörterbuch

      Dienstleistungen

    • IT-Beratung
    • Software-Entwicklung
    • Backend-Softwareentwicklung
    • Frontend-Softwareentwicklung
    • Staff Augmentation
    • Backend-Entwickler
    • Cloud-Ingenieure
    • Daten-Ingenieure
    • Andere
    • QS-Ingenieure

      Ressourcen

    • Fakten und Mythen über die Zusammenarbeit mit einem externen Softwareentwicklungspartner
    • Aus den USA nach Europa: Warum entscheiden sich amerikanische Start-ups für eine Verlagerung nach Europa?
    • Tech Offshore Development Hubs im Vergleich: Tech Offshore Europa (Polen), ASEAN (Philippinen), Eurasien (Türkei)
    • Was sind die größten Herausforderungen für CTOs und CIOs?
    • Der Codest
    • Der Codest
    • Der Codest
    • Privacy policy
    • Website terms of use

    Urheberrecht © 2025 von The Codest. Alle Rechte vorbehalten.

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