Ben sırf onu çevreleyen dini şevk bu soruyu cevaplamak için tereddüt.
Genel kavramlar arkasında konularda gerçekten iyi bir anlayış elde etmek için This Wiki Discussion Page Bu tartışma sayfa wiki MVC eşyanın etrafında olduğunu görüyoruz.
İşte (btw CodeIgniter'ı kullanabilir ve çok gibi bu tür sesler) takip etmek gibi pratik kural şudur:
"View" neredeyse hiçbir mantığı olmalıdır. Bu sadece basit değişkenleri echos biberli PHP ile (web dünyasında) HTML olmalıdır. Sizin örnekte size kendi görünümüne formu kıracak ve yüklü ya da değil eğer kontrolör belirleyecek.
Görünümü, nereye veri geliyor ya da nerede hiçbir kavram olmalıdır: Ben bunun bu şekilde bakmak istiyorum. Model görünümü agnostik olmalıdır. Kontrolör modeli verileri kafesleri ve görünümüne sağlar - ve bu görünümden girdi alır ve modeli için filtreler.
Burada hızlı ve kirli (denenmemiş - ama karşısında puan almak gerekir) örnek:
Theapp.php (The App controller)
class Theapp extends Controller
{
var $_authenticated;
var $_user;
var $_menu; // array of menus
function __construct()
{
session_start();
if (isset($_SESSION['authenticated']) && $_SESSION['authenticated'])
{
$this->_authenticated = $_SESSION['authenticated']; // or some such thing
$this->_user = $_SESSION['user'];
}
$this->_menu = array("Logout", "Help", "More");
parent::__construct();
$this->loadView("welcome"); // loads primary welcome view - but not necessarily a complete "html" page
}
function index()
{
if (!$this->_authenticated)
$this->loadView("loginform");
else
{
$viewData['menu'] = $this->_menu;
$viewData['user'] = $this->_user;
$this->loadView("menu", $viewData);
}
}
function login()
{
/* code to authenticate user */
}
function Logout() { /* code to process Logout menu selection */ }
function Help() { /* code to process Help menu selection */ }
function More() { /* code to process More menu selection */ }
}
welcome.php
<h1> Welcome to this quick and dirty app!</h1>
All sorts of good HTML, javascript, etc would be put in here!
loginform.php
<form action"/Theapp/login" method="post">
User: <input id='user' name='user'>
Pass: <input id='pass' name='pass' type='password'>
<input type='submit'>
</form>
menu.php
Hi <?= $user ?>!<br>
Here's your menu<br>
<? foreach ($menu as $option) { ?>
<div class='menuOption'><a href='/Theapp/<?=$option?>'><?=$option?></a></div>
<? } ?>
Umarım bu yardımcı olur.