2010-01-31 36 views
1

整个MVC设计让我有点困惑,因为我从来没有用过它。下面是我的当前项目的总体布局...这是一个很大的PHP网站的布局吗?

的账户文件夹包含所有basicly我的核心文件我的用户系统

根/帐号/ login.php中
根/帐号/家。 PHP
根/帐户/ l​​ogout.php
根/帐户/的settings.php

然后,我必须为每个 “模块” 一个单独的文件夹(论坛,博客等)

任何函数和类和配置文件是从加载

根/论坛/根/博客/
根/邮件/

然后包括这样

根/包括目录/ classes/ root/includes/bootstrap.php //此文件自动加载所需的类文件并确保全站范围内的数据库连接

大部分“工作”是在课堂文件中完成的。显然,我忽略了数百个文件和其他几个文件夹(css/js/images /)

所以我想知道,这看起来像是一个大型网站的好设计吗?这不算是MVC吗?请不要将我引用到框架。

+2

以及它与其说是在文件系统中的布局,而是你的类的布局以及它们如何协同工作 – Mene 2010-01-31 18:10:44

+1

通过它的外观,它似乎并不像一个MVC。为了澄清,MVC可以很容易地描述为,用户使用*控制器*来操纵*模型*并将数据显示在*视图*中。看起来你的项目会有这种关系吗? – 2010-01-31 18:11:28

+0

我倾向于在htdocs目录之外尽可能多地放置(包含在其他文件中的所有文件)。这样,当mod_php未加载时,您可以获得一些额外的保护,以避免所有代码可以下载。 – Wim 2010-01-31 19:15:07

回答

6

不,看起来好像你不一定使用MVC。他们大多通过他们的真实MVC名称分组的时间:

如果我猜你是如何区分你的文件,你的结构看起来是这样的

views/ 
    account/ 
    login.php 
    home.php 
    settings.php 
    logout.php 
controllers/ #maybe what you call modules 
    account.php 
    blog.php 
    mail.php 
models/  #maybe what you call "classes" are models 
    account.php 
    blog_entry.php 
    comment.php 

只是一个快速的参考:

  • M odel =为特定对象/函数处理与数据库的所有交互的类,通常与数据库记录的比例为1比1(当然与其他模型有关系)。
  • V =显示内容给用户的句柄。这些文件中不应包含业务代码(或很少)。例如,数据库访问不应在视图中执行。
  • C ontroller =接收用户请求的脚本,决定参与哪些模型,执行必要的操作(尽可能多地传递给个别模型),然后准备数据以显示用户和将其发送到视图进行显示。
+0

真棒答案+1 – Gabe 2010-01-31 18:58:09