PHP - Fonksiyon / değişken adlandırma

8 Cevap php

Ben açık kaynak PHP projeleri için popüler standartları kılavuzları bir sürü okudum.

Bir çok değişken alanlar için alt çizgi uygulamak, ve bir çok camelCase uygulamak.

Genel işlevler ve değişkenler farklı sınıf yöntemleri / özellikleri adlı olmalıdır?

Ben en önemli şey tutarlılık olduğunu biliyorum, ama bu bazı düşüncelerini duymak isterim.

Ne tavsiye edersiniz?

8 Cevap

Ben yazın biraz garip çizgi bulmak, çünkü türüne camelCase biraz daha hoş buluyorum.

Global değişkenleri kullanmayın.

PHP prosedürel kodlama önlemek, ben cepten şeyler organize tutmak için kolay bulabilirsiniz. Küresel ad zaten var yanında, PHP yeterli şeyler var değil mi?

Genellikle sopa deneyin:

  • Sınıflar StudlyCaps tekil veya çoğul isimler olan, uygun bir şekilde: Item, Row, DB, Items.
  • Değişkenler tuttukları ne bağlı tekil veya çoğul küçük isimler vardır: $column, $name
  • Sabitleri tekil harf isimler şunlardır: DEBUG, TYPE_FOO.
  • Yöntemler camelCase, ve tekil fiiller (get, perform, do), bu veya çalışır anlatan (tekil veya çoğul) bir ismin ardından başlar döner (getThing(), getThings())

Bu kesinlikle sizin için kodlama şeye bağlıdır. Ben PHP veya PEAR kodlama yaşıyorum, ben camelCase kullanın. Python / Django yapıyorum, ben under_scores kullanın. Ben elisp yazıyorum, ben kesik-ayırıcılar kullanın.

PHP'nin kendisi, hemen hemen her yerel işlev çizgi ayrılır. Belgelerinde PHP kod örnekleri çoğu çizgi ayrılır.

Çoğu dilde Ben Camel veya Pascal Gövde daha uygun olduğunu düşünüyorum, ama net tarih PHP çizgi ayırma kullanmak için olduğunu düşünüyorum.

Zend Frameworks naming convention (Hangi ARMUT dayanmaktadır) muhtemelen PHP dünyada bir standart gelecek yakın. Şahsen, değişken adları için lowercase_underscore kullanmayı tercih, ama aksi takdirde çoğunlukla ZF uylaşımını.

Ben PEAR Coding Standards okuma tavsiye ederim. PEAR resmi PHP uzantısı ve Uygulama Deposu olduğundan, bu dilin resmi kodlama standart kabul edilebilir.

Evet en önemli şey tutarlılık. Eğer yalnız geliştirici iseniz, bir yöntem ile sopa. Eğer bir ekiple çalışıyorsanız, diğer ekip üyeleri ile konuşun. Globallerinin, fonksiyonlar / metotlar ve sınıflar arasındaki ayırt kodlarını okumak çok daha kolay hale getirecek. Bazı insanlar için camelCase yüzden takım seçeneklerini tartışmak ve bir stil almak gerekiyor using_underlines daha kolaydır.

Note: Ben MySQL alan adları için UpperCamelCase kullanmak, benim MySQL table_names için çizgi kullanın:

Normalde değişken isimleri ve sınıf özellikleri için $ lowerCamelCase kullanmak, ama bir alandan değer içeriyorsa, ben $ UpperCamelCase alan adını kullanın veya bir tablodan veri bir dizi ise, ben $ Tablo_ismi kullanacağız. Bu şekilde kolayca grep SomeField veya some_table için ve her şeyi ona atıfta bulabilirsiniz.

Siz tam bu sistemi kullanmak zorunda, ama bir alana veya tabloya tüm başvuruları için arama edememek büyük bir yarar olduğunu bilmiyorum.

Ben camelCase kullanmayı tercih için kullanılan, ancak daha büyük uygulamalarda tutarlılık uğruna, ben CodeIgniter'ın stil rehberi benimsedik.

Onların çerçeve kullanmak bile, sen tanımlayan açık ve kapsamlı stilleri içine gitti çalışmalarını takdir edebilirsiniz: http://codeigniter.com/user_guide/general/styleguide.html

Amacım - adı ne olursa olsun belirli bir biçim - daha fazla bilgi ekliyor. Isim kodu ve / veya önemli ekspres şey anlayışlarını geliştirmek mi?

Harika, yok eğer, bunu da başardım.

İsmin bir şey katmıyor, neden bunu adlandırma zahmet ettin?

Ben önce bu hafta, bu biri yazdı:

http://caseysoftware.com/blog/useful-naming-conventions