Magento 2: jaki jest status M2 w zakresie zgodności z PSR?

9

Tak więc zgodnie z oficjalną dokumentacją rozumiem, że Magento 2 jest zgodny z PSR-1 i PSR-2.

Zastanawiam się, czy Magento 2 jest (lub będzie) zgodny z innymi ?

  • PSR-3: Interfejs rejestratora
  • PSR-4: Standard automatycznego ładowania
  • PSR-6: Interfejs buforowania
  • PSR-7: Interfejs wiadomości HTTP

Odpowiedź, której oczekuję, mogłaby również rozważyć projekt PSR

Raphael at Digital Pianism
źródło

Odpowiedzi:

11
  • PSR-3 jest już używany (z domyślną implementacją Monolog)
  • PSR-4 jest już używany (przez kompozytora)
  • PSR-6 nie jest obsługiwany i nie znam żadnych planów, ale istnieje implementacja mostka: https://github.com/EcomDev/magento-psr6-bridge
  • PSR-7 nie jest obsługiwany, a biorąc pod uwagę obecny stan umów serwisowych Żądanie / Odpowiedź, jest bardzo mało prawdopodobne.

    Próbowałem zbudować implementację żądania / odpowiedzi zgodną z PSR-7 na ostatnim Hackathonie i odkryłem, że obecnie nie można rozsądnie zastąpić podstawowej implementacji. Rozmawiałem o tym z głównym architektem Antonem Krilem i są tego świadomi, ale refaktoryzacja nie jest jeszcze planowana i na pewno nie nastąpi przed Magento 2.4. To i tak nie jest istotne dla większości użytkowników.


O potencjalnie odpowiednim projekcie PSR:

  • Miło byłoby zobaczyć PSR-11 (Container Interop), ale obawiam się, że menedżer obiektów Magento jest zbyt wyspecjalizowany. Znów nie znam żadnych planów i prawdopodobnie jest jeszcze za wcześnie, aby spekulować. Aktualizacja: PSR-11 został zaakceptowany, ale nadal nie uważam, że ma to sens dla Magento, z wyjątkiem sytuacji, gdy chcą wspierać integrację pakietów innych niż Magento, które są dostarczane z ich własnym pojemnikiem DI zgodnym z PSR-11.
  • PSR-14 (Event Manager) jest zbyt nowy, aby cokolwiek powiedzieć, ale Magento skorzystałby z niego IMHO. Mamy nadzieję, że zatwierdzenie tego nie potrwa jeszcze 5 lat. Aktualizacja: Brak aktywności dotyczącej PSR-14 na liście mailingowej i Githubie od 2016 roku, więc wydaje się, że nie posuwa się to naprzód od czasu dramatu PHP FIG w zeszłym roku, w którym grupa prawie się rozpadła.
Fabian Schmengler
źródło
Wiedziałem, że PSR-3 i 4 są używane w M2, ale czy M2 jest w pełni z nimi zgodny? Jestem prawie pewien, że nie jest to raczej „zgodność”.
Raphael w Digital Pianism
3
świetna odpowiedź, ale co z psr-8?
David Manners,
1
AFAIK wszystkie klasy korzystające z rejestratora oczekują interfejsu Psr \ Log, więc jest to w pełni zgodne. A ponieważ używany jest autoloader kompozytora, zgodność z PSR-4 jest bezpłatna.
Fabian Schmengler
@DavidManners dostępne tylko jako wdrożenie społeczności;)
Fabian Schmengler