在 MVC 中连接到 DB 的位置
Posted
技术标签:
【中文标题】在 MVC 中连接到 DB 的位置【英文标题】:Where to connect to DB in MVC 【发布时间】:2011-01-15 10:50:58 【问题描述】:我正在使用 php 并为我的 Web 应用程序构建一个 MVC。我需要连接到我的数据库,查看当前 URL,将其与我的数据库中的数据进行比较,然后将正确的内容从我的数据库返回给用户。
我的问题是,我应该将连接到数据库并对其进行处理的代码放在哪里?这会放在 Model 类中吗?
【问题讨论】:
【参考方案1】:模型应该是主动使用数据库连接的实体,对于使用表网关/活动记录实现的简单模型可能会起作用。对于更复杂的模型,数据映射器进一步将数据库与应用程序的其余部分隔离开来(这使得更改存储后端的侵入性更小)。
您的控制器应处理请求并将所需的任何相关数据传递给模型。
也就是说,简单地建立一个数据库连接通常是由某种引导脚本完成的。然后模型(或数据映射器)使用该连接。我不确定这在技术上是否属于“控制器”。在实践中,大多数框架都有引导程序、路由器和前端控制器 - 无论您如何称呼它们,您的数据库都应该由模型使用,但由您的引导程序设置。
【讨论】:
【参考方案2】:嗯,模型只是对象的定义,例如可以是 Vehicle。因此,与数据库的连接应该在 Model
抽象类(Vehicle 类将继承)中,并带有可以保存此信息的方法。
如果你想要更多的灵活性和更高级的东西,请使用框架,我个人推荐CakePHP。
【讨论】:
【参考方案3】:所有的数据库交互都在 Model 类中。
【讨论】:
PHP 中的模型镜像数据库中的表/列...不是连接或操作以上是关于在 MVC 中连接到 DB 的位置的主要内容,如果未能解决你的问题,请参考以下文章
Perl 无法在 cronjob 中连接到 Oracle DB
如何在 Eclipse IDE 中连接到 mysql db? [复制]