感染/inclusion-interceptor

流包装器:包含拦截器。允许用另一个文件替换被包含(自动加载)的文件。

0.2.5 2021-08-09 10:03 UTC

This package is auto-updated.

Last update: 2024-09-03 22:30:44 UTC


README

Build Status Coverage Status

感染 - 包含拦截器流包装器

这是一个 流包装器,它包装了 file:// 协议,并允许覆盖任何(自动)加载的文件的内容,包括由Composer包管理器自动加载的文件。

安装

composer require infection/include-interceptor

如何工作

如果您想每次加载文件时都替换其内容(通过执行 include '/path/to/file.php',通过调用 file_get_contents('/path/to/file.php') 等),您需要在加载原始文件之前注册 IncludeInterceptor

use Infection\StreamWrapper\IncludeInterceptor;

IncludeInterceptor::intercept('/path/to/original_file.php', '/path/to/replacement_file.php');
IncludeInterceptor::enable();

启用 IncludeInterceptor 后,将加载 replacement_file.php 的内容,而不是 original_file.php 的内容。

使用场景

  • 此流包装器用于在 Infection 变异测试框架中将原始文件替换为变异体。
  • dg/bypass-finals 包中也使用了相同的方法,该包允许通过覆盖原始内容并在运行时删除 final 关键字来模拟 final 类。

感染 - 变异测试框架

请在此处阅读文档:infection.github.io

推特:@infection_php