2008-12-12 12 views
7

Ho letto molti manuali di standard diffusi per progetti PHP open source.PHP - Denominazione di funzioni/variabili

Un sacco fa rispettare i caratteri di sottolineatura per gli spazi delle variabili e molto fa rispettare CamelCase.

Le funzioni e le variabili globali devono essere denominate in modo diverso rispetto ai metodi/proprietà delle classi?

So che la cosa più importante è la coerenza, ma mi piacerebbe sentire alcune riflessioni su questo.

Cosa raccomanderesti?

risposta

13

Trovo CamelCase un po 'più piacevole da digitare, perché trovo il trattino basso un po' imbarazzante da digitare.

Non utilizzare variabili globali.

Evito la codifica procedurale in PHP, trovo che OOP è più facile da mantenere le cose organizzate. Inoltre, PHP non ha abbastanza cose nel suo spazio dei nomi globale già?

In genere cerco di attenersi a:

  • Le classi sono StudlyCaps sostantivi singolare o plurale, a seconda dei casi: Item, , DB, Items.
  • variabili sono nomi minuscole, singolare o plurale a seconda di ciò che hanno: $column, $name
  • costanti sono sostantivi singolari maiuscoli: DEBUG, TYPE_FOO.
  • metodi sono camelCase, e iniziano con verbi singolari (get, perform, do), seguito da un sostantivo (singolare o plurale) descrive quello che opera su o restituisce (getThing(), getThings())

Dipende sicuramente su cosa stai codificando. Se sto codificando PHP o PEAR, io uso CamelCase. Se sto facendo Python/Django, io uso under_scores. Se sto scrivendo ELIS, uso i separatori tratteggiati.

+1

D'accordo, sono in procinto di apprendere OO e che cos'è una classe statica (per spostare tutti i miei formattatori di stringhe ecc. Dallo spazio dei nomi globale) – alex

+0

Non concordo, vedi [this] (http://stackoverflow.com/a/1557799/1870054), parlano delle variabili globali, non sempre sono cattive. – wener

0

Sì, la cosa più importante è la coerenza. Se sei lo sviluppatore solitario, segui un metodo. Se lavori con un team, parla con gli altri membri del team. Differenziare tra globali, funzioni/metodi e classi renderà la lettura del codice molto più semplice. Per alcune persone, CamelCase è più semplice dell'uso di _underlines, quindi il tuo team deve discutere delle opzioni e scegliere uno stile.

0

Nota: Io uso di sottolineatura per i miei nomi_tabelle MySQL, io uso UpperCamelCase per MySQL nomi dei campi:

Normalmente io uso $ lowerCamelCase per i nomi e le proprietà della classe variabile, ma se contiene il valore da un campo, Io uso il nome del campo $ UpperCamelCase, o se si tratta di una matrice di dati da una tabella, userò $ table_name. In questo modo posso facilmente grep per SomeField o some_table e trovare tutto ciò che fa riferimento ad esso.

Non è necessario utilizzare questo sistema esatto, ma la possibilità di cercare tutti i riferimenti a un campo o tabella è un enorme vantaggio.

2

In PHP, quasi tutte le funzioni native sono separate da underscore.La maggior parte degli esempi di codice PHP nella documentazione sono separati da underscore.

Nella maggior parte delle lingue penso che Camel o Pascal Casing siano più appropriati, ma penso che ci sia una chiara cronologia per l'utilizzo della separazione del carattere di sottolineatura in PHP.

0

Preferisco usare CamelCase, ma per coerenza nelle applicazioni più grandi, ho adottato la guida di stile di CodeIgniter.

Anche se non si utilizza il loro quadro, si può apprezzare il lavoro che è andato in definiscono stili chiare e complete: http://codeigniter.com/user_guide/general/styleguide.html

1

Zend Frameworks naming convention (che si basa su PEAR) è probabilmente il più vicino si arriva a uno standard nel mondo PHP. Personalmente, preferisco usare lowercase_underscore per i nomi di variabili, ma per lo più seguo principalmente la convenzione di ZF.

0

Il mio obiettivo, a prescindere dal formato specifico del nome, è aggiungere ulteriori informazioni. Il nome migliora la comprensione del codice e/o esprime qualcosa di importante?

Se lo fa, ottimo, allora ci sei riuscito.

Se il nome non aggiunge nulla, perché ti sei preoccupato di nominarlo?

ho scritto su questo all'inizio di questa settimana:

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

0

Mi raccomando di leggere la PEAR Coding Standards. Poichè PEAR è il PHP Extension e Application Repository ufficiale, può essere considerato lo standard ufficiale di codifica della lingua.