![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 95 Pomógł: 7 Dołączył: 16.07.2007 Skąd: Gorzów Wielkopolski Ostrzeżenie: (0%) ![]() ![]() |
Ostatnio zainteresowałem się tym artykułem: http://phpgeek.pl/112/dependency-injection-container/ Ciekawi mnie jedna kwestia, czy instancję Containera przekazywać gdzieś dalej do obiektów i do obiektów w obiektach przez parametr, czy skorzystać z tego, że tablica jest zmienną statyczną i w kolejnych "zagnieżdżeniach" obiektów tworzyć nowy obiekt Containera? Bo jeśli przez parametr to można wywalić zmienną statyczną (większa śladowa wydajność, większy bałagan w parametrach) a jeśli tworzyć nowy obiekt to niby nam ta wydajność spada, bo i zmienna statyczna i do tego kolejne obiekty... np 3 obiekty przy jednym żądaniu. Chociaż nie wiem jak się ma to do zmiennych statycznych, to podobno stosowanie metod statycznych (w większej dawce) odbywa się kosztem spadku wydajności. Co Wy o tym wszystkim myślicie?
|
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 8 989 Pomógł: 1550 Dołączył: 8.08.2008 Skąd: Słupsk/Gdańsk ![]() |
Właściwości statyczne przydają się w miejscach gdzie klasa nie musi tworzyć instancji i jej wewnętrzne właściwości nie wpływają na resztę aplikacji. Przykładem jest mój kalkulator ze stopki.
Cytat Okej, to mogę wywalić zmienną statyczną i wszędzie instancję kontenera przekazywać przez parametr, nawet tam gdzie to więcej komplikuje niż pomaga - tędy droga? Napisałem, że to zależy od upodobań oraz gustu. Jeżeli przekazujesz instancję kontrolera tam gdzie jest to wskazane powodujesz tym samym, że twoja aplikacja jest hermetyczna. Bardzo łatwo ją testować a także uruchamiać równolegle z innym egzemplarzami twojej aplikacji (2 lub więcej aplikacji odpalonych w jednym skrypcie). Cytat Bo jeśli tego się nie stosuje, bo jest be i kojarzy się z globalem to po co pisać o tym w manualu w ogóle.. Jest dobre przekonanie, że globala nie powinno się stosować i jestem jak najbardziej za. Ale jeżeli ktoś się zapyta "co poza global?" a ty odpowiesz mu, że klasa statyczna to wcale nie pomożesz a jedynie usadowisz użytkownika w tym samym punkcie. Dlatego o tym wspomniałem. PHP powstał i jest dla początkujących użytkowników, dlatego GLOBAL pozostał jako taki. Dla bardziej zaawansowanych programistów jest on bezużyteczny. Ten post edytował wookieb 12.09.2010, 12:06:42 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 8.10.2025 - 10:44 |