PHP'deki değişkenler için baskın adlandırma kuralı nedir: camelcase or undercores? [kapalı]


51

Mutabakata varmak için geliştirdikleri platformun konvansiyonunu izlemesi gerektiği görünüyor. Görmek:

Alt çizgi mi, camelcase mi?

Adlandırma kuralları: camelCase vs. underscore_case?

Ancak PHP, yöntemler ve işlevler için bile (örn mysqli::set_local_infile_default. PDOStatement::debugDumpParams) İçsel olarak herhangi bir sözleşmeyi (orada sürprizler yok) kesinlikle takip ediyor gibi görünmüyor ; ancak işlev adlarında alt çizgi baskın görünmektedir.

Ancak, bulamadığım şey şuydu: PHP'deki değişkenler için baskın adlandırma kuralı nedir?


Birini seç ve buna sadık kal. Ona sadık kaldığın hangisini seçeceğin önemli değil. Tablar vs boşlukları ile aynı.
yannis

2
Bağlantılı tartışmalarda geçerli olan görüşe şiddetle katılıyorum: biri sözleşmeyi takip etmeli. Bu yüzden sorunun kapsamını PHP ile sınırlandırdım. Ancak, ben orada olmadığını merak etmeye başlıyorum olan PHP baskın adlandırma kuralı.
sbichenko

5
Var değil, adlandırma kuralları, PHP'yi çalışmak için harika kılan bu küçük tutarsızlıklardan bir diğeridir. PSR, izlemeye değer olduğunu düşündüğüm tek çaba, ancak ... tamamen size bağlı. İlgili sorular: PHP için standart stil kılavuzları var mı? & Neden Bootstrap 3, camelCase'i kısa çizgi olarak değiştirir - daha okunur mu? .
yannis


Yanıtlar:


50

PHP'de kesin bir adlandırma kuralı yoktur ve çerçeveye göre farklılık gösterir:

Öyleyse: Çerçevenizin kullandığı her şeyi kullanın veya kendi adlandırma kuralınızı oluşturun.

Fonksiyon isimleri ve sınıf yöntemleri için En azından orada dikkate almak bir şey, ama bazı çerçeveler atın: PHP bu durumda duyarsız olduğu böylece, aTonalFunction()ve atonalFunction()aynı işleve hem aramalarıdır.


1
Methond isimlendirme argümanına karşı bir şey yok ama bu kesinlikle bir sözleşme değil. Zend Framework 2 , Doctrine 2 ve Symfony 2 gibi tüm modern çerçeveler ve kütüphaneler yöntem isimleri için camelCase kullanır.
Rudolph Gottesheim

@ RudolphGottesheim İyi nokta. Buna göre cevabı değiştirdim.
Kalıntı

1
İlginç. Buraya geldim, çünkü wordpress'in kodlama kurallarını ungainly olarak buldum. Şimdi görüyorum ki en azından ungainly demek istiyorlardı
Kirby,

14

On yıldan fazla bir süredir PHP ile kodlama yaparken, alt çizgiden camelCase'e bir değişiklik görebiliyorum. Özellikle Zend ve Symfony gibi daha büyük çerçeveler, camelCase üzerinde de alt çizgiyi yasaklamadıklarında da oluşur, ancak tüm çekirdek işlevi camelCase'dir.

Eski Typo3 şubesi gibi eski sistemlerde birçok alt çizgi çözümü görebilirsiniz (Typo3 Neo da camelCase olarak değiştirildi).

Ama kesinlikle herkes tarafından kullanılan kesin bir kural yok, sadece son birkaç yılda görebildiğim bu.


1

Bu, programcılara / geliştiricilere ve üzerinde çalıştıkları çerçeve veya açık kaynağa bağlıdır. Örneğin, Yii çerçevesinde, deve durumunun kullanılması tavsiye edilirken, Codeigniter çerçevesinde çoğu insan, alt çizgi içeren değişken isimleri izler. Kesin olan bir şey, hangi çerçeveyi kullandığınıza bakmaksızın, değişken adının anlaşılabilir ve tanımlanabilir olması gerektiğidir.


0

Şahsen, bu her iki şekilde de gidebilir. Bazı programcılar CamelCase'i yazma biçimini, bazıları ise altını çizmeyi tercih eder ... Bu nedenle böyle bir soruyu sormak, her programcının kendi görüşüne sahip olacağı için bir önemi yoktur. ..

Birinci durum:

Bir programlama ekibine katıldınız ve devam eden bir projeye katıldınız, örnek bir değişkenin verildiğini fark ettiniz:

$theString = "This is a camelcase example";

Ancak tercih ettiğiniz bir stiliniz var:

$the_string = "This is not a camelcase example"; 

Böyle bir durumda, deve tutmak için en iyisi olur.

İkinci durum:

Yalnız bir proje başlatmak istersiniz.

Bu tür bir durumda ... Sadece rahat hissettiğiniz şeye iniyor, kötü uygulamalara dikkat edin:

$theString = "This is a sample String"; 
$the_string = "This is another sample string within the same project"; 

Bu kolayca beklenmedik çıktılara neden olabilir .. Sadece akılda tutulması.


9
Bilginize, bahsettiğiniz şey PascalCase - camelCase küçük harf ile başlar.
John Weisz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.