Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Framework - logika działania
Forum PHP.pl > Forum > PHP
Mappet
Witam!

Ostatnio postanowiłem poprzyglądać się frameworkom i stworzyć coś własnego. Wybrałem model MVC.
Problem mam teraz z logiką budowy MVC.
Chciałem dodać autoryzację użytkownika, a co za tym idzie musze napisać obsługę sesji. I pojawia się pytanie... jak wdrożyć taką aplikację do modelu?

Na stronie php.pl jest obszerny artykuł o frameworku. I tam jest przedstawiony schemat z multikontrolerem gdzie różne akcje są w jednym pliku. Ja aktualnie wybrałem ten drugi sposób czyli mam w katalogu pojedyńcze pliki z akcjami i każdy plik obsługuje jedna wybraną akcję.

Zatem obsługa sesji wg. mnie powinna wylądować w katalogu z bibliotekami ?
A następnie wykorzystywać ten plik w pliku z akcjami ?
Kolejne pytanie to walidacja formularza, gdzie taki proces przeprowadzić.

Byłbym wdzięczny za jakieś wstępne informacje...

Pozdrawiam
sf
walidacje sobie mozesz robic w filtrach, albo w akcji, jak Ci tam wygodniej

autoryzacje mam w filtrze przed akcja bo mi tak pasuje najlepiej
Mappet
  1. <?php
  2. abstract class AbstractMultiActionController {
  3. protected $_modelclassname;
  4. protected $_daoclass;
  5. protected $_dbconn;
  6. protected $_tpl_prefix;
  7. public function __construct(){
  8. $this->_dbconn = DBManager::getConnection();
  9. }
  10. public function list_action(){
  11. $result_arr['items_list'] = $this->_daoclass->findAllItems();
  12. $mv = new ModelAndView();
  13. $mv->setModel($result_arr);
  14. $mv->setView($this->_tpl_prefix.'_list.tpl.html');
  15. return $mv;
  16. }
  17. public function addform_action(){
  18. $mv = new ModelAndView();
  19. $mv->setModel($_POST);
  20. $mv->setView($this->_tpl_prefix.'_addform.tpl.html');
  21. return $mv;
  22. }
  23. public function add_action(){
  24. $biz_obj = new $this->_modelclassname($_POST[$this->_modelclassname]);
  25. $this->_newsmodeldao->create($biz_obj);
  26. return $this->list_action();
  27. }
  28. ....
  29. }
  30. class newsMultiActionController extends AbstractMultiActionController{
  31. private $_newsmodeldao;
  32. public function __construct(){
  33. parent::__construct();
  34. $this->_modelclassname = 'NewsModel';
  35. $this->_daoclass = new NewsModelDao($this->_dbconn);
  36. $this->_tpl_prefix = 'news';
  37. }
  38. }
  39. ?>

To jest fragment frameworka z php.pl
Co to jest $_newsmodeldao ? Staram się dojść skąd jest ten identyfikator modeluDao ale nie widzę...
bela
1. Następnym razem podaj link
2. Spójrz kilka listeningów wyżej
Mappet
1. worzenie_aplikacji_www/nudne_zadania_jeszcze_latwiejsze' target='_blank

2. tak jak zaleciłeś -> przeszukałem wczesniejsze listeningi i tam można znaleźć taki zapis
  1. <?php
  2. ...
  3. class newsMultiActionController
  4. {
  5. private $_newsmodeldao;
  6. public function __construct(){
  7. $dbconn = DBManager::getConnection();
  8. $this->_newsmodeldao = new NewsModelDao($dbconn);
  9. }
  10. ...
  11. }
  12. ?>

lecz w ostatecznym kodzie klasy widać że wywołanie modeluDao zostało zainicjowane pod inną zmienną ($this->_daoclass) chyba że jeszcze w abstrakcyjnej klasie dodać w konstruktorze ten fragment co wyżej?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.