如果我们将连接从控制器传递到模型,MVC模式会被破坏吗


Is the MVC pattern broken if we pass the connection from the controller to the model?

此时,我的模型通过在构造函数中自己创建pdo连接。

现在我想为模型构建一些单元测试,如果将pdo连接作为参数传递给构造函数,那么模拟它会更容易。

因此,在使模型更具自主性并自己实例化所需内容或将连接创建委托给控制器和拥有一个易于测试的模型之间存在折衷。

你觉得怎么样?

最佳解决方案是使用Repository Pattern在这种模式中,存储库进行pdo连接,控制器使用存储库。而且你可以很容易地测试你的回购。

这里有一个回购模式的例子:

https://bosnadev.com/2015/03/07/using-repository-pattern-in-laravel-5/

依赖注入模式解决了这个问题。