Scriptorama.nl

Header image showing a keyboard, mouse, laptop and books on design patterns

Userland Naming Guide van PHP

Meeste PHP developers zullen ongetwijfeld de coding standards kennen van PEAR. Een onderdeel van coding standards is de naamgeving van variabelen, functies en classes. Sinds kort kent de officiele PHP manual ook een Userland Naming Guide.

The following is a guide for how to best choose names for identifiers in PHP userland code. When choosing names for any code that creates symbols in the global namespace it is important to take into account the following guide lines to prevent future version of PHP to clash with userland code.

Een belangrijke regel is:

PHP owns the top-level namespace but tries to find decent descriptive names and avoid any obvious clashes.

Dit was wel het geval bij de release van PHP 5.1. Er werd een nieuwe class geintroduceerd genaamd 'Date'. PHP kent geen namespaces waardoor er een conflict ontstond met PEAR::Date, omdat beide classes 'Date' heten. De nieuwe class werd onmiddelijk eruit gehaald bij de release van PHP 5.1.1.

Native date class is withdrawn to prevent namespace conflict with PEAR's date package.

Bij de introductie van PHP6 zal er ondersteuning zijn voor namespaces. Tot die tijd kun je beter de Userland Naming Guide volgen.

Reageer ook!

Dit is niets nieuws natuurlijk. Ontwikkelaars zitten al jaren te wachten op namespaces in PHP.

Inderdaad. Het voorbeeld van Date geeft eigenlijk al aan hoe groot de vraag ernaar is. Ik ben zelf geen voorstander van PEAR's naamgeving voor classes, geef mij maar de namespaces.

Ik ben uberhaupt geen voorstander van PEAR...
Design-technisch hoort het onsamenhangende PEAR naar mijn mening niet standaard in PHP geintegreerd te worden.

"Design-technisch hoort het onsamenhangende PEAR naar mijn mening niet standaard in PHP geintegreerd te worden."

Bravo.

Leave a comment
Line and paragraph breaks automatic, e-mail address never displayed, HTML allowed: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>