Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Kontroler od podstaw, jak zacząć?
Beynar
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 6.12.2007

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


Nie wiem od czego zacząć pisac mój pierwszy kontroler. Wiem, że musze zacząć od front kontrolera ale nie moge załapać, jak zacząć, co on ma robić i jak dalej ma przekazywać żadania, akcje i gdzie je w końcu wywoływać. Jak ma to wszystko działać i z czym to się je.
Googlowałem, szukałem na forum, czytałem ale dalej mam wiele wątpliwości.
Z tego co rozumiem to front controller ma za zadanie tylko wyciąganie akcji z adresu, i uzyskiwanie odpowiedniej formy żądania? tzn. np utowrzenie tablicy z poszczegolnymi parametrami żadania ze stringu.
Np. z http://.../index.php?mod=newsy&pokaz=34&parametry=23;56;21
nasz FC ma za zadanie tylko uzyskanie odpowiedniej formy, np. tablicy i przekazanie akcji dalej... ale gdzie dalej i jak...?

Jestem początkującym programistą więc proszę o proste tłumaczenie i wyrozumiałość (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Beynar
post
Post #2





Grupa: Zarejestrowani
Postów: 60
Pomógł: 1
Dołączył: 6.12.2007

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


Napisalem cos takiego, ale wiem, ze to jest zle:

index.php:
  1. <?php
  2. // read current path
  3. $thisPath=$_SERVER[&#092;"SCRIPT_FILENAME\"];
  4. $end=strlen($thisPath)-9;
  5. $main=substr($thisPath, 0, $end);
  6.  
  7. // set pathes
  8. // all pathes contain \"/\" on the end
  9. $GLOBALS[&#092;"_PATHS\"][\"main\"]=$main;
  10. $GLOBALS[&#092;"_PATHS\"][\"config\"]=$main.\"config/\";
  11. $GLOBALS[&#092;"_PATHS\"][\"controllers\"]=$main.\"controllers/\";
  12. $GLOBALS[&#092;"_PATHS\"][\"classes\"]=$main.\"classes/\";
  13. $GLOBALS[&#092;"_PATHS\"][\"images\"]=$main.\"images/\";
  14. $GLOBALS[&#092;"_PATHS\"][\"models\"]=$main.\"models/\";
  15. $GLOBALS[&#092;"_PATHS\"][\"libs\"]=$main.\"libs/\";
  16. $GLOBALS[&#092;"_PATHS\"][\"photos\"]=$main.\"photos/\";
  17. $GLOBALS[&#092;"_PATHS\"][\"styles\"]=$main.\"styles/\";
  18. $GLOBALS[&#092;"_PATHS\"][\"templates\"]=$main.\"templates/\";
  19. $GLOBALS[&#092;"_PATHS\"][\"views\"]=$main.\"views/\";
  20.  
  21. // load config
  22. $conf=parse_ini_file($_PATHS['config'].&#092;"config.ini\", true);
  23. $GLOBALS[&#092;"_CONFIG\"]=$conf;
  24.  
  25.  
  26. // include libaries
  27. require($_PATHS['libs'].&#092;"db_mysql_dev.php\");
  28. require($_PATHS['libs'].&#092;"mapper.php\");
  29.  
  30. // start
  31. require($_PATHS['controllers'].&#092;"front.php\");
  32. ?>

ustalam sciezki
czytam konfiguracje
includuje biblioteki i na koncu przekazuje kontrole do wlasciwego kontrolera
A wlasciwy kontroler wyglada tak:
front.php
  1. <?php
  2. // module
  3. $module=null;
  4. if(isset($_GET[&#092;"module\"]))
  5. $module=$_GET[&#092;"module\"];
  6. if(isset($_POST[&#092;"module\"]))
  7. $module=$_POST[&#092;"module\"];
  8.  
  9. // select module
  10. switch ($module){
  11. case &#092;"konkurs\":
  12. require($_PATHS['controllers'].&#092;"competition.php\"); 
  13. break;
  14.  
  15. case &#092;"regulamin\":
  16. require($_PATHS['controllers'].&#092;"rules.php\");
  17. break;
  18.  
  19. case &#092;"dodaj\":
  20. require($_PATHS['controllers'].&#092;"add.php\");
  21. break;
  22.  
  23. case &#092;"porady\":
  24. require($_PATHS['controllers'].&#092;"advices.php\");
  25. break;
  26.  
  27. case &#092;"galeria\":
  28. require($_PATHS['controllers'].&#092;"gallery.php\");
  29. break;
  30.  
  31. case &#092;"nagrody\":
  32. require($_PATHS['controllers'].&#092;"awards.php\");
  33. break;
  34.  
  35. case &#092;"organizatorzy\":
  36. require($_PATHS['controllers'].&#092;"organisers.php\");
  37. break;
  38.  
  39. default:
  40. require($_PATHS['controllers'].&#092;"competition.php\");
  41. break;
  42. }
  43. ?>

dodam ze powyzszy kontroler jest zrzutowany na odpowiedni dzialy. Tzn. powyzszych requierow jest tyle ile mam glownych dzialow - przyciskow w glownym menu.

Zatem glowny kontroler przekazuje kontrole dalej do kolejnych 'Page controllerow'? tak sie to nazywa w terminologi kontrolerow. Zatem powyzsza czesc to moj front controller, tylko ze wszedzie jest pisany obiektowo a ja mam strukturlanie i nie wydaje mi sie on byc poprawny... nie lezy mi on.

Ten post edytował Beynar 13.01.2008, 21:44:24
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: 11.10.2025 - 15:36