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ä:
<?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:
<div>
tämä on näkymä
toiminnosta act ohjaimessa page
</div>
Suorittakaa kuvatut toimenpiteet, ja sitten viittäkää toimintaamme osoiterivin kautta. Varmistakaa, että selaimessa ilmestyy teksti luomastanne näkymästä.