Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][laravel][oop] Gdzie inicjowac proste obiekty
Koldy
post
Post #1





Grupa: Zarejestrowani
Postów: 98
Pomógł: 1
Dołączył: 28.06.2009
Skąd: Great Britan

Ostrzeżenie: (0%)
-----


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


Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
Crozin
post
Post #2





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

Ostrzeżenie: (0%)
-----


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 (IMG:style_emoticons/default/cool.gif) po prostu tworzysz je tam gdzie Ci to potrzebne - kontener raczej nie powinien być tutaj w ogóle używany.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 20:40