PHP FIG
# 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

Die 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 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

Die 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, 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

Derzeit (Stand 2022) sind zwölf Personen Mitglied im sogenannten Core Committee, sowie 36 PHP-Projekte Mitglieder der FIG. 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.
Liste der Projekte mit einer Mitgliedschaft bei der FIG :
| 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

Die 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“.

## Rezeption

Frühere Mitglieder der FIG kritisieren, dass sich die Gruppe von ihrem eigentlichen Ziel, Interoperabilität zwischen PHP-Frameworks zu schaffen, zu weit entfernt habe. 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. 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.
Aufgrund ihrer Bedeutung im PHP-Ökosystem sind Kenntnisse der wesentlichen PSRs gelegentlich Thema von Bewerbungsgesprächen für PHP-Entwickler.