Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php/MVC] Lancuszek akcji, akcja w akcji.
c3zi
post
Post #1





Grupa: Zarejestrowani
Postów: 266
Pomógł: 20
Dołączył: 15.11.2006
Skąd: Koszalin

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


Witam,

Jak rozwiazujecie uruchamianie akcji w implementacji innej akcji?

Dodam, iz u mnie kazda akcja posiada swoj widok. Zatem w akcji1, w ktorej musze uruchomic inna akcje2 musialbym jakos przypisac do zmiennej - widok akcji2, a potem przeslac go w zmiennej akcji1 (juz plus akcja2) to widoku akcji1 ? Nie wiem jak do tego podejsc.

Chodzi o to, ze mam dynamicznie tworzona liste danych w akcji2, a akcja1 tez chce z nich korzystac +dodac odp. swoje funkcjonalnosci.

Schemat:
Akcja_showItems->Uruchom akcje main->akcja main wykonuje swoj kod->uruchom szablon akcji_main->przekaz go w zmiennej do akcj showItems->uruchom szablon akcji_showItems przekazuja do niego rowniez dane z akcji main..

Jak do tego podejsc ?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
kaniagandzowski
post
Post #2





Grupa: Zarejestrowani
Postów: 72
Pomógł: 1
Dołączył: 2.06.2006

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


Cysiaczek:

Bardzo mi się spodobał twój pomysł i chce wdrożyć do mojego programiku, który korzysta z Frameworka CodeIgniter wraz biblioteką XAJAX.

Jestem w fazie sklejania wszystkich bibliotek i budowania interfejsu dla użytkownika. Brakuje mi sposobu na przekazywanie różnych danych pomiędzy operacjami wykonywanymi przez użytkownika.

Zrozumiałem w ten sposób, że każda akcja (w CI jest to klasa typu kontroler) tworzy obiekt typu actionData w swoim konstruktorze.
  1. <?php
  2. $this->data=new actionData();
  3. ?>

Później dowolna metoda w akcji może dodać swoje jakieś dane np. dane do widoku , jakieś innej akcji lub swoją instancje obiektu, która to będzie się mieścić w obiekcie typu actionData pod nazwa $akcja, $metoda.

Następna metoda chcąc pobrać dane wystarczy że wpisze nazwę akcji i jej metodę ta zwróci wynik albo tekst lub obiekt to co akcja poprzednio wrzuciła.
Problemem będzie, że akcja pobierająca dane będzie musiała wiedzieć jakie typu dane są pobierane oraz jak się nazywa (w sumie to nie problem).

Ja nie bardzo kapuję jak może działać rozwiązanie sington w twoim kodzie (domyślam, że stosujesz ten wzorzec)
  1. <?php
  2. $this->AHelper=application_Helper::getInstance();
  3. ?>

Co on robi.
Ja wiem że wzorzec singleton zapewnia wszędzie ten sam obiekt zapobiegając tworzenia drugiego obiektu tej samej klasy (jestem laikiem więc mogę się mylić).

Może tak. Nie mogę sobie wyobrazić żeby przy następnych wywołaniach stron dawał ten sam obiekt (referencje obiektu, który na poprzedniej stronie został stworzony). Bo zapewniony będzie jeden obiekt do końca wykonania kodu. Tak więc jeśli zostanie przeładowana strona (wybrana jakaś akcja przez użytkownika) to wzorzec singleton stworzy nowy obiekt. Ponieważ nie będzie pamiętać obiektu.

Pisze dlatego o tym wzorcu bo myślę, że w twoim kodzie jest coś zaimplementowane
  1. <?php
  2. $this->AHelper=application_Helper::getInstance();
  3. ?>

Że on pobiera sobie instancje obiektu z sesji lub bazy danych albo Cook lub jest przekazywane przez javaScript.
Bardzo chcę poznać jak sklejacie w całość wszystko. Ja robiłem dotychczas że przekazywałem przez zmienne do konkretnej funkcji czy metody. To tworzyło straszne problemy i strasznie wiązało pomiędzy sobą te funkcje. Zmiana czegoś w jednej metodzie prowadziło do zmian wszędzie tam gdzie były powiązane z tą metodą. Co strasznie komplikowało kod.
Go to the top of the page
+Quote Post

Posty w temacie
- c3zi   [php/MVC] Lancuszek akcji, akcja w akcji.   1.07.2007, 21:35:18
- - Cysiaczek   Powiem Ci coś... To jest bardziej skomplikowane ni...   1.07.2007, 22:36:19
- - c3zi   Witam, Cysiaczek: Niewatpliwie pomogles, aczkol...   3.07.2007, 09:41:42
- - Cysiaczek   Każdy obiekt akcji zawiera obiekt typu actionDataO...   3.07.2007, 13:11:21
- - NoiseMc   Mi sie podoba jak to jest rozwiazane w ZF. W akcji...   3.07.2007, 14:35:01
- - menic   U mnie troche jest to inaczej. Myslalem nad zdefin...   3.07.2007, 14:43:45
- - Cysiaczek   @NoiseMc - Można rzeczywiście w ciele akcji wywoła...   3.07.2007, 14:48:33
- - NoiseMc   Mozna myslec tez w ten sposob, akcje jako komponen...   3.07.2007, 15:05:20
- - c3zi   Cysiaczek: W ktorym momencie definiujesz obiekt A...   3.07.2007, 19:54:07
- - Cysiaczek   Ten obiekt jest tworzony przy tworzenieu egzemplar...   3.07.2007, 20:05:51
- - c3zi   No tak, kazda klasa ma wlasny obiekt z danymi. Jak...   3.07.2007, 22:40:37
- - Cysiaczek   Helper dostarcza mi w tym przypadku interfejs dost...   3.07.2007, 23:46:06
- - NoiseMc   Cytat$this->data->actionName=$this...   13.07.2007, 02:28:15
- - Cysiaczek   Ten obiekt nie należy do warstwy modelu. To po pro...   13.07.2007, 12:31:57
- - menic   Z wszystkich mozliwosci zaprojektowania z jakimi s...   15.07.2007, 16:45:20
- - kaniagandzowski   Cysiaczek: Bardzo mi się spodobał twój pomysł i c...   29.08.2007, 20:45:56
- - menic   Ja u siebie postawiłem na elastycznośc. Może i ten...   29.08.2007, 20:55:59
- - kaniagandzowski   Na pewno będę stosować GET np. do wywołania wybran...   29.08.2007, 21:54:21
- - Ludvik   Ja skłaniam się do wzorca obiektu kontekstu. Wszys...   29.08.2007, 22:34:40
- - kaniagandzowski   Nie znam tego wzorca Context Object (wzorca obiekt...   30.08.2007, 09:06:53
- - Ludvik   Google wyrzuca pierwszy wynik - Core J2EE Patterns...   30.08.2007, 10:15:27
- - kaniagandzowski   Dzięki za szybką odpowiedz. Przeczytałem klika kr...   30.08.2007, 13:47:06
- - Ludvik   Klasy HttpRequest i HttpResponse to pseudo-klasy, ...   30.08.2007, 15:40:53


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: 13.10.2025 - 21:27