Proste zasady jak zrozumieć MVC

CodeIgniterZawsze zaskakiwały mnie bardzo różne interpretacje i implementacje wzorca MVC przez programistów PHP. Najczęściej wynikały one z niezrozumienia tego wzorca lub niechęci do zmieniania swoich przyzwyczajeń w programowaniu.

Na stronie Wiki FrameWorka CodeIgniter znalazłem genialnie prostą listę zasad jak stosować wzorzec Model – View – Controller. Dodałem do niej kilka swoich uwag, a wyniki tego można znaleźć poniżej.

Co należy robić:

Widoki(Views):

  • 1. Zawierają pętle i prostą logikę opartą na if’ach.

Kontrolery (Controllers):

  • 1. Sterują logiką Aplikacji (Co się ma dziać jak użytkownik kliknie coś, albo wypełni formularz itd.)
  • 2. Pośredniczą w uzyskiwaniu danych z bazy, a wyświetleniem ich w widoku.
  • 3. Przygotowują wszystkie informacje potrzebne do stworzenie widoku.
  • 4. Wywoływanie Modeli Bazy Danych do pobrania informacji.
  • 5. Obsługa wszystkich błędów i wyjątków.

Modele (Models):MVC-pattern

  • 1. Obsługują logikę biznesową jeśli jest potrzebna przy wykonywanie zapytań do Bazy danych
  • 2. Przechwytuje wszystkie błędy i następnie wysyłają je do kontrolera.
  • 3. Testowanie poprawności danych.  Jeśli wykorzystujesz ten sam model w kilku aplikacjach, możliwe jest że zapomnisz z weryfikować dane wejściowe w kontrolerze, dlatego pewniej jest, jeśli sprawdzenie następuje w modelu.

NIGDY NIE RÓB TEGO:

Widoki (Views):

  • 1.Nigdy nie mają dostępu do bazy danych
  • 2. Nigdy nie wykorzystują bardziej skomplikowanych rzeczy niż pętle i warunki typu ‘if’

Kontrolery (Controllers):

  • 1. Nigdy nie zawierają kodu html.
  • 2. Nigdy nie mają bezpośredniego dostępu do bazy danych

Oryginalne źródło tekstu: http://codeigniter.com/wiki/MVC/

<img class=”alignleft size-full wp-image-93″ title=”CodeIgniter” src=”http://mcwolf.net/wp-content/uploads/codeigniter.png” alt=”CodeIgniter” width=”160″ height=”160″ />Zawsze zaskakiwały mnie bardzo różne interpretacje i implementacje wzorca MVC przez programistów PHP. Często wynikały one z niezrozumienia tego wzorca. Na stronie Wiki FrameWorka CodeIgniter znalazłem genialnie prostą listę zasad jak stosować wzorzec Model – View – Controller. Uzupełniłem ją o parę swoich uwag.

<strong>Co należy robić:</strong>

Widoki(Views):
<ul>
<li>Zawierają pętle i prostą logikę opartą na if’ach.</li>
</ul>
Kontrolery (Controllers):
<ul>
<li>Sterują logiką Aplikacji (Co się ma dziać jak użytkownik kliknie coś, albo wypełni formularz itd.)</li>
<li>Pośredniczą w uzyskiwaniu danych z bazy, a wyświetleniem ich w widoku.</li>
<li>Przygotowują wszystkie informacje potrzebne do stworzenie widoku.</li>
<li>Wywoływanie Modeli Bazy Danych do pobrania informacji.</li>
<li> Obsługa wszystkich błędów i wyjątków.</li>
</ul>
Modele (Models):
<ul>
<li>Obsługują logikę biznesową jeśli jest potrzebna przy wykonywanie zapytań do Bazy danych</li>
<li>Przechwytuje wszystkie błędy i następnie wysyłają je do kontrolera.</li>
<li>Testowanie poprawności danych.  Jeśli wykorzystujesz ten sam model w kilku aplikacjach, możliwe jest że zapomnisz z weryfikować dane wejściowe w kontrolerze, dlatego pewniej jest, jeśli sprawdzenie następuje w modelu.</li>
</ul>
<strong>NIGDY NIE RÓB TEGO:</strong>

Widoki (Views):
<ul>
<li>Nigdy nie mają dostępu do bazy danych</li>
<li>Nigdy nie wykorzystują bardziej skomplikowanych rzeczy niż pętle i warunki typu ‘if’</li>
</ul>
Kontrolery (Controllers):
<ul>
<li>Nigdy nie zawierają kodu html.</li>
<li>Nigdy nie mają bezpośredniego dostępu do bazy danych</li>
</ul>
Orginalne źródło:<a title=”http://codeigniter.com/wiki/MVC/” href=”http://codeigniter.com/wiki/MVC/” target=”_blank”> http://codeigniter.com/wiki/MVC/</a>