2009-11-30 4 views
27

Finora, ho visto molti convenzioni di denominazione diverse utilizzate per i namespace PHP. Alcune persone usano PascalCase\Just\Like\For\Classes, un certo uso underscored\lower_case\names, alcuni usano anche la convenzione Java per nomi dei pacchetti: com\domain\project\package.Esiste una convenzione di denominazione consolidata per gli spazi dei nomi PHP?

La domanda è molto semplice: una di queste (o altre) convenzioni può essere definita consolidata? Perché? Qualcuno di loro è raccomandato da autorità come Zend o gli sviluppatori di noti framework PHP?

risposta

25

Un PHP Standards Working Group composto da collaboratori di molti diversi framework PHP e progetti si avvicinò con la seguente proposta di adeguato utilizzo dello spazio dei nomi:

https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-0.md

+10

Questo fa tutto tranne che rispondere alla domanda. L'unica menzione della maiuscola che vedo è "I caratteri alfabetici nei nomi dei venditori, gli spazi dei nomi e i nomi delle classi possono essere di qualsiasi combinazione di lettere minuscole e maiuscole" – mpen

-1

Personalmente mi piace scrivere i nomi di classe camelcase superiore, attributi di classe e metodi inferiori attributi di cammello e classe preceduti da un trattino basso.

Altre variabili locali sto scrivendo anche un camelcase inferiore senza un prefisso di sottolineatura. Le istanze degli oggetti sono sempre scritte su camelcase ecc. Ecc. Non penso che ci sia un modo migliore, devi solo essere coerente con il tuo standard di codifica. Questo ti dà il vantaggio di leggere più velocemente attraverso il tuo codice e dovrebbe dare una visione più veloce di ciò che sta accadendo in quali codeline.

+0

-1 Condividere la vostra personale standard non contribuisce a rispondere questa domanda particolare Nessuna delle cose che menzioni fa riferimento a fonti che supportano la tua vista. In breve: concentrati sulla domanda quando pubblichi una risposta. –

+0

Anche se hai ragione, questa risposta è stata pubblicata oltre 7 anni fa. – Ben

+0

Vero è stato un po 'di tempo fa, non guardo mai quelle date. Incredibile se ci pensi: la domanda e le sue risposte attirano ancora visitatori e aiutano le persone a imparare. SO è una tale icona. Questo è anche il ragionamento alla base del mio voto: voti positivi per le risposte che aggiungono valore alla domanda specifica e voti negativi per coloro che non lo fanno. Ciò garantisce la qualità di SO: solo l'autore può cancellare (alcune eccezioni), ma la comunità decide. Lo trovo molto elegante davvero. Vorrei sottolineare che questo non è niente di personale: ti ho visto postare molte risposte di buona qualità. Penso solo che questo non è uno di loro :-) –

4

Non credo che si può dire che ci sia qualcosa ben consolidata, a questo punto, ma c'è un RFC discute per PEAR2: http://wiki.php.net/pear/rfc/pear2_naming_standards

La mia opinione è che gli spazi dei nomi sono una forma di variabili, e quindi dovrebbe seguire la stessa convenzione che fanno. Io preferisco genereally lowercase_underscore per variabili libere (al contrario di opporsi membri), in modo che il più naturale per il mio gusto sarebbe namespace\ClassName. Questo corrisponde anche alle convenzioni più diffuse da altre lingue. D'altra parte, lo stesso argomento potrebbe essere fatto per pseudo-namespace pre-5.3, ma qui lo standard de-facto sembra usare CamelCase.