PHP FIG
Die PHP Framework Interoperability Group (kurz: PHP FIG) ist eine PHP-Anwendergruppe, die aus einem Konsens heraus Empfehlungen erarbeitet und veröffentlicht, wie PHP-Quellcode geschrieben werden sollte, damit er von der Gemeinschaft lesbar und verständlich, sowie zu anderen Komponenten und Programmbibliotheken aus dem digitalen Ökosystem von PHP kompatibel und interoperabel ist. Die Gruppe nennt eine Empfehlung PHP Standard Recommendation, oder kurz PSR.
Hintergrund
BearbeitenDie Erarbeitung von Empfehlungen, die sich als technischer Standard etablieren, ist eine der ältesten Traditionen der Netzkultur. Unter der Reihe Request for Comments veröffentlicht die Internet Engineering Task Force seit 1969 solche Empfehlungen, unter anderem für Protokolle, Dateiformate, Datenformate und für die Art und Weise, wie Empfehlungen formuliert und zu verstehen sein sollen: die PHP FIG nimmt in jeder ihrer bisher veröffentlichten PSRs Bezug auf den Standard RFC 2119[1] und der Entstehungsprozess von PSRs ist von dem RFC-Verfahren abgeleitet.
Die Gruppe gründete sich auf der Fachkonferenz „php|tek 2009“ in Chicago und bestand zunächst aus fünf Mitgliedern, bevor sich weitere fünfzehn Interessenten um eine Mitgliedschaft bewarben und per Abstimmung zugelassen wurden.
Ziele
BearbeitenDie Gruppe wurde ursprünglich gegründet, damit sich Repräsentanten von PHP-Projekten und -Produkten untereinander über Gemeinsamkeiten ihrer Projekte sowie mögliche Wege der Zusammenarbeit austauschen konnten. Dementsprechend betrachtet die FIG ihre eigenen Mitglieder als Zielgruppe,[2] wurde sich jedoch im Laufe ihres Bestehens der Beobachtung durch, und ihren Einfluss auf die PHP-Gemeinschaft bewusst, da ihre Empfehlungen über die Gruppe hinaus Anwendung fanden. Die FIG lehnt es jedoch ab, ihre Empfehlungen als Vorschrift verstehen zu lassen, wie Programmierer ihre Anwendung zu schreiben hätten. Dementsprechend finden selbst unter den Mitgliedern der FIG nicht alle PSRs durchgehend Anwendung.
Mitglieder
BearbeitenDerzeit (Stand 2022) sind zwölf Personen Mitglied im sogenannten Core Committee, sowie 36 PHP-Projekte Mitglieder der FIG.[3] Die Gruppe wird durch drei Sekretäre koordiniert, die in einem Auswahlprozess von der Community selbst ernannt wurden. Alle natürlichen Personen, die in der FIG Mitglied sind und waren, sowie die meisten Repräsentanten der Projekte in der Gruppe haben einen Twitter-Account. Kein Mitglied ist als Hauptentwickler bei PHP tätig.
Nur Mitglieder des Core Committees sowie die Repräsentanten der Projekte haben Stimmrechte, jedoch dürfen alle Mitglieder der Anwendergruppe die Entwürfe der Empfehlungen beeinflussen, Vorschläge machen und kommentieren.
Einige bedeutende PHP-Projekte wie Doctrine, Symfony und Laravel, waren früher Mitglieder der Gruppe und haben die FIG bis 2018 wieder verlassen.
Projekt | Kurzbeschreibung |
---|---|
AzuraCast | Verwaltungssoftware für Web Radio |
CakePHP | Framework |
Composer | Abhängigkeitsverwaltung |
Concrete CMS | Content-Management-System |
Contao Open Source CMS | Content-Management-System |
eZ Publish | Content-Management-System |
Horde | Groupware Framework |
IBM i Toolkit | SDK für die Interoperabilität mit IBM Mainframes |
AMP (früher „Icicle“) | Framework für nebenläufige Ausführung von PHP-Software |
Jackalope | PHP-Implementierung des Java Content Repository-Standards |
Joomla | Content-Management-System |
Laminas Project | ehemals Zend Framework; Framework |
Lithium | Micro-Framework |
Magento | eCommerce-Lösung |
PEAR | Abhängigkeitsverwaltung |
Phalcon | Framework (als PHP-Erweiterung) |
Phing | Software Building |
phpBB | Betriebssoftware für Internetforen |
phpDocumentor | Software-Dokumentationswerkzeug |
PHPixie | Framework |
Pimcore | Produktinformationssystem |
PrestaShop | eCommerce-Lösung |
PyroCMS | Content-Management-System |
ReactPHP | Framework für ereignisgesteuerte Architekturen |
Revive Adserver | Adserver |
Sculpin | Generator für statische Webseiten |
Slim | Micro-Framework |
SilverStripe | Content-Management-System |
Stash | Programmbibliothek für das Caching |
Stormpath PHP SDK | PHP-Anbindung zur cloud-basierten Identitätslösung von Okta Inc. |
SugarCRM | Lösung für das Customer-Relationship-Management |
Typo3 | Content-Management-System |
Flow / Neos | Content-Management-System und CMS-Framework |
Wikibase / Semantic MediaWiki | Wiki und Wiki-Framework |
Yii Framework | Framework |
Zikula | Framework |
Standards
BearbeitenDie Empfehlungen, die die Gruppe erarbeitet, erstrecken sich über alle Bereiche der PHP-Anwendung, das heißt, alle Bereiche der Entwicklung von Anwendungen in PHP. Von Methodiken wie Codierungsstil, über Interfaces, bis hin zu kompletten Komponenten wie einem standardisierten Autoloader in Quellcode (PSR-4) wurden bereits zahlreiche Empfehlungen verabschiedet. Einige PSRs sind inzwischen durch neuere PSRs abgelöst worden, während andere sich noch im Entwurf befinden oder in der Entwurfsphase aufgegeben (abandoned) wurden.
Wie Empfehlungen im Rahmen der FIG entstehen, regelt die Gruppe in ihrem „PSR Workflow“.[4]
Rezeption
BearbeitenFrühere Mitglieder der FIG kritisieren, dass sich die Gruppe von ihrem eigentlichen Ziel, Interoperabilität zwischen PHP-Frameworks zu schaffen, zu weit entfernt habe.[5] Fabien Potencier, der Gründer und Hauptautor des Symfony Frameworks, kritisierte, dass Standards wie PSR-7 und PSR-14 bereits technische Grundlagen für „dogmatische“ (opinionated) Frameworks beschreiben und nicht mehr die für Interoperabilität notwendige Neutralität besitzen würden, die für frühere Empfehlungen prägend war.[6] Aus diesen Gründen habe Symfony die FIG verlassen.
Einige Beobachter der FIG äußern, dass die Gruppe ihre Ziele erreicht habe und die „großen Mitspieler“ nun die Empfehlungen umsetzen würden.[7]
Aufgrund ihrer Bedeutung im PHP-Ökosystem sind Kenntnisse der wesentlichen PSRs gelegentlich Thema von Bewerbungsgesprächen für PHP-Entwickler.[8]
Weblinks
BearbeitenEinzelnachweise
Bearbeiten- ↑ RFC – Key words for use in RFCs to Indicate Requirement Levels. März 1997 (englisch).
- ↑ Frequently Asked Questions. In: php-fig.org. Abgerufen am 18. April 2022 (englisch).
- ↑ Personnel. In: php-fig.org. 16. März 2022, archiviert vom (nicht mehr online verfügbar) am 16. März 2022; abgerufen am 18. April 2022. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ PSR Workflow. In: php-fig.org. Abgerufen am 18. April 2022 (englisch).
- ↑ Amrata Joshi: Symfony leaves PHP-FIG, the framework interoperability group. 21. November 2018, abgerufen am 18. April 2022 (amerikanisches Englisch).
- ↑ Fabien Potencier: PHP-FIG **was** a great way to create a common ground for PHP projects, **interoperability-first** #php. In: twitter.com. 24. Oktober 2021, archiviert vom (nicht mehr online verfügbar) am 24. Oktober 2021; abgerufen am 18. April 2022. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ PHP-FIG: is effective today?: PHP. 18. April 2022, archiviert vom (nicht mehr online verfügbar) am 18. April 2022; abgerufen am 18. April 2022. Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.
- ↑ 25 PHP Interview Questions and Answers You Should Know. In: arc.dev. Abgerufen am 18. April 2022 (englisch).