Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php][laravel][oop] Gdzie inicjowac proste obiekty
Forum PHP.pl > Forum > Przedszkole
Koldy
Witajcie,

Nie lubie czegos nie wiedziec, wiec pytam.
Chodzi o to, ze duzo slyszalem o ioc container (laravel) i zaczalem go uzywac, co prawda nie wszystko jeszcze ogarniam, ale jezeli dobrze rozumiem to Dependency container ma posiadac uslugi, ktore chcemy miec podczas aplikacji i zostana zainicjalizowane tylko wtedy gdy ich uzyjemy.

Tutaj nie rozumiem sensu (lub bardziej dzialania) istnienia metody singelton w 'laravelskim' kontenerze.

Powiedzmy ze mam klase Messages, ktora jest kolekcja i Message, ktora jest pojedyncza wiadomoscia.
Skoro zarejestruje w kontenerze klase Messages, to gdzie mam inicjalizowac jej dzieci (Message)
No bo chyba takie cos to blad, tak?
  1. public function addMsg($message) {
  2. if (is_string($message)) {
  3. $this->container[] = new Message($message);
  4. }
  5. }


Bylbym wdzieczy za kazde naprowadzenie, bo zawsze jak cos buduje swojego to nie wiem gdzie co inicjalizowac, co pchac do kontenera.
Jezeli macie jakis ciekawy artykul na ten temat, chetnie zobacze, moze byc po ang.

Pozdrawiam


Crozin
1. Singleton w kontekście kontenera będzie oznaczał, że jeżeli w 10 różnych miejscach odwołasz się do danej usługi za każdym razem zostanie zwrócony Ci ten sam obiekt.
2. Jeżeli klasa Messages jest jakimś kontenerem/kolekcją obiektów typu Message to a) obiekty te nie są "dziećmi" tej klasy cool.gif po prostu tworzysz je tam gdzie Ci to potrzebne - kontener raczej nie powinien być tutaj w ogóle używany.
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-2025 Invision Power Services, Inc.