Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MVC] Podział aplikacji?
raikou
post
Post #1





Grupa: Zarejestrowani
Postów: 21
Pomógł: 0
Dołączył: 25.11.2005
Skąd: Warszawa

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


Witam

Mam trzy pytania odnośnie wzorca MVC, byłbym wdzięczny za wszelkie wskazówki.

1) Co powinno znaleźć się w modelu? Rozumiem że np. wszelkie funkcje dotyczące konretnych zadań nie związanych z wyświetlaniem danych. Czyli w takim razie klasa do zarządzania użytkownikami będzie modelem?

2) Filtracja i walidacja danych wejściowych, które mają mieć jakiś określony typ, powinna się odbywać w kontrolerze czy modelu? Nie mówię tutaj o zapisie do bazy/pliku, ta filtracja jest w osobnym DAO.

3) Wielojęzyczność strony mam rozumieć powinna być w zaimplementowana gdzieś w elemencie widoku?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
MMP
post
Post #2





Grupa: Zarejestrowani
Postów: 31
Pomógł: 0
Dołączył: 2.06.2006

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


To ja zaprezentuje jak obsługa formularzy wygląda u mnie, na przykładzie dodawania nowego użytkownika
  1. <?php
  2. class fAddUser extends Forms {
  3. // Jeżeli pole nie jest type="input"
  4. protected $aFieldSubmit = array (
  5. 'AddUser'
  6. );
  7. protected $aFieldPass = array (
  8. 'UserPass'
  9. );
  10. // Definuje jakie warunki muszą byc spełnione by przepuscić formularz
  11. public function validate()
  12. {
  13. $this -> UserName() -> must();
  14. $this -> UserMail() -> mail();
  15. }
  16. // A tutaj sprawdzam i wysyłam błędy
  17. public function check()
  18. {
  19. if( $this -> UserName() -> errorMust() )
  20. {
  21. $this -> UserName() -> error( 'Musisz podać nazwe użytkownika' );
  22. }
  23. if( $this -> UserMail() -> errorMail() )
  24. {
  25. $this -> UserMail() -> error( 'Musisz podać prawidłowy mail' );
  26. }
  27. }
  28. }
  29. // Klasa akcji
  30. class aAddUser extends Actions implements iViews, iAppends, iModel, iInput, iForms
  31. {
  32. public function start()
  33. {
  34. // Tworze instancje
  35. new fAddUser;
  36. // Rozpoczyna inicjowanie fomularza
  37. $this -> to();
  38. }
  39.  
  40. // Wywoływanie gdy nie stwierdzi błędu
  41. public function resultAddUser( Forms $oForm )
  42. {
  43. // Sprawdzenie czy użytkowników lub mail istnieje
  44. $oUsers = $this -> append( 'UsersAndGroups' );
  45. if( $oUsers -> userExists( $oForm -> post( 'UserName' ) ) )
  46. {
  47. $oForm -> UserName() -> error( 'Taki użytkownik już istnieje' );
  48. $bError = 1;
  49. }
  50. if( $oUsers -> mailExists( $oForm -> post( 'UserMail' ) ) )
  51. {
  52. $oForm -> UserName() -> error( 'Taki mail już istnieje w bazie' );
  53. $bError = 1;
  54. }
  55. if( $bError )
  56. {
  57. return;
  58. }
  59. // Wykonanie dodania użytkownika
  60. $oUsers -> addUser( $oForm -> post() );
  61. $oModules = $this -> append( 'Modules' );
  62. $iUser = Db::getInstance() -> lastInsertId();
  63. $oUsers -> addToGroupRegister( $iUser );
  64. if( $oModules -> isOn( 'Auth' ) )
  65. {
  66. $this -> assign( 'iUserAuth', $iUser );
  67. }
  68. $this -> assign( 'iUser', $iUser );
  69. Output::getInstance() -> redirectAfterForm();
  70. }
  71. }
  72. ?>

A w widoku opieram się na funkcjach formularza: form, error, isError, field.
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: 13.10.2025 - 06:54