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?

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.


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'.


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.


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.


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 .


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.

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.