trzczy
16.01.2016, 17:47:53
Dałem się w ciągnąć w rozkminę warstwy modelu na SO:
http://stackoverflow.com/questions/5863870...ructured-in-mvcMiałbym takie pytanie: jak by mogła wyglądać definicja funkcji
setDefaultNameSpace, użytej w tym fragmencie kodu:
$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ę
to jest fabryka, wiec normalnie ustawia property na to co dostaje w parametrze
trzczy
16.01.2016, 18:42:42
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
16.01.2016, 18:46:11
Pewnie chodzi o to że ustawia się namespace dla klas ładowanych w Fabryce.
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
16.01.2016, 18:58:12
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?
no tak jak normalnie zwykły setter
class example
{
private $namespace;
function setNamespace($namespace)
{
$this->namespace = $namespace;
}
}
Pyton_000
16.01.2016, 19:04:26
I tworzenie:
public function create() {
$class = $this->namespace . '\\CustomClass';
return new $class;
}
trzczy
16.01.2016, 19:15:48
Rozumiem. Zatem, jeśli dana przestrzeń nazw by była uwzględniona w autoloaderze, to ta metoda setDefaultNameSpace by była niepotrzebna?
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
trzczy
16.01.2016, 19:58:29
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.