Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> MVC a kod html
bor1904
post
Post #1





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 15.10.2009
Skąd: gdańsk

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


Witam,
Nie jestem zawodowcem jeżeli chodzi o programowanie w PHP i postanowiłem nieco podnieść swoje umiejętności i poszerzyć wiedzę.
Najczęściej pracuje na CodeIgniter i w związku z tym zacząłem przeglądać tutki (szczególnie video) i troszkę się zaskoczyłem.

Kiedyś zgłębiając zasady wzorca MVC wielokrotnie spotykałem się z kilkoma fundamentalnymi zasadami takimi jak:
...
-kod html,JS,CSS może występować tylko w widoku
-kod SQL,kod operacji na plikach, WS itp może występować tylko w modelu
-kontroler pobiera dane od usera, jak trzeba przepuszcza je przez model i to co otrzyma z modelu wrzuca do widoku gdzie ubierane jest to w znaczniki i wyświetlane (więc kontroler raczej szczupłym tworem jest)
...

No i na owych tutorialach (mimo iż widać że programiści od wczoraj nie dziobią w PHP) to jest wolna amerykanka w stosunku do tych zasad. Najczęściej cała masa html jest produkowana w kontrolerze, a i w kilku przypadkach w modelu tworzony jest gotowy kod html do przesłania przez kontroler do widoku.


Co o tym sądzicie ?

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





Grupa: Zarejestrowani
Postów: 131
Pomógł: 1
Dołączył: 15.10.2009
Skąd: gdańsk

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


Ja tam jestem prostym chłopem i tak so to wydedukowałem:

Najpierw wybrałem sobie autorytet - CodeIgniter - dlaczego? (google: "php framework ranking" i kolejno...)

2 miejsce http://www.phpframeworks.com/top-10-php-frameworks/
1 miejsce http://davidjconnelly.wordpress.com/2011/0...mework-of-2011/
1 miejsce http://hotframeworks.com/languages/php
3 miejsce http://www.devshed.com/c/a/PHP/7-PHP-Frame...ed-For-Speed/2/
w 5 najlepszych ever http://www.wykop.pl/ramka/347003/5-najleps...warto-wiedziec/
....

Twórcy twierdzą że jest to FW oparty na MVC:
http://codeigniter.com/user_guide/overview/mvc.html

Do kotawbutach " A View will normally be a web page," a czym jest typowa strona WWW jak nie HTMLem?
(oczywiście prosta klasa View nie napisana jest w HTML ...ale chyba nikogo nie podejrzewa się o tak wyrafinowane myślenie)

Obsługę widoku i modelu przez kontroler zalecają tak w oficjalnym tutku:
http://codeigniter.com/user_guide/general/models.html

  1. class Blog_controller extends CI_Controller {
  2.  
  3. function blog()
  4. {
  5. $this->load->model('Blog');
  6.  
  7. $data['query'] = $this->Blog->get_last_ten_entries();
  8.  
  9. $this->load->view('blog', $data);
  10. }
  11. }


Tego nie neguje nikt z wielu tysięcy developerów i użytkowników CI ...





Dlaczego więc głoszę nieprawdę ?




Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


Cytat(bor1904 @ 28.09.2012, 20:21:00 ) *
Obsługę widoku i modelu przez kontroler zalecają tak w oficjalnym tutku:
http://codeigniter.com/user_guide/general/models.html

  1. class Blog_controller extends CI_Controller {
  2.  
  3. function blog()
  4. {
  5. $this->load->model('Blog');
  6.  
  7. $data['query'] = $this->Blog->get_last_ten_entries();
  8.  
  9. $this->load->view('blog', $data);
  10. }
  11. }


Tego nie neguje nikt z wielu tysięcy developerów i użytkowników CI ...





Dlaczego więc głoszę nieprawdę ?

Ponieważ każdy uważa że jego rozwiązanie jest poprawne. Ci co chcą podciągnąć się bliżej MVC stosuja klasy/moduły w stylu View_Model
http://techportal.inviqa.com/2010/11/02/cr...wmodel-pattern/
Niewiem na ile jest to poprawnę, skuteczne i wygodnę ponieważ sam tego nie używałem.

Osobiście robie mniej więcej tak
  1. public function action_add()
  2. {
  3. $this->template->content = $this->form();
  4. }
  5.  
  6. public function action_edit()
  7. {
  8. $value = array();
  9. $value = $this->model->get()->current();
  10.  
  11. if(!$value)
  12. {
  13. throw new HTTP_Exception_404("No item found");
  14. }
  15.  
  16. $this->template->content = $this->form($value);
  17. }
  18.  
  19. public function form($values = array)
  20. {
  21. return View::Factory('form');
  22. }

Oczywiście nie jest to poprane rozwiązanie.
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: 4.10.2025 - 18:37