Magento 2: Wie ist der Status von M2 in Bezug auf die PSR-Konformität?


9

So nach der offiziellen Dokumentation verstehe ich, dass Magento 2 PSR-1 und PSR-2 kompatibel ist.

Ich frage mich, ob Magento 2 mit den anderen kompatibel ist (oder sein wird) .

  • PSR-3: Logger-Schnittstelle
  • PSR-4: Autoloading Standard
  • PSR-6: Caching-Schnittstelle
  • PSR-7: HTTP-Nachrichtenschnittstelle

Die Antwort, die ich erwarte, könnte auch den Entwurf des PSR berücksichtigen

Antworten:


11
  • PSR-3 wird bereits verwendet (mit Monolog als Standardimplementierung)
  • PSR-4 wird bereits verwendet (via Composer)
  • PSR-6 wird nicht unterstützt und ich kenne keine Pläne dafür, aber es gibt eine Bridge-Implementierung: https://github.com/EcomDev/magento-psr6-bridge
  • PSR-7 wird nicht unterstützt, und angesichts des aktuellen Status der Anforderungs- / Antwort-Serviceverträge ist dies höchst unwahrscheinlich.

    Ich habe versucht, eine PSR-7-kompatible Request / Response-Implementierung auf einem kürzlich durchgeführten Hackathon zu erstellen, und festgestellt, dass es derzeit unmöglich ist, die Kernimplementierung ordnungsgemäß zu ersetzen. Ich habe mit dem leitenden Architekten Anton Kril darüber gesprochen und sie sind sich dessen bewusst, aber das Refactoring ist noch nicht geplant und wird definitiv nicht vor Magento 2.4 stattfinden. Es ist für die meisten Benutzer sowieso nicht relevant.


Über möglicherweise relevante PSR-Entwürfe:

  • PSR-11 (Container Interop) wäre schön zu sehen, aber ich befürchte, dass der Magento-Objektmanager zu spezialisiert ist. Auch hier kenne ich keine Pläne und es ist wahrscheinlich zu früh, um zu spekulieren. Update: PSR-11 wurde akzeptiert, aber ich glaube immer noch nicht, dass es für Magento sinnvoll ist, außer wenn sie die Integration von Nicht-Magento-Paketen unterstützen möchten, die mit ihrem eigenen PSR-11-kompatiblen DI-Container geliefert werden.
  • PSR-14 (Event Manager) ist auch zu neu, um etwas zu sagen, aber Magento würde meiner Meinung nach davon profitieren. Hoffen wir, dass es keine weiteren 5 Jahre dauert, bis dies genehmigt wird. Update: Keine Aktivitäten in Bezug auf PSR-14 auf der Mailingliste und Github seit 2016, daher scheint sich dies seit dem PHP FIG-Drama im letzten Jahr, in dem die Gruppe fast auseinanderfiel, nicht weiterzuentwickeln.

Mir war bewusst, dass PSR-3 und 4 in M2 verwendet werden. Ist M2 jedoch vollständig mit diesen kompatibel? Ich bin mir ziemlich sicher, dass dies nicht der Fall ist und eher eine "Art" Konformität darstellt.
Raphael bei Digital Pianism

3
tolle Antwort, aber was ist mit psr-8?
David Manners

1
AFAIK Alle Klassen, die den Logger verwenden, erwarten eine Psr \ Log-Schnittstelle, sodass diese vollständig kompatibel ist. Und da der Composer-Autoloader verwendet wird, ist die PSR-4-Konformität kostenlos.
Fabian Schmengler

@ DavidManners nur als Community-Implementierung verfügbar;)
Fabian Schmengler

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.