使用PHP怎么实现依赖注入模式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。用法DatabaseConfiguration 被注入 DatabaseConnection 并
使用PHP怎么实现依赖注入模式?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
DatabaseConfiguration 被注入 DatabaseConnection 并获取所需的 $config 。如果没有依赖注入模式, 配置将直接创建 DatabaseConnection 。这对测试和扩展来说很不好。
Doctrine2 ORM 使用依赖注入。 例如,注入到 Connection 对象的配置。 对于测试而言, 可以轻松的创建可扩展的模拟数据并注入到 Connection 对象中。
Symfony 和 Zend Framework 2 已经有了依赖注入的容器。他们通过配置的数组来创建对象,并在需要的地方注入 (在控制器中)。
代码DatabaseConfiguration.php
<?phpnamespace DesignPatterns\Structural\DependencyInjection;class DatabaseConfiguration{ private $host; private $port; private $username; private $passWord; public function __construct(string $host, int $port, string $username, string $password) { $this->host = $host; $this->port = $port; $this->username = $username; $this->password = $password; } public function getHost(): string { return $this->host; } public function getPort(): int { return $this->port; } public function getUsername(): string { return $this->username; } public function getPassword(): string { return $this->password; }}?>
DatabaseConnection.php
<?phpnamespace DesignPatterns\Structural\DependencyInjection;class DatabaseConnection{ private $configuration; public function __construct(DatabaseConfiguration $config) { $this->configuration = $config; } public function getDsn(): string { // 这仅仅是演示,而不是一个真正的 DSN // 注意,这里只使用了注入的配置。 所以, // 这里是关键的分离关注点。 return sprintf( '%s:%s@%s:%d', $this->configuration->getUsername(), $this->configuration->getPassword(), $this->configuration->getHost(), $this->configuration->getPort() ); }}?>
测试Tests/DependencyInjectionTest.php
<?phpnamespace DesignPatterns\Structural\DependencyInjection\Tests;use DesignPatterns\Structural\DependencyInjection\DatabaseConfiguration;use DesignPatterns\Structural\DependencyInjection\DatabaseConnection;use PHPUnit\Framework\TestCase;class DependencyInjectionTest extends TestCase{ public function testDependencyInjection() { $config = new DatabaseConfiguration('localhost', 3306, 'domnikl', '1234'); $connection = new DatabaseConnection($config); $this->assertEquals('domnikl:1234@localhost:3306', $connection->getDsn()); }}?>
php的框架:1、Laravel,Laravel是一款免费并且开源的PHP应用框架。2、Phalcon,Phalcon是运行速度最快的一个PHP框架。3、Symfony,Symfony是一款为WEB项目准备的PHP框架。4、Yii,Yii是一款快速、安全和专业的PHP框架。5、CodeIgniter,CodeIgniter是一款非常敏捷的开源PHP框架。6、CakePHP,CakePHP是一款老牌的PHP框架。7.Kohana,Kohana是一款敏捷但是功能强大的PHP框架。
关于使用PHP怎么实现依赖注入模式问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注编程网PHP编程频道了解更多相关知识。
--结束END--
本文标题: 使用PHP怎么实现依赖注入模式
本文链接: https://www.lsjlt.com/news/278052.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
2024-02-29
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0