Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Kohana] w metodzie przejscie do metody innej klasy
terabit
post 23.08.2008, 11:59:08
Post #1





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Witam,

w kohanie, w pliku controllers mam folder admin...
mam klase np Page_Controller a w niej metode test()
oraz klase Post_Controller a w niej metode inny_test()

i teraz jest problem
chce zrobić coś takiego:

  1. <?php
  2. public function test() {
  3.  
  4. Post_Controller::inny_test();
  5.  
  6. }
  7. ?>


no i nie działa, pewnie dlatego ze te klasy mam w controllers/admin
gdy chce skorzystać z jakiejś klasy którą mam w controllers/ to nie ma problemu...

Pomóżcie :]


--------------------
Go to the top of the page
+Quote Post
LBO
post 23.08.2008, 12:14:20
Post #2





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Witaj

W większości frameworków MVC taka funkcja dostępną jako forwardowanie akcji (najczęściej jako metoda forward() w kontrolerze/akcji).
Generalnie polega to na wewnętrznym ponownym uruchomieniu Dispatchera wraz ze wszystkimi dodatkami tj. hooki dla akcji.

Mam nadzieję, że znajdziesz to w Kohanie.

Pozdrawiam, Alan
Go to the top of the page
+Quote Post
terabit
post 23.08.2008, 14:29:03
Post #3





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


niestety nie moge tego nigdzie znalezc :/ w dokumentacji nie ma :/


--------------------
Go to the top of the page
+Quote Post
nrm
post 23.08.2008, 14:33:03
Post #4





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


Raczej nie znajdzie, chyba, że przerobi się na HMVC (Pull-MVC? jezu whateva' winksmiley.jpg ) jak w tym przykładzie:

http://learn.kohanaphp.com/2008/03/05/hmvc-in-kohana/

Fachowcy twierdzą, że "strict MVC" nie pozwala na takie "myki" i dzielą to na MVC push i pull.
np. http://www.guyrutenberg.com/2008/04/26/pul...c-architecture/
Jak dla mnie: whateva' winksmiley.jpg Do teoretycznych przepychanek zawsze jest wielu chętnych winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post
LBO
post 23.08.2008, 14:49:30
Post #5





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(normanos @ 23.08.2008, 15:33:03 ) *
Do teoretycznych przepychanek zawsze jest wielu chętnych winksmiley.jpg


eee, może nie dzisiaj smile.gif

Tak, czy siak - moim zdaniem to poważne ubytek w funkcjonalności - nie istnieją przy czymś takim łańcuchy akcji.

edit: W przykładzie widzę, że na szczęście nie trudno to dorobić. Nawet na modłe innych frameworków można dodać metodę forward() w bazowym kontrolerze.

Ten post edytował LBO 23.08.2008, 14:51:17
Go to the top of the page
+Quote Post
terabit
post 23.08.2008, 15:06:05
Post #6





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


to w końcu czym jest łańcuch akcji... bo już nic nie rozumiem...

myślałem że coś takiego: biggrin.gif

  1. <?php
  2. function pokaz_liste() {
  3. // pokazujemy liste
  4. }
  5.  
  6. function dodaj_strone() {
  7. // ...
  8. $this->pokaz_liste();
  9. }
  10.  
  11. function zrob_jeszcze_cos() {
  12.  // ...
  13.  $this->dodaj_strone();
  14. }
  15. ?>


uruchamiamy zrob_cos_jeszcze i nastepnie mamy uruchomione dodaj_strone i pokaz_liste


hmmm ale moze to nie jest to smile.gif

Ten post edytował terabit 23.08.2008, 15:07:31


--------------------
Go to the top of the page
+Quote Post
nrm
post 23.08.2008, 15:19:03
Post #7





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


ale wszystko o czym piszesz wykonasz w K. pamietając o tym, że:
- akcja może kończyć się wywołaniem widoku
- autoloader jest jednopoziomowy (nie używaj podkatalogów albo zmodyfikuj).
- do wywoływania stałych elementów można wykorzystać np. biblioteki


--------------------
Go to the top of the page
+Quote Post
terabit
post 23.08.2008, 15:23:53
Post #8





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


Cytat(normanos @ 23.08.2008, 16:19:03 ) *
ale wszystko o czym piszesz wykonasz w K. pamietając o tym, że:
- akcja może kończyć się wywołaniem widoku
- autoloader jest jednopoziomowy (nie używaj podkatalogów albo zmodyfikuj).
- do wywoływania stałych elementów można wykorzystać np. biblioteki


hmmm... ale pojecie akcji dobrze zrozumiałem ? - tak jak to wyżej napisałem :]
i akcja to po prostu metoda kontrolera?


--------------------
Go to the top of the page
+Quote Post
LBO
post 23.08.2008, 15:35:56
Post #9





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Nie, nie powinieneś myśleć o akcjach jako metodach klasy będącej kontrolerem. To jest tylko specyfika Kohany. Ona ma taką architekturę - równie dobrze akcja mogła by być klasą, a kontroler tylko pojęciem.
Dispatcher się tym zajmuje, on wie gdzie szukać kontrolerów i akcji i to jego powinieneś oddelegować do tego zadania.
Go to the top of the page
+Quote Post
terabit
post 23.08.2008, 16:04:46
Post #10





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


ok skoro autoloader jest jednopoziomowy to nie bede miał podkatalogów w controllerze.

mógłby jeszcze ktoś napisać jak to jest np. w Zend Framework ?


Dzięki za pomoc winksmiley.jpg

Ten post edytował terabit 23.08.2008, 16:05:13


--------------------
Go to the top of the page
+Quote Post
LBO
post 23.08.2008, 16:11:56
Post #11





Grupa: Zarejestrowani
Postów: 1 415
Pomógł: 117
Dołączył: 7.09.2005
Skąd: Warszawa

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


Cytat(terabit @ 23.08.2008, 17:04:46 ) *
mógłby jeszcze ktoś napisać jak to jest np. w Zend Framework ?

Zend_Controller_Action::_forward()
Go to the top of the page
+Quote Post
nrm
post 23.08.2008, 16:17:01
Post #12





Grupa: Zarejestrowani
Postów: 627
Pomógł: 33
Dołączył: 1.05.2005
Skąd: Katowice

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


ps. http://forum.kohanaphp.com/comments.php?DiscussionID=319


--------------------
Go to the top of the page
+Quote Post
terabit
post 23.08.2008, 16:22:09
Post #13





Grupa: Zarejestrowani
Postów: 170
Pomógł: 4
Dołączył: 11.08.2006

Ostrzeżenie: (10%)
X----


ok, wielkie dzięki za pomoc winksmiley.jpg


--------------------
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 16.04.2024 - 09:38