icewind/interceptor

Intercept php includes

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

This package is auto-updated.

Last update: 2024-12-18 18:20:19 UTC


README

Build Status Code Coverage Scrutinizer Code Quality

Intercept php includes

composer require icewind/interceptor

Usage

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): Add a folder to the white list
  • addBlackList(string $path): Add a folder to the black list
  • Only white listed files will be intercepted
  • A file is white listed if it has a parent folder that is white listed without there being a more direct parent folder that is black listed
  • addHook(callable $hook): Register a hook to the intercepter
  • the registered callback will be called for every include which is intercepted
  • The code being included will be passed as the first argument
  • The path being included will be passed as second argument
  • If the hook returns a string the loaded code will be replaced by the return value
  • setUp() start intercepting includes
  • tearDown() stop intercepting includes