Kontrolery w MVC w PHP

Pierwsza rzecz, z którą się zapoznamy - to kontrolery. Kontrolery przetwarzają żądania użytkownika, rozumieją, co użytkownik chciał poprosić od strony internetowej, proszą o odpowiednie dane z modelu i wysyłają je do widoku.

Kontrolery reprezentują klasy OOP. Jeden plik - to jedna klasa i, odpowiednio, jeden kontroler. W naszym frameworku kontrolery będą przechowywane w folderze project/controllers.

Poćwiczmy w tworzeniu kontrolerów. Dla rozgrzewki zrobimy klasę PageController, która będzie zarządzać stronami tekstowymi na naszej stronie internetowej.

Stwórzmy od razu plik dla naszego kontrolera. Zgodnie z zasadami naszego frameworku każda klasa powinna być przechowywana w pliku o tej samej nazwie (łącznie z wielkością liter). To znaczy nasza klasa PageController będzie przechowywana w pliku PageController.php. Stwórz ten plik w folderze project/controllers.

Zróbmy w tym pliku naszą klasę:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use \Core\Controller;
  
  class PageController extends Controller
  {
    
  }
?>

Jak widzicie, nasza klasa należy do przestrzeni nazw Project\Controllers, zgodnie z konwencją autoloadingu plików (to znaczy ścieżka po folderach powinna pokrywać się z przestrzenią nazw).

Ponadto, nasza klasa dziedziczy po klasie Core\Controller, znajdującej się w jądrze frameworka. Nie trzeba w tym szukać głębokiego sensu, a po prostu trzeba przyjąć jako zasadę frameworka. Oto ta zasada: wszystkie tworzone przez was kontrolery muszą dziedziczyć po klasie Core\Controller, aby wszystko działało, jak należy.