Witam. Zacząłem naukę o klasach i wzorcu MVC. Napisałem jako pierwsze takie "coś" w formie ćwiczenia. Prosiłbym o sprawdzenie tego kodu i o podpowiedzenie mi, czy poprawnie te klasy, metody oraz kod w nich, napisałem, i gdzie tworzy się widok? Tak jak teraz to zrobiłem w klasie View z wykorzystaniem switch'y, czy powinno się includować plik html z widokiem? A i przypomniało mi się jeszcze jedno, mając widok z wieloma zmiennymi (z php), to miesza się - dodaje się je od razu w widoku czy jakos inaczej sie to robi np jakies parsowanie? Z góry dziękuję za pomoc.
index.php
<?php
require_once 'classes.php';
?>
<html>
<head>
<link rel="stylesheet" href="main.css" type="text/css" />
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
</head>
<body>
<div class="page">
<div class="top"></div>
<a href="?page=kontakt">Kontakt</a>
<a href="?page=pomoc">Pomoc</a>
<a href="?page=oferta">Oferta</a>
<?php
$controller = new Controller();
$controller->load();
?>
elo
</div>
</body>
</html>
classes.php
<?php
class Model {
}
class View {
public function showPage($param) // protected
{
switch($param)
{
case 'kontakt':
{
echo '<div><b>Kontakt</b></div>';
echo '<p>Jesli chcesz sie z nami skontaktowac napisz do nas na adres email</p>';
break;
}
case 'pomoc':
{
echo '<div><b>Pomoc</b></div>';
echo '<p>Nie udzielamy pomocy, spierniczac.</p>';
break;
}
case 'oferta':
{
echo '<div><b>Oferta</b></div>';
echo '<p>Oferujemy wszystko i nic, za darmo i drogo.</p>';
break;
}
}
}
}
class Controller {
private $page;
private $view;
public function load()
{
$this->page = $_GET['page'];
$this->view = new View;
switch($this->page)
{
case 'kontakt':
$this->view->showPage('kontakt');
break;
case 'pomoc':
$this->view->showPage('pomoc');
break;
case 'oferta':
$this->view->showPage('oferta');
break;
}
}
}
?>