Widoki w MVC w PHP
Dodajmy teraz widoki do naszych akcji.
Zgodnie z zasadami naszego frameworka widoki
przechowywane są w folderze /project/views/.
Ponadto, w naszym frameworku obowiązuje
konwencja: nazwa pliku z widokiem musi
pokrywać się z nazwą akcji i być umieszczona
w folderze o takiej samej nazwie jak nazwa kontrolera.
Na przykład, jeśli mamy kontroler PageController,
to wszystkie jego widoki powinny być przechowywane
w folderze /project/views/page/. Sam
plik widoku powinien mieć rozszerzenie
.php. Na przykład, jeśli w kontrolerze
PageController będzie akcja act,
to jego widok należy umieścić w
/project/views/page/act.php.
Aby przypisać widok do jakiejś
akcji, ta akcja musi wywołać metodę
render, przekazując jej parametrem nazwę
widoku. Nazwa widoku powinna składać się
z nazwy kontrolera z małej litery, po
której przez / będzie zapisana nazwa
akcji.
Metody render nie trzeba implementować
w kontrolerze - jest dziedziczona z klasy
rodzicielskiej Core\Controller. Ponadto,
dla poprawnego działania wynik pracy metody
należy zwrócić przez return.
A więc, załóżmy że mamy kontroler Page
z akcją act. Przypiszmy
do tej akcji widok:
<?php
namespace Project\Controllers;
use Core\Controller;
class PageController extends Controller
{
public function act()
{
return $this->render('page/act');
}
}
?>
Stwórzmy teraz plik z kodem HTML naszego widoku:
<div>
to jest widok
akcji act kontrolera page
</div>
Wykonaj opisane manipulacje, a następnie odwołaj się do naszej akcji przez pasek adresu. Upewnij się, że w przeglądarce pojawi się tekst z utworzonego przez ciebie widoku.