Standar pengkodean Magento


40

Saya baru-baru ini mulai bekerja secara luas dengan Magentodan Kode sniffer , dan saya ingin tahu standar mana yang harus saya ikuti.

Saya mencoba standar pengkodean Zend , tetapi saya tidak ingin menggunakan batas garis 80, dan itu tidak digunakan dalam inti juga.

Setelah itu, saya mencoba standar CS2 , tetapi itu tidak berhasil karena _di berbagai fungsi, dan nama kelas, yang ada _di dalamnya, dan tidak memiliki ruang nama.

Jadi, apakah ada standar lain yang sesuai dengan kode inti 100%? Jika tidak, bukankah Magento harus memiliki standar pengkodean sendiri? Ini memiliki situs stackexchange sendiri, beberapa standar pengkodean yang didefinisikan dengan baik akan diterima untuk digunakan oleh pengembang ekstensi.

Jawaban:



18

Praktik terbaik Magento cukup bagus dijelaskan oleh Josh Pratt di sini . Dia menyarankan untuk mengadopsi dan mengikuti Standar Gaya Kode Zend dan saya hanya bisa bergabung dengannya.

The garis maksimal panjang bukan persyaratan yang ketat. Namun dari sudut pandang keterbacaan, garis yang terlalu panjang tidak dianjurkan.


2
Terima kasih, saya mengganti ruleset.xml ke 120 karakter yang diizinkan per baris, jadi saya tidak mendapatkan kesalahan sial dalam IDE saya :)
Vlad Preda

1
Berikut adalah aturan dari Magento 2: raw.github.com/magento/magento2/master/dev/tests/static/… . Word adalah kemungkinan besar mereka menggunakannya di Magento 1.x.
Bob Brodie

1
Tim, apakah Anda pikir kita harus menggunakan sniff kode Magento? magento.stackexchange.com/a/8743/41
kalenjordan

1
@BobBrodie - Saya mengelola Magento 1.x dan saya tidak mengetahui adanya perubahan yang datang ke Magento 1.x. Ini akan menjadi perubahan besar dan tidak perlu, menyebabkan perbedaan besar tanpa alasan. Standar pengkodean Magento 1 adalah ZF +, Magento 2 adalah PSR-1/2. Silakan lihat jawaban Zyava untuk sniffer "resmi".
Piotr Kaminski


11

Saya ingin menyampaikan bahwa kita harus menggunakan sniff kode Magento 2 sebagai standar untuk Magento 1.X dan 2.X: https://github.com/cobhimself/phpcs-magento-rules/blob/master/ ruleset.xml

Dan inilah intinya cermin dari aturan tersebut sebagai repositori mandiri: https://github.com/cobhimself/phpcs-magento-rules


1
Saya pribadi menggunakan: github.com/magento-ecg/coding-standard
B00MER

2
Ah panggilan yang bagus. Saya pikir tautan yang saya poskan direferensikan dalam diskusi gitub Magento 2 ... ada ide jika / bagaimana yang Anda posting berbeda? Ini tentu saja akun github yang lebih otoritatif.
kalenjordan

2

Ini posting adalah sedikit tua (2008) tapi saya kira bahwa itu masih berlaku:

Apakah Magento mengikuti standar pengkodean ZF? iya nih

Dengan beberapa pengecualian, seperti:

  • tag terbuka pendek diizinkan dalam template.
  • titik-titik penggabungan tidak tertutup dalam spasi.
  • lekukan untuk untuk garis panjang hard wraps harus selalu menjadi satu tab lembut ke depan.

Sunting Saat Tim menulis komentar, tidak ada tag terbuka pendek di templata inti Magento dan lebih baik tidak menggunakannya karena mereka tidak direkomendasikan (lihat di sini ).

Tapi saran saya untuk Anda ... Karena Anda menulis modul Anda sendiri, gunakan gaya pengkodean Anda sendiri. Dari pengalaman saya, Anda akan membuat lebih sedikit kesalahan saat menulis kode dengan gaya Anda sendiri, yang Anda kenal, daripada jika Anda mengikuti gaya pengkodean Magento suatu hari dan misalnya gaya pengkodean Wordpress berikutnya hanya karena Anda menulis modul untuk proyek situs web yang berbeda .


2
Saya sangat tidak setuju. Perluasan komunitas harus mudah dibaca oleh orang lain.
user487772

2
Dan saya tidak pernah melihat tag terbuka pendek di Magento.
user487772

1
Tempat tujuan. Karena saya sudah memiliki beberapa tahun pengalaman dengan pemrograman pada proyek yang berbeda dalam bahasa pemrograman yang berbeda pada saat yang sama saya tidak pernah mengalami masalah membaca kode terstruktur dengan baik tidak peduli gaya pengkodean tetapi ketika datang untuk dengan cepat beralih antara proyek dan menulis kode itu jauh lebih bermanfaat untuk memiliki gaya yang sama di seluruh kode Anda daripada mempertahankan kompatibilitas gaya pengkodean dengan orang lain di luar tim Anda.
Domen Vrankar

@DomenVrankar tidak menganggap gaya kode Anda terstruktur dengan baik dan dapat dibaca juga merupakan pendapat? Sedangkan tim di belakang orang-orang seperti Zend memiliki banyak orang membuat keputusan tentang apa gaya dan dikenal di seluruh dunia. Hanya makanan untuk dipikirkan ...
Tom Burman

Saya juga tidak setuju.
sv3n
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.