Smysl „Hlavního“ namespace/ namespace Todo v „Píšeme první aplikaci“

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
kaniobal
Člen | 5
+
0
-

Ahoj,
v „Píšeme první aplikaci“ je používán namespace Todo ve kterém jsou např. všechny repository. Má to nějakou výhodu oproti tomu, když to vynechám, tj. žádný takový namespace nevytvořím, nepíšu pak na spoustě míst „use Nette“ atd. ?

Šaman
Člen | 2666
+
0
-

Myslím, že důvod je v tomto případě hlavně výukový a jinak ve větších aplikacích takový NS smysl má.
A to use Nette; má také smysl – ber to jako seznam všech používaných NS kromě aktuálního NS. Tak trochu to funguje i jako seznam balíčků, nebo závislostí, které ta třída má.

kaniobal
Člen | 5
+
0
-

Šaman napsal(a):

Myslím, že důvod je v tomto případě hlavně výukový a jinak ve větších aplikacích takový NS smysl má.
A to use Nette; má také smysl – ber to jako seznam všech používaných NS kromě aktuálního NS. Tak trochu to funguje i jako seznam balíčků, nebo závislostí, které ta třída má.

Díky za odpověď. Je mi jasné, že ve chvíli, kdy tam napíšu namespace Todo; musím taky napsat use ???, pokud chci ??? používat „krátce“. Šlo mi spíš o to, jaký smysl má ten namespace Todo závadět (jak píšeš u větších aplikací). Vyvolalo to ve mě dojem, že můžu napsat jednoduchou aplikaci bez toho, ale zároveň z nějakého důvodu taky pocit, že by to mohlo způsobit problémy. Zajímaly by mě právě ty potenciální problémy z absence tohoto namespace plynoucí.

David Matějka
Moderator | 6445
+
0
-
  1. podle namespace logicky oddelis jednotlive tridy do „kategorii“
  2. nemusis se bat kolize, ze uz takova trida existovat bude
Šaman
Člen | 2666
+
0
-

Nepoužívání NS u presenterů (resp. skoro nikde) problém u malé aplikace nezpůsobí. I ta kolize je nepravděpodobná, protože Nette i ostatní knihovny vesměs NS používají. Ale samozřejmě jak aplikace roste, tak roste i počet tříd a na nějakou kolizi můžeš narazit. Když si navykneš psát vše objektové do NS, tak je to jedině dobře.
A propo ještě nedávno ve stabilní verzi ani nešly jednoduše psát presentery do NS, to zavedla až vývojová větev 2.1 (a nevím, jestli se to neprobublalo i do nějaké pozdní stable, ale tuším, že spíš ne). Takže nejen, že to není povinnost, ale donedávna to ani nešlo. Ale od PHP 5.3 máme NS a je dobré je používat a zvyknout si na ně jako na best practise.
(Mimochodem ty kolize vznikaly často na Nette pro PHP 5.2 bez NS prefixu. Třídy User, Image a podobné měl už obsazený framework. Takže dobře, že NS jsou.)

Editoval Šaman (11. 10. 2013 17:57)