MVC-mallin näkymät PHP:ssä

Lisätään nyt toimintollemme näkymät. Frameworkimme sääntöjen mukaan näkymät säilytetään kansiossa /project/views/.

Lisäksi frameworkissamme on sopimus: näkymätiedoston nimen tulee osua toiminnon nimeen ja sijoittua kansioon, jolla on sama nimi kuin ohjaimen nimellä. Esimerkiksi, jos meillä on ohjain PageController, kaikki sen näkymät tulee säilyttää kansiossa /project/views/page/. Itse näkymätiedoston tulee olla pääte .php. Esimerkiksi, jos ohjaimessa PageController on toiminto act, silloin sen näkymä tulee sijoittaa /project/views/page/act.php.

Jotta näkymä asetetaan jollekin toiminnalle, tämän toiminnon on kutsuttava metodia render, välittäen sille parametrina nimen näkymästä. Näkymän nimen tulee koostua ohjaimen nimestä pienellä kirjaimella, jonka jälkeen / kautta kirjoitetaan nimi toiminnosta.

Metodia render ei tarvitse toteuttaa ohjaimessa - se peritään yläluokasta Core\Controller. Lisäksi, jotta se toimii oikein, metodin tuloksen tulee palauttaa return kautta.

Joten, oletetaan että meillä on ohjain Page toiminnolla act. Liitetään tähän toimintoon näkymä:

project/controllers/PageController.php<?php
  namespace Project\Controllers;
  use Core\Controller;
  
  class PageController extends Controller
  {
    public function act()
    {
      return $this->render('page/act');
    }
  }
?>

Tehdään nyt tiedosto HTML-koodillamme näkymästämme:

/project/views/page/act.php<div>
  tämä on näkymä
  toiminnosta act ohjaimessa page
</div>
Задание 1

Suorittakaa kuvatut toimenpiteet, ja sitten viittäkää toimintaamme osoiterivin kautta. Varmistakaa, että selaimessa ilmestyy teksti luomastanne näkymästä.