![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Zastanawiam się jak rozwiązać problem automatycznego ładowania modelu dla kontrolera tylko wtedy gdy bedzie choc raz użyty. Wolalbym tu uniknac wzorca fabryki bo nie chcialbm miec cos takiego
chcialbym zeby $user byla to klasa ktora po dostepie do niej np. ( ) zaladowala model user i podmienila siebie... nie wiem czy sie jasno wyrazilem ale jestem po nie przespanej nocy (IMG:style_emoticons/default/smile.gif) |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Hmmm czekaj jesli dobrze rozumiem importuj plik modelu za pomoca jakiesj klasy ktora bedzie implementowala ta funkcjonalnosc w __get().
Chyba ze zle zinterpretowalem twoje pytanie. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Dobrze zrozumialeś tylko zastanawiam sie czy mozna to jakos ominanc calkowicie podmienic klasy tylko w przypadku uzycia tu nie chodzi tylko o metode __get modele sa bardziej rozbudowane jesli nie wykombinuje nic bede musial wszystkie magiczne metody tak przechwycic
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Jak dobrze pokombinujesz z __get() i ewentualnie __call() uzyskasz to co chcesz.
U mnie jak chce odwolac sie do jakiegos obiektu i plik jest w jakims tam katalogu i nie zostal includowany robie tak jak ty to opisales:
Wtedy moj Fw przeszukuje katalogi az do napotkania pliku klasa.php gdy go napotka includuje go i tworzy obiekt klasa i zwraca mi go. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
A ja sobie wczytuję ręcznie modele do kontrolera, imo mniej zabawy.
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
No tak niby mniej zabawy ale potem fajnie by bylo gdyby model byl ladowany automatycznie wtedy gdy jest potrzebny zaoszczedzilbym jedna linijke przy kazdym kontrolerze (IMG:style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
A co jeżeli jest już załadowany? ;] Musiałbyś go rejestrować w jakimś singletonie a później sprawdzać czy jest zarejestrowany, to jest grzebanie w tablicach, dodatkowo opóźnia wykonanie kodu, a tak wczytujesz i się nie przejmujesz.
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Cytat edna linijke przy kazdym kontrolerze Chyba raczej tyle linijek ile modeli używasz w danym kontrolerze.IMO lepiej jest jednak to ręcznie robić - lepsza czytelność, mniej kombinowania, a potencjalny zysk w postaci dwóch, trzech linijek kodu jest niewielki. Ja generalnie w przypadku obiektów modeli w ogóle nie wykorzystuję pól obiektu kontrolera - wolę to mieć w zmiennej lokalnej i ew. przekazać przez referencję, jeżeli potrzebuję go w innej metodzie. Jakoś nie specjalnie dużo kombinowania, a kod jest dużo czytelniejszy. |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
A co jeżeli jest już załadowany? ;] Musiałbyś go rejestrować w jakimś singletonie a później sprawdzać czy jest zarejestrowany, to jest grzebanie w tablicach, dodatkowo opóźnia wykonanie kodu, a tak wczytujesz i się nie przejmujesz. Jak cos to bardziej pasowalby Register a nie singleton wedlug mnie. A dwa to sa ulamki ulamkow mili-sekund...... |
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
marcio a kto broni używać registera w singletonie? ;]
w Doctrine jest zrobione tak że wszystkie modele są wczytywane od razu, przy załadowaniu strony, też ciekawe. |
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 29 Pomógł: 0 Dołączył: 24.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
hmmm
jest juz troche pozno i moge nie zalapac ocb w temacie (IMG:style_emoticons/default/biggrin.gif) ale z tego co rozumiem to problem tkwi w odpowiedniej implementacji autoloadera (IMG:style_emoticons/default/snitch.gif) o autoloaderach sa rozne ciekawe tematy, poszukaj ja mam autoloader tak rozwiazany (+ mapki na zasadzie "nazwa_klasy"=>"sciezka_do_pliku"):
Do tego cache'owanie map plikow i nie martwimy sie o zadne ladowania plikow Pozdrawiam Ten post edytował witul 4.10.2009, 03:37:50 |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Tylko chodzi o to że auto loader klas jest tu zastowany... kontroler jest zawsze zaladowany a chodzi oto zeby model byl ladowany w ten sposob ze byla by to jakas mala klasa ktora po pierwszym dostepnie do niej podmienila by siebie na wlasciwa a jesli model nie byl by uzyty to nie robila by nic. Narazie mam zrobioen to w ten sposob ze mam przechwytywane magiczne metody typu _call itp.. ale to nie jest wygodny sposob gdyz np. model dostaje zmienne w tablicy a nie typu $var1,$var2...... Chyba jednak zrobie tak ze za kazda raza do kontrolera musi byc ladowany model..
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Cytat model dostaje zmienne w tablicy a nie typu $var1,$var2...... Teraz nie pamietam gdzie ale chyba w kohanej widzialem takie rozwiazanie ze mieli funkcje w niej switch i na zasadzie ile dana funkcja miala argumentow byl foreach() na tablice i potem elementy byly wkladane do funkcji, nie wiem czy mnie zrozumiales, jak znajde ten plik to ci podam. |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 8 Pomógł: 1 Dołączył: 26.05.2009 Ostrzeżenie: (0%) ![]() ![]() |
Ciekawe rozwiązanie nie wpadlem na to..... po południu zaraz to przetestuje powinno dzialac.... ale dalej mnie zastanawia fakt czy nie mozna tego jakos ominąć aktywowanie modeli
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
Itp zalezy ile dana funckja ma miec parametrow cos takie to taki wzor powinien dzialac. Ten post edytował marcio 4.10.2009, 19:29:22 |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 898 Pomógł: 80 Dołączył: 31.05.2008 Ostrzeżenie: (20%) ![]() ![]() |
marcio, co Ty q... za herezje wypisujesz? Pobierasz argumenty funkcji bez funkcji O_o I ten func_num_args, to imo zbyteczność, func_get_args i cout i święto lasu... ale co Ty tu tworzysz?
@edit Crozin no szał pał. Ten post edytował cojack 4.10.2009, 22:52:56 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 6 476 Pomógł: 1306 Dołączył: 6.08.2006 Skąd: Kraków Ostrzeżenie: (0%) ![]() ![]() |
Taa... call_user_func_array - jest bajer co nie?
|
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 2 291 Pomógł: 156 Dołączył: 23.09.2007 Skąd: ITALY-MILAN Ostrzeżenie: (10%) ![]() ![]() |
@cojack palancie wiesz co to wzor?
@Crozin niestety znam ta funkcja sam ja uzywam nie tylko ty ja znasz nie przyszla mi niestety do glowy wiec wybacz. Cytat Pobierasz argumenty funkcji bez funkcji O_o I ten func_num_args, to imo zbyteczność, func_get_args i cout i święto lasu... ale co Ty tu tworzysz? Qur** a widzisz w tym jakas roznice, bo ja nie oprocz tego ze ty skorzystasz z innych funkcji. |
|
|
![]()
Post
#19
|
|
Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Cytat @cojack palancie wiesz co to wzor? czy cojak cie wyzwal ze tak mu sie odszczekujesz? Bo ja nie zauwazylem tego.+10 z moderką |
|
|
![]() ![]() |
![]() |
Aktualny czas: 22.08.2025 - 18:58 |