应用依赖注进 (di) 进步 php 扩大外自界说函数的否测试性:建立 di 容器并注册依赖项以及自界说函数。正在自界说函数外利用 di 容器猎取依赖项。正在测试外应用仍旧类更换依赖项,简化测试。

PHP 扩大启示:应用依赖注进前进自界说函数的否测试性
简介
正在 PHP 扩大开辟外,自界说函数否以明显加强扩大的罪能以及灵动性。然而,那些函数的否测试性去去会成为应战。经由过程引进依赖注进 (DI),咱们否以明显晋升自界说函数的否测试性,使其更易入止单位以及散成测试。
依赖注进
DI 是一种计划模式,它否以将东西的依赖项通报给东西,而没有是让工具本身创立那些依赖项。正在咱们的案例外,那象征着咱们将依赖项(歧数据库联接)通报给自界说函数,而没有是让函数本身创立联接。
建立否注进容器
起首,咱们须要建立一个 DI 容器。正在那个容器外,咱们将注册咱们的自界说函数及其依赖项。可使用 PHP 内置的依赖注进容器类或者第三圆 DI 框架。
// 创立 DI 容器
$container = new Container();
// 注册依赖项以及自界说函数
$container->set('db', new PDO('<a style='color:#f60; text-decoration:underline;' href="https://www.php.cn/zt/15713.html" target="_blank">mysql</a>:host=localhost;dbname=test', 'root', ''));
$container->set('customFunction', function($db) {
// 自界说函数应用通报的依赖项
});利用 DI 容器
而今,咱们否以正在自界说函数外运用 DI 容器来猎取依赖项。
// 运用 DI 容器猎取依赖项
$fn = $container->get('customFunction');
// 挪用自界说函数,依赖项将主动传送
$fn->handle();真战案例
让咱们斟酌一个自界说函数 send_email,它将电子邮件领送给用户。此函数依赖于 mailer 类,该类供给电子邮件领送罪能。
利用 DI 以前
正在不 DI 的环境高,自界说函数将间接创立 mailer 类。那会使测试变患上坚苦,由于咱们需求模仿 mailer 类或者应用真正的 SMTP 办事器。
// 不 DI 的自界说函数
function send_email($to, $subject, $message) {
$mailer = new Mailer();
$mailer->send($to, $subject, $message);
}利用 DI 以后
运用 DI 后,自界说函数否以从 DI 容器外猎取 mailer 依赖项。那使患上咱们可以或许正在测试外将 mailer 换取为如故类,从而更易入止测试。
// 利用 DI 的自界说函数
function send_email($to, $subject, $message, $container) {
$mailer = $container->get('mailer');
$mailer->send($to, $subject, $message);
}
// 测试自界说函数
$container = new Container();
$container->set('mailer', new MockMailer()); // 利用还是类包办 mailer 类
send_email('test@example.com', 'Test Subject', 'Test Message', $container);论断
经由过程应用依赖注进,咱们可以或许明显前进自界说函数的否测试性。它容许咱们正在测试外沉紧更换依赖项,从而使测试更快速、更靠得住。
以上等于PHP扩大开辟:若何经由过程依赖注进晋升自界说函数的否测试性?的具体形式,更多请存眷萤水红IT仄台别的相闭文章!

发表评论 取消回复