Konvensi penamaan apa yang Anda gunakan untuk kelas php? [Tutup]

8

Saya sangat suka menggunakan ClassNamesdan memberNamessebagai konvensi tetapi saya tidak yakin bagaimana saya akan menamai file yang berisi kelas.

Saya suka membuat kelas saya didefinisikan dalam file dengan nama yang sama persis dengan kelas. Tapi saya juga suka membuat file php semua huruf kecil. Jadi saya berkonflik.

Jika saya telah kelas yang disebut ProductGroupharus yang didefinisikan dalam ProductGroup.php, productgroup.phpatau product_group.php?

Saya tahu tidak ada jawaban yang benar, jadi saya mencari apa yang paling umum atau pendapat Anda tentang mana yang harus digunakan .. mana yang Anda gunakan?

JD Isaacks
sumber

Jawaban:

6

Di tempat kerja kami menggunakan garis bawah sebagai pembatas folder dan memberi nama file persis sama dengan path. Autoloader sangat sederhana, hanya perlu mengganti _ dengan / dan menambahkan '.php' di akhir. ProjectName_Models_ProductGroup () akan selalu berada di ProjectName / Models / ProductGroup.php. Itu bisa digunakan untuk beberapa nama kelas yang sangat panjang, tetapi tidak terlalu penting dengan IDE.

Anda bisa menggunakan konvensi yang sama, tetapi jalankan strtolower () sebelum memasukkan file.

Asa Ayers
sumber
3
+1 Ini adalah konvensi yang diadopsi oleh Zend Framework dan tampaknya akan diterima secara luas.
bogeymin
maksud Anda, nama kelas sama persis dengan path file?
systemovich
@ Geoffery, Ya persis sama kecuali garis miring diganti dengan garis bawah. Semua server kami berjalan di Linux sehingga permodalan penting dan itu membuat autoloader yang sangat sederhana.
Asa Ayers
1

Saya biasanya akan menempatkan kelas 'ProductGroup' ke dalam file bernama 'ProductGroupClass.php', biasanya disimpan dalam struktur direktori 'kelas'.

GrandmasterB
sumber
11
Saya pikir itu berlebihan. Menambahkan kelas ke file di direktori yang disebut kelas tampaknya terlalu berlebihan
Matt Ellen
1

Saya mencoba memberi nama file saya sama dengan nama kelas tetapi dalam huruf kecil. Ini membantu dengan autoloadfungsi juga.

Josh K.
sumber
1

Saya menggunakan versi modifikasi dari PEAR Coding Standards . Seperti yang disebutkan sebelumnya ini membantu dengan autoloading, dan saya menemukan ini terlihat sedikit lebih bersih dan lebih mudah untuk membaca IMO. Pada dasarnya apa yang terjadi adalah memutuskan apa yang cocok untuk Anda dan berpegang teguh pada itu. Selama semua kode terlihat sama, pada akhirnya sisanya akan jatuh ke tempatnya.

Kristen Selatan
sumber
0

Saya memiliki file kelas yang menjangkau aplikasi ("perpustakaan"), dan file kelas khusus untuk aplikasi. Perpustakaan mendapatkan awalan untuk meminimalkan potensi konflik dengan kode pihak ketiga yang mungkin kami sertakan, yaitu. di "My Sweet Company" kita mungkin menggunakan nama kelas "MSCPerson" daripada "Person."

Kami menggunakan CamelCasenama kelas, dan file kelas diberi nama CamelCase.class.php. Sebagian besar file kelas memiliki kelas tunggal dan pengecualian khusus kelas apa pun, tetapi aturan ini tidak ditetapkan. Sangat menyenangkan memiliki file kelas tunggal untuk gffitur vim .

Annika Backstrom
sumber
0

Secara pribadi, saya menyimpan kelas bernama MyClassdalam file bernama MyClass.class.php, di dalam classesdirektori.
Fungsi pengisian otomatis saya semudah itu

function __autoload($class) {
    require_once("/classes/".$class.".class.php");
}

Tidak ada struktur di dalam classesdirektori, tetapi dalam proyek saya ini tidak pernah menjadi masalah. Jika Anda perlu memiliki subdirektori, metode yang disarankan oleh Asa Ayers sangat praktis dan mudah diterapkan.

Davide Gualano
sumber