Coding Tips: Namespaces

Coding Tips: Namespaces

Azi am avut o discuție cu cineva despre namespaces și interfețe. În PHP, dar se aplică în orice limbaj. Ce face fiecare, la ce folosește fiecare?

Namespaces

Cea mai bună analogie o reprezintă structura de directoare. Ai un fișier în src/foo/bar/baz.php ? Atunci vei folosi namespace foo/bar. De ce nu și src? Ei bine… pentru că se presupune că în src este root-ul, dar îl poți include și ăla fără probleme.

După ce specifici namespace-uri, te vei referi la clase (sau funcții!) în relativ la acel namespace. Doar că relativitatea asta nu merge decât într-o singură direcție: în jos (adică mai specific).

E.g. din new foo\bar\baz() va putea accesa foo\bar\foobar\foo() doar specificând foobar\foo(), dar nu va putea accesa și  foo\bar() specificând ceva de genul ..\bar(), ci va fi nevoie de calea completă: \foo\bar().

Cum structurezi fișierele? Am ajuns la concluzia – eu și restul lumii – că cel mai bine este ca namespacing-ul să reflecte structura de directoare cât mai bine.

E un pic confuz dacă nu încerci, dar odată înțeleasă treaba, e foarte utilă.

Mâine voi scrie despre interfețe.

Un Comentariu

Adaugă un comentariurăspuns pentru

Link-urile în context sunt binevenite. Comentariile fără nume/email valid sunt șterse.
PS: Comentariul NU este editabil.

Site-ul blog.iamntz.com utilizează cookie-uri. Continuarea navigării presupune acceptarea lor. Mai multe informații.

windows apple dropbox facebook twitter