Go\Instrument\Transformer\FilterInjectorTransformer::rewrite PHP Method

rewrite() public static method

This operation can check for cache, can rewrite paths, add additional filters and much more
public static rewrite ( string $originalResource, string $originalDir = '' ) : string
$originalResource string Initial resource to include
$originalDir string Path to the directory from where include was called for resolving relative resources
return string Transformed path to the resource
    public static function rewrite($originalResource, $originalDir = '')
    {
        static $appDir, $cacheDir, $debug;
        if (!$appDir) {
            extract(self::$options, EXTR_IF_EXISTS);
        }
        $resource = (string) $originalResource;
        if ($resource['0'] !== '/') {
            $shouldCheckExistence = true;
            $resource = PathResolver::realpath($resource, $shouldCheckExistence) ?: PathResolver::realpath("{$originalDir}/{$resource}", $shouldCheckExistence) ?: $originalResource;
        }
        $cachedResource = self::$cachePathManager->getCachePathForResource($resource);
        // If the cache is disabled or no cache yet, then use on-fly method
        if (!$cacheDir || $debug || !file_exists($cachedResource)) {
            return self::PHP_FILTER_READ . self::$filterName . "/resource=" . $resource;
        }
        return $cachedResource;
    }

Usage Example

Beispiel #1
0
 /**
  * Autoload a class by it's name
  */
 public function loadClass($class)
 {
     if ($file = $this->original->findFile($class)) {
         $isInternal = false;
         foreach ($this->internalNamespaces as $ns) {
             if (strpos($class, $ns) === 0) {
                 $isInternal = true;
                 break;
             }
         }
         include $isInternal ? $file : FilterInjectorTransformer::rewrite($file);
     }
 }
All Usage Examples Of Go\Instrument\Transformer\FilterInjectorTransformer::rewrite