icewind/interceptor

拦截 php 包含文件

v0.3.0 2015-10-24 12:44 UTC

This package is auto-updated.

Last update: 2024-09-18 17:53:05 UTC


README

Build Status Code Coverage Scrutinizer Code Quality

拦截 php 包含文件

composer require icewind/interceptor

使用方法

use Icewind\Interceptor\Interceptor;

$interceptor = new Interceptor();
$interceptor->addWhiteList(__DIR__ . '/src');
$interceptor->addHook(function($code) {
    return str_replace('foo', 'bar', $code);
});

$interceptor->setUp();

require 'src/foo.php'

API

  • addWhiteList(string $path): 向白名单添加文件夹
  • addBlackList(string $path): 向黑名单添加文件夹
  • 只有白名单中的文件会被拦截
  • 如果一个文件位于白名单文件夹中,且其父文件夹也是白名单且没有更直接的父文件夹在黑名单中,则该文件会被加入白名单
  • addHook(callable $hook): 向拦截器注册钩子
  • 注册的回调将在拦截的每个包含文件时被调用
  • 被包含的代码作为第一个参数传递
  • 被包含的路径作为第二个参数传递
  • 如果钩子返回一个字符串,则加载的代码将被返回值替换
  • setUp() 开始拦截包含文件
  • tearDown() 停止拦截包含文件