Tümü,
Ben (web için, yine) MVC bir örnek olarak benim web dev Sınıfta verilen bazı örnek kod okuyorum. Bu kodda, geri index.php
sonra içine (daha sonra Model ve Görünüm modülleri diyoruz) çeşitli kontrolörleri için index.php
sayfa gezinmek ve bir sistem var.
Ben MVC nasıl çalıştığını anlamak.
Ne boğuşuyor ediyorum navigasyon mekanizmadır. Ben bütün parçaları birlikte çalışmak nasıl anlamakta güçlük yaşıyorum.
Herkes aşağıdaki koda bir göz atın ve bu dinamik web sitesi navigasyon ile başa çıkmak için bilinen bir yöntem / desen eşleşirse bana söyleyebilir misiniz? Varsa (Belki Ön Denetleyicisi?), Sonra benim umudum, daha kolay üzerinde biraz daha fazla araştırma yapmak olabilir.
Çok teşekkürler!
JDelage
Index.php
<?php
require_once("User.php");
session_start();
if (isset($_GET['action']))
$action= $_GET['action'];
else
$action="";
switch ($action) {
case 'login':
require_once('Login.php');
$command= new LoginControler();
break;
case 'logoff':
require_once('Logoff.php');
$command= new LogoffControler();
break;
// Several other cases
default:
require_once('Unknown.php');
$command= new UnknownControle();
}
$command->execute();
require_once('EntryMenu.php'); // Those are objects that represent both the
// menu label and the links.
$menu= array(
new EntryMenu("Login", "index.php", array("action" => "logon")),
new EntryMenu("Logoff", "index.php", array("action" => "logoff")),
new EntryMenu("Write", "index.php", array("action" => "write")),
new EntryMenu("Read", "index.php", array("action" => "read"))
);
if ($command->redirect) {
header('Location: ' . $command->redirect);
} else if ($command->page) {
include("ui/header.php");
include("ui/menu.php");
echo "<div class='content'>";
include("ui/". $command->page);
echo "</div>";
include("ui/footer.php");
}
?>
Controler.php
<?php
class Controler {
public $page= "problem.php";
function execute() {}
}
?>
LogoffControler.php
<?php
require_once('Controler.php');
class LogoffControler extends Controler {
function execute() {
$this->redirect= "index.php";
unset($_SESSION['user']);
}
}
?>
LoginControler.php
<?php
require_once('LoginModel.php'); // This manages the exchanges with the user db
require_once('Controler.php');
class ConnexionControle extends Controler {
public $page= "LoginForm.php";
function execute() {
// More code to deal with incorrectly filled login forms
$login = new LoginModel();
$login->loginUser($_POST['login'], $_POST['password']);
if ($login->userLogedIn()) {
$_SESSION['user']= $login->user;
$this->redirect= "index.php";
}
// More code to deal with invalid logins
}
}
?>