Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] Struktura kontrolerów
m87
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 4
Dołączył: 5.07.2008

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


Chciałbym pod Kohaną zrobić prostego CMSa, nie jestem tylko pewny czy dobrze zaplanowałem kontrolery. Pomysł jest taki:

application/controllers/site.php - rozszerza Template_Controller'a, ustawia widok strony głównej (menu, stopka, itd.)
Dla każdej podstrony robię osobny kontroler, który rozszerza Site_Controller'a i ustawia widok podstrony wstawiony gdzieś w środku widoku strony głównej.

application/controllers/admin.php - rozszerza Template_Controller'a, ustawia widok panelu administracyjnego.
Do katalogu application/controllers/admin wrzucam kontrolery odpowiadające za dodawanie newsów, userów itd, każdy rozszerza Admin_Controller'a.

To powinno działać tak:
domena.pl/ - strona główna, czyli to co jest w Site_Controllerze (application/controllers/site.php)
domena.pl/kontakt - jakaś podstrona, Kontakt_Controller (application/controllers/kontakt.php)
domena.pl/admin - strona główna panelu, Admin_Controller (application/controllers/admin.php)
domena.pl/admin/news - zarządzanie newsami, News_Controller (application/controllers/admin/news.php)

Czy to jest dobre rozwiązanie, czy powinno się to robić jakoś inaczej? Nie mam doświadczenia we frameworkach, więc pytam żeby potem nie przepisywać połowy kodu (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)

Może wszystkie kontrolery i widoki panelu administracyjnego powinny być zrobione jako moduł albo leżeć w katalogu system? Panel będzie uniwersalny, dla wielu różnych stron, ale w 90% wszędzie taki sam - to które funkcje panelu są włączone będzie zapisane jedynie w bazie danych.

Może ktoś robił coś podobnego pod Kohaną i podzieli się doświadczeniami? (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) Z góry dzięki za wszystkie rady (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Firez
post
Post #2





Grupa: Zarejestrowani
Postów: 17
Pomógł: 4
Dołączył: 6.03.2008

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


Cytat
Do katalogu application/controllers/admin wrzucam kontrolery odpowiadające za dodawanie newsów, userów itd, każdy rozszerza Admin_Controller'a.

Hmm a nie lepiej po prostu napisać kontrolera 'Admin' a funkcje w nim nazwać add_user, del_user etc. Dzięki Kohanie uzyskasz wtedy bardzo ładne i wygodne linki (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Cytat
rozszerza Template_Controller'a

Tworzyłeś/używałeś jakiegoś Template Controllera?
Dla mnie najwygodniejsze się wydawało rozwiązanie typu:
Kod
$view = new View('template');
$view->header  = new View('theme/header');
$view->content = new View('theme/addfile');
$view->footer  = new View('theme/footer');
$view->content->result=$result;
$view->content->name=$name;

Jeśli tworzysz coś dość prostego - może wystarczy zaimplementować takie proste rozwiązanie? (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .
template.php
Kod
<?php echo $header; ?>
<?php echo $content; ?>
<?php echo $footer; ?>

Przykładowy addfile.php [w folderze views/theme/]
Kod
Rezultat:<?=$result ?><br />
Nazwat:<?=$name ?><br />

Zastosowanie tego bardzo skróciło u mnie learning curve Kohany (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Cytat
Czy zawartość katalogu to jest coś co powinno siedzieć w modelu?

Hmm... Imho model odpowiada m.in. za pobieranie danych - a to jest pobieranie danych na temat zawartości katalogu (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .


Cytat
Dobrze kombinuję?

Tak (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) . Co do Ajaxa - jeśli jeszcze nie wybrałeś konkretnej klasy do jego obsługi polecam Xajax - w necie powinieneś znaleźć instrukcje jego zaimplementowania w Kohanie.

Cytat
Może ktoś robił coś podobnego pod Kohaną i podzieli się doświadczeniami? tongue.gif

Tworzyłem prosty panel administracyjny. Do np. usuwania komentarza napisałem sobie funkcję w module [jeśli dobrze pamiętam] del_com($tutajargumenty) i w ramach potrzeby wywoływałem tą funkcję po prostu z kontrolera newsa bądź kontrolera admin.

Cytat
wstawia dane do widoku

To już pewnie szczegół ale...
Jeśli dobrze zrozumiałem planujesz wysłać poprzez Ajax od razu otoczone HTML'em dane - rozwiązanie takie jest nieco prostsze niemniej jeśli oczekujesz wysokiej szybkości/odwiedzalności może lepiej wysłać poprzez Ajax same dane a następnie poukładać je na stronie już za pomocą samego JS [nawiązując do zasady wykorzystuj moc obliczeniową komputera usera jak tylko możesz ;] ]. Serwer powinien nieco na tym odciążyć (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) .

Ten post edytował Firez 10.07.2008, 21:42:36
Go to the top of the page
+Quote Post

Posty w temacie


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: 12.10.2025 - 18:57