Guida Denominazione Spazio Utente

Guida Denominazione Spazio Utente

La seguente è una guida per come scegliere meglio i nomi per gli identificatori nel codice PHP dello spazio utente. Quando si scelgono i nomi per ogni codice che crea i simboli nel namespace globale, è importante prendere in considerazione le seguenti linee guida per evitare che le future versioni di PHP possano scontrarsi con i propri simboli.

Namespace globali

Ecco una panoramica di costrutti di codice che vanno nel namespace globale:

  • funzioni
  • classi
  • interfacce
  • costanti (non costanti di classe)
  • le variabili definite al di fuori delle/dei funzioni/metodi
Regole

L'elenco seguente fornisce una panoramica dei diritti che il progetto PHP riserva per sé, per la scelta di nomi per nuovi identificatori interni. La guida definitiva è l'ufficiale STANDARD DEL CODING:

  • PHP possiede lo spazio dei nomi di primo livello, ma cerca di trovare nomi descrittivi decenti ed evitare scontri evidenti.
  • I nomi delle funzioni utilizzano sottolineature tra le parole, mentre i nomi delle classi usano sia la regola camelCase che quella PascalCase.
  • PHP prefisserà eventuali simboli globali di un'estensione con il nome dell'estensione. (In passato, ci sono state numerose eccezioni a questa regola.) Esempi: curl_close mysql_query PREG_SPLIT_DELIM_CAPTURE new DOMDocument() strpos (esempio di un errore passato) new SplFileObject()
  • Iteratori ed eccezioni sono tuttavia semplicemente postfissati con "Iterator" e "Exception." Esempi: ArrayIterator LogicException
  • PHP riserva tutti i simboli che iniziano con __ come magici. Si consiglia di non creare simboli che iniziano con __ in PHP a meno che non si desideri utilizzare la funzionalità magica documentata. Esempi: __get() __autoload
Suggerimenti

Per scrivere codice che non invecchia mai, è raccomandato aggiungere il prefisso (o il suffisso) a tutto ciò che va nel namespace globale con un infrequente prefisso (o suffisso) di 3-4 lettere separato con una sottolineatura. Si raccomanda che al fine di evitare collisioni dei namespace con altro codice dello spazio utente che i progetti ricerchino prefissi (o suffissi) esistenti utilizzati in altri progetti e pubblicizzare il loro prefisso scelto (o suffisso) in modo appropriato. Esempio:

  • MyPx_someFunc()
  • Foo_Date
  • $asdf_dbh