Magento 2: apa status M2 terkait kepatuhan PSR?

9

Jadi menurut dokumentasi resmi , saya mengerti bahwa Magento 2 sesuai dengan PSR-1 dan PSR-2.

Saya ingin tahu apakah Magento 2 (atau akan) sesuai dengan yang lain ?

  • PSR-3: Antarmuka Logger
  • PSR-4: Standar Autoloading
  • PSR-6: Antarmuka Caching
  • PSR-7: Antarmuka Pesan HTTP

Jawaban yang saya harapkan juga bisa mempertimbangkan draft PSR

Raphael di Digital Pianism
sumber

Jawaban:

11
  • PSR-3 sudah digunakan (dengan Monolog sebagai implementasi default)
  • PSR-4 sudah digunakan (via komposer)
  • PSR-6 tidak didukung dan saya tahu tidak ada rencana untuk melakukannya, tetapi ada implementasi jembatan: https://github.com/EcomDev/magento-psr6-bridge
  • PSR-7 tidak didukung, dan mengingat kondisi saat ini dari kontrak layanan Permintaan / Respons sangat tidak mungkin terjadi.

    Saya mencoba untuk membangun implementasi Request / Response yang kompatibel dengan PSR-7 pada Hackathon baru-baru ini dan menemukan bahwa saat ini mustahil untuk secara waras mengganti implementasi inti. Saya berbicara dengan Arsitek Utama Anton Kril tentang hal itu dan mereka sadar akan hal ini, tetapi refactoring belum direncanakan dan pasti tidak akan terjadi sebelum Magento 2.4. Itu tidak relevan untuk sebagian besar pengguna.


Tentang draf PSR yang mungkin relevan:

  • PSR-11 (Container Interop) akan menyenangkan untuk dilihat tetapi saya khawatir manajer objek Magento terlalu khusus. Sekali lagi, saya tahu tidak ada rencana dan mungkin terlalu dini untuk berspekulasi. Pembaruan: PSR-11 telah diterima tetapi saya masih tidak percaya bahwa itu masuk akal untuk Magento, kecuali jika mereka ingin mendukung integrasi paket non-Magento yang datang dengan wadah DI mereka sendiri yang kompatibel dengan PSR-11.
  • PSR-14 (Manajer Acara) juga terlalu baru untuk mengatakan apa pun kecuali Magento akan mendapat manfaat darinya IMHO. Semoga saja tidak perlu 5 tahun lagi untuk mendapatkan persetujuan ini. Pembaruan: Tidak ada aktivitas tentang PSR-14 di milis dan Github sejak 2016, jadi ini sepertinya tidak bergerak maju sejak drama PHP FIG tahun lalu di mana grup tersebut hampir berantakan.
Fabian Schmengler
sumber
Saya sadar bahwa PSR-3 dan 4 digunakan dalam M2 namun apakah M2 sepenuhnya sesuai dengan itu? Saya cukup yakin itu bukan dan lebih dari "kindof" kepatuhan.
Raphael di Digital Pianism
3
jawaban yang bagus tapi bagaimana dengan psr-8?
David Manners
1
AFAIK semua kelas yang menggunakan logger, mengharapkan antarmuka Psr \ Log, jadi itu sepenuhnya sesuai. Dan karena autoloader komposer digunakan, kepatuhan PSR-4 gratis.
Fabian Schmengler
@DavidManners hanya tersedia sebagai implementasi komunitas;)
Fabian Schmengler