安装 composer require php-di/php-di 基本用法 1.使用依赖注入 首先,让我们使用依赖注入来编写代码,而不考虑PHP-DI: class Mailer { public ,PHP-DI将创建一个Mailer对象和一个UserManager对象。 这不是PHP-DI独有的,但这仍然很棒。它将扫描代码并查看构造函数中需要哪些参数。 在我们的示例中, UserManager 构造函数接受一个 Mailer 对象:PHP-DI知道它需要创建一个对象。 如果你需要依赖自动注入,推荐使用php-di,以下是webman结合php-di的用法。 安装 composer require psr/container ^1.1.1 php-di/php-di ^6 doctrine/annotations ^1.14 修改配置config/container.php
原文地址(http://php-di.org/doc/getting-start) Getting started with PHP-DI (开始使用PHP-DI) Welcome! 如果你还不了解它的含义,这里有一整篇文章专门介绍它:理解依赖注入) Installation (安装) Install PHP-DI with Composer: (使用composer安装PHP-DI ) composer require php-di/php-di PHP-DI requires PHP 7.0 or above. 这并不是PHP-DI特有的,但这仍然是很棒的。 它将扫描代码并查看构造函数中需要的参数。 在我们的示例中,UserManager构造函数接受一个Mailer对象:PHP-DI知道它需要创建一个。 (如果您希望使用另一个框架或您自己的代码使用PHP-DI,请尝试在您的根应用程序类或前端控制器中使用$container->get()。我们来看看这个围绕PHP-DI构建的演示应用程序。)
单元测试框架 mockery/mockery - 测试模拟对象 代码优化 phpstan/phpstan - 静态代码分析 squizlabs/php_codesniffer - 代码规范检查 容器 & DI php-di /php-di - 依赖注入容器 前端工具 tedivm/jshrink - JavaScript压缩 matthiasmullie/minify - CSS/JS压缩 其他实用库 guzzlehttp
我们将使用 PHP 中最受欢迎的 DI 容器之一:名副其实的 PHP-DI(http://php-di.org/)。 值得推荐的是它文档中的依赖注入另解(http://php-di.org/doc/understanding-di.html) 可能会对读者有所帮助) 依赖注入容器 现在我们已经安装了 Composer ,那么安装 PHP-DI composer require php-di/php-di 修改 public/index.php 用来配置和构建容器。 // ...
PHP-DI(Direct Invocation)描述:直接调用模式,通常用于测试和开发环境,允许直接运行PHP脚本而不通过Web服务器。用途:适用于快速开发和测试。
容器实现对类的统一管理,并且确保对象实例的唯一性 常用的容器网上有很多,如 PHP-DI 、 YII-DI 等各种实现,通常他们要么大而全,要么高度适配特定业务,与实际需要存在冲突。
new MyClass(new AnotherClass()); (除了 AnotherClass他自己的一些依赖关系,在这种情况下Container将递归实例化它们,直到没有更多) 实例 以下是一个基于PHP-DI database.user'], $container['database.pass'] ); }); (Laravel本是不使用容器进行配置,它使用一个单独的Config类来代替,但是也是通过PHP-DI
双向客户端服务器WebSockets应用 JsonMapper - 将内嵌JSON结构映射为PHP类的库 Macaw - PHP路由类 FastRoute - PHP路由类 Pimple - 依赖注入容器 PHP-DI
PSR-11(ContainerInterface):使用自己喜欢的依赖注入容器(例如Laravel、Symfony、PHP-DI),在调用MCP元素时解析应用程序类及其依赖项。