php – MVC中的依赖注入

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php – MVC中的依赖注入脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试创建简单的MVC骨架,并且我坚持使用依赖项.

这就是我现在拥有的:

$config = new Config();
$database = new Database($config);
$uri = new Uri('article/5');
$request = new Request($uri);
$response = new Response;
$router = new Router;
$dispatcher = new Dispatcher($request,$response,$router);

$dispatcher->dispatch(); // Routing,instantiate controller,execute action,send response

问题是:任何对象如何访问任何依赖项?

一些例子:

>控制器可能需要Config才能获得输出格式选项.
> MapPEr可能需要数据库来执行查询.
>任何Controller / Helper都需要访问LOG.
> Helper可能需要任意数量的依赖项(例如:Uri_Helper需要Router).

我能想到的唯一可能是使用Registry,但这违反了Demeter法则(询问你真正需要的是什么).

你写了 factories(优秀的文章).这可能完全无聊(就像文章中提到的那样),所以你可以使用DI框架,例如:

> Symfony DIC:见Juraj的帖子.
> PD
> Yadif
> Drip(PHP4):但暂时没有更新.

另外我想指出Misko的博客非常有趣,并且有很多关于如何正确测试的好读物.特别是guide to writing testable code是必读的.

P.S:我认为你应该写工厂,因为PHP是一种脚本语言,你应该使用尽可能少的代码来使你的网站快速.这是PHP frameworks的问题.

Rasmus Ledorf(PHP发明家)的引用:

脚本宝典总结

以上是脚本宝典为你收集整理的php – MVC中的依赖注入全部内容,希望文章能够帮你解决php – MVC中的依赖注入所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。