public static function patch($options = [])
    {
        if (static::$_interceptor) {
            throw new JitException("An interceptor is already attached.");
        }
        $defaults = ['loader' => null];
        $options += $defaults;
        $loader = $options['originalLoader'] = $options['loader'] ?: static::composer();
        if (!$loader) {
            throw new JitException("The loader option need to be a valid autoloader.");
        }
        unset($options['loader']);

        class_exists('Lead\Jit\JitException');
        class_exists('Lead\Jit\Node\NodeDef');
        class_exists('Lead\Jit\Node\FunctionDef');
        class_exists('Lead\Jit\Node\BlockDef');
        class_exists('Lead\Jit\TokenStream');
        class_exists('Lead\Jit\Parser');

        $interceptor = new static($options);
        spl_autoload_unregister($loader);
        return static::load($interceptor) ? $interceptor : false;
    }
public static function patch($options = [])
    {
        if (static::$_interceptor) {
            throw new JitException("An interceptor is already attached.");
        }
        $defaults = ['loader' => null];
        $options += $defaults;
        $loader = $options['originalLoader'] = $options['loader'] ?: static::composer();
        if (!$loader) {
            throw new JitException("The loader option need to be a valid autoloader.");
        }
        unset($options['loader']);

        class_exists('Lead\Jit\JitException');
        class_exists('Lead\Jit\Node\NodeDef');
        class_exists('Lead\Jit\Node\FunctionDef');
        class_exists('Lead\Jit\Node\BlockDef');
        class_exists('Lead\Jit\TokenStream');
        class_exists('Lead\Jit\Parser');

        $interceptor = new static($options);
        spl_autoload_unregister($loader);
        return static::load($interceptor) ? $interceptor : false;
    }
public static function patch ( $ options = [ ] ) { if ( static :: $ _interceptor ) { throw new JitException ( "An interceptor is already attached." ) ; } $ defaults = [ 'loader' => null ] ; $ options += $ defaults ; $ loader = $ options [ 'originalLoader' ] = $ options [ 'loader' ] ? : static :: composer ( ) ; if ( ! $ loader ) { throw new JitException ( "The loader option need to be a valid autoloader." ) ; } unset ( $ options [ 'loader' ] ) ; class_exists ( 'Lead\Jit\JitException' ) ; class_exists ( 'Lead\Jit\Node\NodeDef' ) ; class_exists ( 'Lead\Jit\Node\FunctionDef' ) ; class_exists ( 'Lead\Jit\Node\BlockDef' ) ; class_exists ( 'Lead\Jit\TokenStream' ) ; class_exists ( 'Lead\Jit\Parser' ) ; $ interceptor = new static ( $ options ) ; spl_autoload_unregister ( $ loader ) ; return static :: load ( $ interceptor ) ? $ interceptor : false ; }
Patch the autoloader to be intercepted by the current autoloader.

@param  array            $options Options for the interceptor autoloader.
@throws JitException
Patch the autoloader to be intercepted by the current autoloader .