Magento 2: каков статус M2 в отношении соответствия PSR?


9

Итак, согласно официальной документации , я понимаю, что Magento 2 соответствует PSR-1 и PSR-2.

Мне интересно, совместим ли (или будет) Magento 2 с другими ?

  • PSR-3: интерфейс логгера
  • PSR-4: стандарт автозагрузки
  • PSR-6: интерфейс кеширования
  • PSR-7: интерфейс сообщений HTTP

Ответ, который я ожидаю, мог бы также рассмотреть проект PSR

Ответы:


11
  • PSR-3 уже используется (с Monolog в качестве реализации по умолчанию)
  • PSR-4 уже используется (через композитора)
  • PSR-6 не поддерживается, и я не знаю никаких планов сделать это, но есть реализация моста: https://github.com/EcomDev/magento-psr6-bridge
  • PSR-7 не поддерживается, и, учитывая текущее состояние контрактов на обслуживание запросов / ответов, вряд ли когда-либо будет.

    Я попытался построить PSR-7-совместимую реализацию запросов / ответов на недавнем хакатоне и обнаружил, что в настоящее время невозможно разумно заменить основную реализацию. Я говорил об этом с ведущим архитектором Антоном Крилом, и они знают об этом, но рефакторинг еще не запланирован и определенно не произойдет до Magento 2.4. В любом случае это не актуально для большинства пользователей.


О возможно актуальном проекте PSR:

  • PSR-11 (Container Interop) было бы неплохо увидеть, но я боюсь, что менеджер объектов Magento слишком специализирован. Опять же, я не знаю никаких планов, и, вероятно, слишком рано спекулировать. Обновление: PSR-11 был принят, но я все еще не верю, что это имеет смысл для Magento, за исключением случаев, когда они хотят поддерживать интеграцию не-Magento пакетов, которые поставляются с их собственным PSR-11-совместимым контейнером DI.
  • PSR-14 (Event Manager) также слишком нов, чтобы что-то сказать, но IMHO выиграет от Magento. Будем надеяться, что это не займет еще 5 лет, чтобы одобрить это. Обновление: никаких действий в отношении PSR-14 в списке рассылки и Github с 2016 года, поэтому, похоже, это не продвигается вперед после драмы PHP FIG в прошлом году, когда группа почти развалилась.

Я знал, что PSR-3 и 4 используются в M2, однако полностью ли M2 соответствует этим? Я почти уверен, что это не так, и это скорее "своего рода" соответствие.
Рафаэль на цифровом пианизме

3
отличный ответ, но как насчет PSR-8?
Дэвид Мэннерс

1
AFAIK все классы, которые используют регистратор, ожидают интерфейс Psr \ Log, так что это полностью совместимо. А поскольку используется автозагрузчик composer, соответствие PSR-4 предоставляется бесплатно.
Фабиан Шменглер

@DavidManners доступен только в качестве реализации сообщества;)
Фабиан Шменглер

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.