我在项目中获得一个好的文件夹结构时遇到了一些麻烦,我想知道我可以使用哪些其他方式来构造我的文件。如何构建MVC模型和ORM模型
我目前正在一个MVC结构文件夹中工作。
www/
Controllers/
Models/
Views/
到目前为止没有什么特别的。但我也在使用ORM系统。有了它,我可以很容易地从我的数据库就像得到一个“对象”:
ORM::load('table');
现在这种代码应该驻留在模型吧?所以我会得到这样的东西:
<?php
class userModel
{
public function getAllUsers ()
{
return ORM::load('table');
}
public function getUserById ($id)
{
return ORM::load('table', 'userid=?', array($id));
}
}
?>
在我看来目前看起来不错......但还有一件事。我也可以在使用ORM系统时指定'模型'。有了这个模型,我基本上可以设置验证规则。像这样:
ORM::withModel('authModel');
这使ORM知道,在它增加了一个新的行(或更新现有的一个)到数据库,它应该首先检查以下模型验证规则。
<?php
class authModel //Or maybe authValidation??
{
// Method gets automatically triggered when an update is done with the ORM
public function onUpdate ($obj)
{
if ($obj->username == '')
throw new \Exception('No username');
}
public function onInsert ($obj)
{
// Validations here too.
}
}
?>
现在的问题是,我有2种模型。其中我基本上使用getters/setter来获取和存储数据到数据库(从我的控制器到我的模型)。
而我有另一个模型,其中设置了验证规则......我不想在同一个文件夹中混合使用这两个模型。所以我必须为此提出另一个结构。喜欢的东西:
www/
Controllers/
Models/
Repositories/
Entities/
Views/
这只是我的模型是不是一个真正的“仓库”,因为它没有存储在回购类中的任何对象,并没有commit()方法之类的东西。
我也不能存储在实体文件夹中的第2个型号(验证),因为他们不是实体在所有...
任何想法,我应该如何构建这个..?
受益匪浅? – 2012-04-16 07:34:32
@webbandit因为我创建了自己的'框架'来获得更多的经验。我知道我可以轻松使用其他框架。但我也想通过这样做来学习,我自己也是这么做的。 – Vivendi 2012-04-16 07:56:02