用 PHP5 打造简易的 MVC 架构

摘要

这是来自PHPit的Dennis Pallett所写的一篇文章,在这篇交里你将学习到如何用PHP+SPL来制作出简单的MVC 系统。

[adsense][/adsense]

Introduction

在这篇教学中你的环境设定必须是PHP5.1以上的版本并且安装了SPL的功能,这篇教学中会告诉你如何建构简单的Model-View-Controller系统,这是大型的网站应用程式最常见的设计模式,我将给你从开始到完整的MVC系统所有需要的步骤。

进入点

MVC系统最重要的一件事就是它只有一个进入点:

<?phpinclude (‘global.php’);

// Rest of the actual page code here
?>

我们将有一个单一的页面来处理所有的请求,这个意思就是我们不需要在每次要新增一个页面时就include global.php,这单一的进入点的程式我们会叫做index.php,这时候看起来会像这样:

<?php 

// Do something?>

就像你看到的,index首页尚未做任何事,但是之后没多久你会看到。

为了确使所有的请求都会到index首页我们会使用mod_rewrite引擎来设定.htaccess的RewriteRule,将下面的程式码放入.htaccess中,并将该档案置于index.php同一个路径中。

RewriteEngine onRewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?route=$1 [L,QSA]

首先我们会使用RewriteCond命令来确认档案是否存在,如果不存在我们会将它导向到index.php,我们也必须其他的档案是否存在,因为我们也想要能够使用非一般的PHP档案,像是JPEG的图档。

假如你不能使用.htaccess或是mod_rewrite,你就必须手动地将请求导向到index.php,也就是你的连结会像是这样”index.php?route=[request-goes-here]”,例如,index.php?route=chat/index。

现在所有的请求都会经过单一的进入点,我们可以开始撰写index.php,我们必须做的第一件事是一些起始的工作,新增一个includes的目录,然后在该路径中新增一个startup.php的档案,然后将下列的程式码加入index.php中:

# Startup tasks (define constants, etc)require ‘includes/startup.php’;

頁次: 1 2 3 4 5