![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dotychczas piszac skrypty np. chcac przekazac dostepne rzeczy z klasy obslugi bazy danych robilem to na zasadzie przekazania jej do nastepnej.
cos typu: $klasa = news baza(); $klasa2 = news baza($klasa); i potem np w klasa2:
Czy jest to najwydajniejszy sposob? Czy jest mozliwosc zrobienia klasy publicznej nie uzywajac singletona? Przy wiekszej ilosci klas do przekazania robi sie balagan: np. trzeba przekazac klasy: obsluga bazy danych, obsluga $_POST (itp.), Klasa obslugujaca Sesje, Klasa ACL - i jeszcze kilka by sie znalazlo... Te klasy powinny byc tak na dobra sprawe dostepne prawie wszedzie w kazdej innej klasi - Czy jest jakis inny sposob na przekazanie jej do innej klasy innym sposobem niz singleton? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Cytat Przy wiekszej ilosci klas do przekazania robi sie balagan: Nie jeżeli umieścisz je w jednym obiekcie. wtedy przekazujesz tylko jego. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Nie jeżeli umieścisz je w jednym obiekcie. wtedy przekazujesz tylko jego.
hmm czyli chodzi o cos takiego? klasa laczklasy - laczy te klasy w jedna i przekazuje kontrollerowi? To jest najwydajniejszy sposob(nie chodzi o szybkosc tworzenia aplikacji - wiadomo singleton ulatwia).? |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Najprościej to zrobić klasę statyczną, która będzie "pojemnikiem" na Twoje obiekty. Wtedy nic nie musisz mieć w konstruktorze jako parametr.
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Najprościej to zrobić klasę statyczną, która będzie "pojemnikiem" na Twoje obiekty. Wtedy nic nie musisz mieć w konstruktorze jako parametr. Zrobilem cos takiego:
Uzywam:
I teraz gdy uzyje: To wypisuje my wszystkie objekty gdzie chce. Mozna zrobic podzial do jakiej klasy jakie obiekty maja przychodzic. To dobra droga? Czy chodzi o cos innego? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Bardziej o coś takiego:
i potem używasz w innej klasie:
Ten post edytował fifi209 17.08.2009, 14:28:59 |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
Bardziej o coś takiego:
i potem używasz w innej klasie:
hmm ale mowimy o zapisywaniu w tej klasie objektow nie zmiennych. zrobimy np
a potem:
i w $obiekt1 mamy juz obiekt ktory chcemy. Ale jest sens pchac w to nowa klase - przez to chyba skrypt traci na wydajnosci niz jakbysmy robili to za pomoca tradycyjnej metody:
Zalezy mi na zeby jak najbardziej to bylo wydajne. To nie ma byc pod budowe xxx stron skrypt - tylko pod budowe okreslonej strony ktora docelowa bedzie odwiedzac sporo grupa ludzi. pozdrawiam |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
hmm ale mowimy o zapisywaniu w tej klasie objektow nie zmiennych. zrobimy np
No obiektów, a to że pokazałem jak zapisać zmienną to inna sprawa... Obiekt też się tam zapisze. Ale jest sens pchac w to nowa klase - przez to chyba skrypt traci na wydajnosci niz jakbysmy robili to za pomoca tradycyjnej metody:
Zalezy mi na zeby jak najbardziej to bylo wydajne. To nie ma byc pod budowe xxx stron skrypt - tylko pod budowe okreslonej strony ktora docelowa bedzie odwiedzac sporo grupa ludzi. pozdrawiam To zastanów się co chcesz. Powiedziałem Ci jak to prościej zrobić, ew. możesz singletona wrzucić. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Sam loader mozna zrobic tak jak pisza wyzej za pomoca singletona ale to tez na wszystkie obiekty klas nie moze byc singleton dlatego ja uzywam wlasny import klas:
Gdzie glowny plik rozruchowy czyli index.php go includuje a glowny kontroler dziedziczy po tej klasie i mam dostep do kazdej klasy robiac:
Mnie to bardzo pasuje. |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
hmm a jakby zrobil cos w stylu:
Klasy:
tylko ze potem wywolac cos z obiektu w obiekcie 2 to trzeba robic : $this->obiekt2->obiekt1->show(); co wydluza kod. Moze daloby sie go jakos skrocic? Moze ze cos takiego: register class
index i 3 klasy
Dzieki temu nie musimy robic:$registry->obiekt2->obiekt1->show(); itd. odwolujemy sie tylko $register->nazwaklasy->funkcja(); Wydaje sie pomysl z register chyba najbardziej optymalny i najlepszy. nie musimy nigdzie martwic sie o klasy. Wszedzie je mamy. Teraz pytanie czy jest on wydajny? Ten post edytował vadergb 18.08.2009, 14:05:37 |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
1 sposob jest do bani.
Drugi jesli dziala jest ok i czemu nie mialby byc wydajny choc wedlug mnie i tak zabardzo masz to przekombinowane. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 52 Pomógł: 0 Dołączył: 10.06.2009 Ostrzeżenie: (0%) ![]() ![]() |
1 sposob jest do bani. Drugi jesli dziala jest ok i czemu nie mialby byc wydajny choc wedlug mnie i tak zabardzo masz to przekombinowane. Hmm dlaczego 1 sposob akurat jest do bani? 2 sposob ma duzo wspolnego z http://forum.php.pl/index.php?showtopic=122586&hl= wiec nie wiem czy to jest dobre ... slyszalem ze singletona powinno sie omijac... |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 77 Pomógł: 5 Dołączył: 29.03.2006 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zobacz sobie Dependency Injection - komponent symfony.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 16.09.2025 - 19:35 |