我最近發現了優秀的用於PHP的redbean ORM庫,這使得在我的web應用程序中執行CRUD操作變得微不足道,但是我最近實現了一些我開始質疑的附加功能。爲了更方便地保存數據,我創建了一個名爲redbean.php的程序化表單處理腳本。每當這個腳本被指定爲形式的行動,它會根據提交給它的數據動態地創建一個新的bean:讓觀點直接與模型層談話是否是不好的做法?
<?php Template::startContent(); ?>
<form action="forms/redbean.php" method="POST">
<input type="hidden" name="bean" value="book"/>
<input type="text" name="author"/>
<input type="text" name="pubDate"/>
<input type="submit" value="Save Bean!"/>
</form>
<?php Template::endContent(); ?>
的原因,我開始質疑這種方法在我的框架使用,因爲一切MVC模式,但這感覺就像是作弊,因爲數據直接從視圖到ORM庫。無論如何,我正在嘗試使用PHP和Web編程的最佳實踐來實現此應用程序,所以我的問題是這種方法是否代表我不知道的反模式,或者是否還有其他任何我應該考慮這個實現。
你的視圖層甚至應該知道有一個數據庫。這違反了SoC(Separation of Concerns) – Orangepill