PHP Velho Oeste 2024

Sfaturi

Pentru a scrie cod-sursă valid în viitor se recomandă să nu plasați multe variabile, funcții sau clase în spațiul de nume global. Aceasta va preveni conflictele de nume cu codul părților terțe, precum și posibile adăugări viitoare la limbă.

O metodă răspândită de a evita conflictele de nume ale funcțiilor și claselor este de a le adăuga la spațiul lor de nume (namespace) dedicat.

<?php

namespace MyProject;

function 
my_function() {
    return 
true;
}

\
MyProject\my_function();

Totuși este nevoie să urmăriți spațiile de nume deja utilizate, dar odată ce decideți asupra unui spațiu de nume pe care îl veți utiliza, puteți adăuga la el toate clasaele și funcțiile fără să vă mai gândiți la conflicte.

Se consideră o practică bună limitarea numărului de variabile adăugate la circumstanța globală (global scope) pentru a preveni conflictele de nume cu codul părților terțe.

Notă: Circumstanțele variabilelor

Datorită regulilor de atribuire a circumstanțelor în PHP variabilele definite în interiorul funcțiilor și metodelor nu se află în circumstanța globală și deci nu pot conflicta cu alte variabile definite în circumstanța globală.

add a note add a note

User Contributed Notes 4 notes

up
27
willian at gt44 dot com
10 years ago
I don't think it makes sense nowadays. We have namespaces now!
up
1
kanone at rogers dot com
9 years ago
The javascript community has developed a strong cultural bias against adding anything to the global namespace.  (See e.g. Addy Osmani's article on Essential JavaScript Namespacing Patterns .)  Namespaces have been available in JS for many years and are ubiquitous.  There is also a great deal of freely available tutorial material for the interested reader.
up
1
mestresan AT gmail DOT com
9 years ago
Even though nowadays we do have namespaces, for the cases in which the user chooses to not use namespaces theses tips should be followed.
up
1
earnie at users dot sourceforge dot net
10 years ago
@willian at gt44 dot com: What about clashes of the namespace?  It is still good advice to check for previously used names before assigning anything to the global namespace.
To Top