Magento 2: qual é o status do M2 em relação à conformidade com PSR?

9

Portanto, de acordo com a documentação oficial , entendo que o Magento 2 é compatível com PSR-1 e PSR-2.

Gostaria de saber se Magento 2 é (ou será) compatível com os outros ?

  • PSR-3: Interface do registrador
  • PSR-4: padrão de carregamento automático
  • PSR-6: interface de cache
  • PSR-7: Interface de Mensagem HTTP

A resposta que eu espero também pode considerar o rascunho do PSR

Raphael na Digital Pianism
fonte

Respostas:

11
  • O PSR-3 já está sendo usado (com o Monolog como implementação padrão)
  • O PSR-4 já está sendo usado (via compositor)
  • O PSR-6 não é suportado e não conheço planos para fazê-lo, mas há uma implementação de ponte: https://github.com/EcomDev/magento-psr6-bridge
  • O PSR-7 não é suportado e, dado o estado atual dos contratos de serviço de Solicitação / Resposta, é altamente improvável que seja.

    Tentei criar uma implementação de solicitação / resposta compatível com PSR-7 em um Hackathon recente e descobri que atualmente é impossível substituir de maneira segura a implementação principal. Conversei com o arquiteto-chefe Anton Kril sobre isso e eles estão cientes disso, mas a refatoração ainda não está planejada e definitivamente não acontecerá antes do Magento 2.4. De qualquer maneira, não é relevante para a maioria dos usuários.


Sobre um rascunho PSR possivelmente relevante:

  • O PSR-11 (Container Interop) seria bom de ver, mas temo que o gerenciador de objetos Magento seja muito especializado. Novamente, não conheço nenhum plano e provavelmente é muito cedo para especular. Atualização: O PSR-11 foi aceito, mas ainda não acredito que faça sentido para o Magento, exceto se eles desejam oferecer suporte à integração de pacotes não Magento que vêm com seu próprio contêiner DI compatível com PSR-11.
  • O PSR-14 (Event Manager) também é novo demais para dizer qualquer coisa, mas o Magento se beneficiaria com isso IMHO. Espero que não demore mais cinco anos para que isso seja aprovado. Atualização: nenhuma atividade referente ao PSR-14 na lista de discussão e ao Github desde 2016, portanto isso não parece avançar desde o drama do PHP FIG no ano passado, onde o grupo quase desmoronou.
Fabian Schmengler
fonte
Eu sabia que o PSR-3 e 4 são usados ​​no M2, mas o M2 é totalmente compatível com eles? Tenho certeza de que não é e é mais uma espécie de conformidade.
Raphael no Digital Pianism
3
ótima resposta, mas e o psr-8?
David Manners
11
AFAIK todas as classes que usam o logger, esperam uma interface Psr \ Log, para que seja totalmente compatível. E como o carregador automático do compositor é usado, a conformidade com o PSR-4 é gratuita.
Fabian Schmengler
@DavidManners só está disponível como aplicação comunidade;)
Fabian Schmengler