我在項目中獲得一個好的文件夾結構時遇到了一些麻煩,我想知道我可以使用哪些其他方式來構造我的文件。如何構建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