Niektóre z głównych koncepcji mvc to separacjs i ponowne wykorzystanie kodu.

Stworzenie w innej formie i przekazanie jako zmiennej w widoku głównym.

W ten sposób, można ponownie użyć formularza w innych miejscach, w razie potrzeby.

Po pracy dokładnie z Framework Symfony, mogę powiedzieć, działania zainicjowania obiektów formularza (wraz z innymi zmiennymi szablonu), są przekazywane do widoku za pomocą wzorca dekorator. -

Kontroler strony powinien zainicjować obiekt formularza, który jest następnie przekazywany do widoku.

Moim zdaniem, powinna zawierać tylko html i API za pomocą obiektu formularza (zmienna dostępne z punktu)

  1. $vars['title'] = 'tytuł';[
  2.  
  3. $this->load->view('user',$vars);


Router uruchamia mi kontroler i metodę i przekuje request do kontrolera. Następnie kontroler uruchamia poprzez loader model i widok ze zmiennymi do przekazania.

  1.  
  2. class Loader{
  3.  
  4. public function view($name,array $vars = null){
  5.  
  6. $file = VIEWS.ucfirst($name).'.php';
  7.  
  8. if(is_readable($file)){
  9.  
  10. if(isset($vars) && is_array($vars)){
  11.  
  12. extract($vars);
  13.  
  14. }
  15.  
  16. ob_start(); // zbiera wszystkie dane które mają być wysłane do przeglądarki w jednej zmiennej
  17.  
  18. require($file);
  19.  
  20. return ob_end_flush(); // az napotka to
  21.  
  22. }
  23.  
  24. throw new Exception('View cannot render template' . $file .'. Template not exist.');
  25.  
  26. }
  27.  



Nie potrafię zorganizować tak struktury, żeby móc stworzyć bloki kodu w widoku, tzn. boksy.

W tym przykładzie wczyta od razu plik widoku i przypisze zmienne w pętli

Czy to sprawa ram MVC, którego używam ? Czy powininem dopisać klasę coś na wzór Page ?