src/Factory.php
public function target($name)
    {
        if (!$this->config->hasTarget($name)) {
            throw new RuntimeException("The target named '$name' does not exist.");
        }
        $ext = $this->config->getExt($name);

        $themed = $this->config->isThemed($name);
        $filters = $this->config->targetFilters($name);
        $target = $this->config->cachePath($ext) . $name;

        $files = [];
        $scanner = $this->scanner($this->config->paths($ext, $name));
        $paths = $scanner->paths();

        $required = $this->config->requires($name);
        if ($required) {
            $compiler = $this->cachedCompiler();
            foreach ($required as $dependency) {
                $files[] = new Target($this->target($dependency), $compiler);
            }
        }

        foreach ($this->config->files($name) as $file) {
            if (preg_match('#^https?://#', $file)) {
                $files[] = new Remote($file);
            } else {
                if (preg_match('/(.*\/)(\*.*?)$/U', $file, $matches)) {
                    $path = $scanner->find($matches[1]);
                    if ($path === false) {
                        throw new RuntimeException("Could not locate folder $file for $name in any configured path.");
                    }
                    $glob = new Glob($path, $matches[2]);
                    $files = array_merge($files, $glob->files());
                } elseif (preg_match(static::CALLBACK_PATTERN, $file, $matches)) {
                    $callback = new Callback($matches[1], $matches[2], $scanner);
                    $files = array_merge($files, $callback->files());
                } else {
                    $path = $scanner->find($file);
                    if ($path === false) {
                        throw new RuntimeException("Could not locate $file for $name in any configured path.");
                    }
                    $files[] = new Local($path);
                }
            }
        }
        return new AssetTarget($target, $files, $filters, $paths, $themed);
    }
public function target($name)
    {
        if (!$this->config->hasTarget($name)) {
            throw new RuntimeException("The target named '$name' does not exist.");
        }
        $ext = $this->config->getExt($name);

        $themed = $this->config->isThemed($name);
        $filters = $this->config->targetFilters($name);
        $target = $this->config->cachePath($ext) . $name;

        $files = [];
        $scanner = $this->scanner($this->config->paths($ext, $name));
        $paths = $scanner->paths();

        $required = $this->config->requires($name);
        if ($required) {
            $compiler = $this->cachedCompiler();
            foreach ($required as $dependency) {
                $files[] = new Target($this->target($dependency), $compiler);
            }
        }

        foreach ($this->config->files($name) as $file) {
            if (preg_match('#^https?://#', $file)) {
                $files[] = new Remote($file);
            } else {
                if (preg_match('/(.*\/)(\*.*?)$/U', $file, $matches)) {
                    $path = $scanner->find($matches[1]);
                    if ($path === false) {
                        throw new RuntimeException("Could not locate folder $file for $name in any configured path.");
                    }
                    $glob = new Glob($path, $matches[2]);
                    $files = array_merge($files, $glob->files());
                } elseif (preg_match(static::CALLBACK_PATTERN, $file, $matches)) {
                    $callback = new Callback($matches[1], $matches[2], $scanner);
                    $files = array_merge($files, $callback->files());
                } else {
                    $path = $scanner->find($file);
                    if ($path === false) {
                        throw new RuntimeException("Could not locate $file for $name in any configured path.");
                    }
                    $files[] = new Local($path);
                }
            }
        }
        return new AssetTarget($target, $files, $filters, $paths, $themed);
    }
public function target ( $ name ) { if ( ! $ this -> config -> hasTarget ( $ name ) ) { throw new RuntimeException ( "The target named '$name' does not exist." ) ; } $ ext = $ this -> config -> getExt ( $ name ) ; $ themed = $ this -> config -> isThemed ( $ name ) ; $ filters = $ this -> config -> targetFilters ( $ name ) ; $ target = $ this -> config -> cachePath ( $ ext ) . $ name ; $ files = [ ] ; $ scanner = $ this -> scanner ( $ this -> config -> paths ( $ ext , $ name ) ) ; $ paths = $ scanner -> paths ( ) ; $ required = $ this -> config -> requires ( $ name ) ; if ( $ required ) { $ compiler = $ this -> cachedCompiler ( ) ; foreach ( $ required as $ dependency ) { $ files [ ] = new Target ( $ this -> target ( $ dependency ) , $ compiler ) ; } } foreach ( $ this -> config -> files ( $ name ) as $ file ) { if ( preg_match ( '#^https?://#' , $ file ) ) { $ files [ ] = new Remote ( $ file ) ; } else { if ( preg_match ( '/(.*\/)(\*.*?)$/U' , $ file , $ matches ) ) { $ path = $ scanner -> find ( $ matches [ 1 ] ) ; if ( $ path === false ) { throw new RuntimeException ( "Could not locate folder $file for $name in any configured path." ) ; } $ glob = new Glob ( $ path , $ matches [ 2 ] ) ; $ files = array_merge ( $ files , $ glob -> files ( ) ) ; } elseif ( preg_match ( static :: CALLBACK_PATTERN , $ file , $ matches ) ) { $ callback = new Callback ( $ matches [ 1 ] , $ matches [ 2 ] , $ scanner ) ; $ files = array_merge ( $ files , $ callback -> files ( ) ) ; } else { $ path = $ scanner -> find ( $ file ) ; if ( $ path === false ) { throw new RuntimeException ( "Could not locate $file for $name in any configured path." ) ; } $ files [ ] = new Local ( $ path ) ; } } } return new AssetTarget ( $ target , $ files , $ filters , $ paths , $ themed ) ; }
Create a single build target

@param string $name The name of the target to build
@return \MiniAsset\AssetTarget
@throws \RuntimeException
Create a single build target