Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Metoda "Ustaw domyślną przestrzeń nazw"
Forum PHP.pl > Forum > PHP > Object-oriented programming
trzczy
Dałem się w ciągnąć w rozkminę warstwy modelu na SO: http://stackoverflow.com/questions/5863870...ructured-in-mvc

Miałbym takie pytanie: jak by mogła wyglądać definicja funkcji setDefaultNameSpace, użytej w tym fragmencie kodu:

  1. $serviceFactory->setDefaultNamespace('Application//Service');

W ogóle ciekawi mnie takie zadanie: "Ustaw domyślną przestrzeń nazw". Normalne zastosowanie namespace ogarniam, tylko chodziłoby o to ustalanie domyślnej namespace za pomocą metody.
Z góry dziękuję
com
to jest fabryka, wiec normalnie ustawia property na to co dostaje w parametrze wink.gif
trzczy
Ma to coś wspólnego z namespace? Z ustawieniem przestrzeni nazw? Bo gdyby nie słowo namespace w nazwie tej metody, to by była dla mnie prosta sprawa.

edit: W sumie to, co jest w parametrze to jest jakby ścieżka folderów, bo ma ukośniki jak w ścieżkach folderów. Więc chyba to jednak nie ma nic wspólnego z namespace.
Pyton_000
Pewnie chodzi o to że ustawia się namespace dla klas ładowanych w Fabryce.
com
dokładnie tka jak napisał Pyton_000, bo skąd fabryka ma wiedzieć w jakiej przestrzeni są te pliki, to jest uniwersalna klasa nie zależy ona od tej konkretnej implementacji.
trzczy
Gdyby chodziło o ustalenie namespace dla klas, to jak by wyglądała taka metoda, która pobiera z parametru ścieżkę namespace i ustawia ją jako "defaultową" dla klasy, z której buduje obiekt?
com
no tak jak normalnie zwykły setter
  1. class example
  2. {
  3. private $namespace;
  4. function setNamespace($namespace)
  5. {
  6. $this->namespace = $namespace;
  7. }
  8. }
Pyton_000
I tworzenie:

  1. public function create() {
  2. $class = $this->namespace . '\\CustomClass';
  3. return new $class;
  4. }
trzczy
Rozumiem. Zatem, jeśli dana przestrzeń nazw by była uwzględniona w autoloaderze, to ta metoda setDefaultNameSpace by była niepotrzebna?
com
można to zupełnie inaczej rozwiązać np użyć composera i autoloading z psr-4, tam jest ustawiana, żeby można było fabrykę zrobić jako reużywalny kod wink.gif
trzczy
Dzięki za bardzo pomocne odpowiedzi.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.