Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] Kontroler w kontrolerze
markonix
post
Post #1





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Przykład struktury strony www.przyklad.pl:

- /dane/
- /dane/edytuj
- /dane/usun

Mam także:

- /admin
- /admin/uzytkownik
- /admin/uzytkownik/dodaj
- /admin/uzytkownik/usun
- /admin/uzytkownik/szukaj


Pytanie dotyczy pogrubionego. Czy stosuje się zagnieżdzenie kontrolerów?
Chciałbym (bo tak wg mnie jest natualniej) aby pod adresem /admin/uzytkownik uruchomił się konkretny kontroler.
Na ten moment kontrolerem jest "admin", a akcje wywołuje za pomocą adresu uzytkownik-dodaj, uzytkownik-szukaj czyli tak na około.


Ten post edytował markonix 9.04.2012, 16:48:39
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
ShadowD
post
Post #2





Grupa: Zarejestrowani
Postów: 1 333
Pomógł: 137
Dołączył: 25.03.2008
Skąd: jesteś??

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


Powiem Ci jak to rozwiązuję w zend, tam są moduły - default obsługuje wszystko co nie zawiera nazwy modułu, a moduł admin przez "katalog" admin, czyli dokładnie tak jak oczekujesz przy czym modułu w zf są dosyć "przekombinowane" lecz w 2.0 (są już relasy) wszystko wraca do logicznego wyjścia tylko czekać na zf 2. :-)
Go to the top of the page
+Quote Post
Spawnm
post
Post #3





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Dodaj folder admin w którym będzie kontroler uzytkownik.
Go to the top of the page
+Quote Post
markonix
post
Post #4





Grupa: Zarejestrowani
Postów: 2 707
Pomógł: 290
Dołączył: 16.12.2008
Skąd: Śląsk

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


Po prostu w folderze controllers wrzucić folder admin?
Nie powiem, że to by było ciekawe rozwiązanie bo by troszkę zrobiło porządku w tym folderze.

No cóż, próbujemy (bez modyfikacji routera się nie obejdzie).

edit: Szczerze jakoś mi to nie idzie. Nie chce jakoś zbytnio komplikować kodu ale jedynie jak to widzę to sprawdzenie w momencie braku kontrolera czy przypadkiem nie jest folderem, jeżeli tak to musiałbym jakoś przemianować wszystko, żeby kontroler stał się nazwą folderu, akcja stała się kontrolerem, a pierwszy argument stał się akcję. Troszkę to pokomplikowane :/

Ten post edytował markonix 9.04.2012, 21:39:17
Go to the top of the page
+Quote Post
viking
post
Post #5





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Tylko po co tak sobie życie komplikujesz wynajdując koło na nowo? Masz tyle gotowych rozwiązań że wystarczy je tylko użyć (frameworki). Jak nie chcesz całego to masz serię artykułów http://fabien.potencier.org/articles jak to zrobić na podstawie Symfony 2. Admin tutaj zdecydowanie jest oddzielnym modułem.
Go to the top of the page
+Quote Post
marcio
post
Post #6





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

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


Cytat(markonix @ 9.04.2012, 22:29:42 ) *
Po prostu w folderze controllers wrzucić folder admin?
Nie powiem, że to by było ciekawe rozwiązanie bo by troszkę zrobiło porządku w tym folderze.

No cóż, próbujemy (bez modyfikacji routera się nie obejdzie).

edit: Szczerze jakoś mi to nie idzie. Nie chce jakoś zbytnio komplikować kodu ale jedynie jak to widzę to sprawdzenie w momencie braku kontrolera czy przypadkiem nie jest folderem, jeżeli tak to musiałbym jakoś przemianować wszystko, żeby kontroler stał się nazwą folderu, akcja stała się kontrolerem, a pierwszy argument stał się akcję. Troszkę to pokomplikowane :/

Poprostu zrob 2 rozne typy kontrolerow.
FrontController czyli np wlasnie admin/ home/ forum/
BlockController czyli mniejsze kontrolery czyli np rzeczy zwiazane z uzytkownikami, ewentualnie kazda akcje daj do innego pliku i trzymaj je w katalogu users/
Go to the top of the page
+Quote Post
by_ikar
post
Post #7





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


To może być tak jak już napisali wyżej folder w którym wrzucisz te kontrolery, a mogą to być pojedyncze kontrolery. Nie wiem jak to w zendzie wygląda ale w takim symfony wystarczy prosta regułka dla routingu:

Kod
admin_user:
    url:    /admin/uzytkownik/:action
    param:  { module: adminUser }
    requierments: { action: dodaj|usun|szukaj }


I podobnie np w artykułach czy tam innych rzeczach. I wszystkie kontrolery dla admina mogą się zaczynać od admin z dodanym "prefiksem" danej rzeczy którą wykonuje dany kontroler. W tym wypadku zarządzanie użytkownikiem.

Albo jeszcze inaczej, stworzyć panel administracyjny, jako inna aplikacja, wtedy tylko będziesz robić kontrolery bez przedrostka admin. Opcji w sumie jest wiele (IMG:style_emoticons/default/wink.gif)
Go to the top of the page
+Quote Post

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: 24.08.2025 - 01:38