www.gusucode.com > Flarum中文优化论坛PHP源码程序 > FlarumChina-master/vendor/flarum/core/src/Asset/AssetManager.php
<?php /* * This file is part of Flarum. * * (c) Toby Zerner <toby.zerner@gmail.com> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */ namespace Flarum\Asset; use DomainException; class AssetManager { /** * @var CompilerInterface */ protected $less; /** * @var CompilerInterface */ protected $js; /** * @param CompilerInterface $js * @param CompilerInterface $less */ public function __construct(CompilerInterface $js, CompilerInterface $less) { $this->js = $js; $this->less = $less; } /** * @param $filename */ public function setFilename($filename) { $this->js->setFilename($filename.'.js'); $this->less->setFilename($filename.'.css'); } /** * @param string $file */ public function addFile($file) { $ext = pathinfo($file, PATHINFO_EXTENSION); switch ($ext) { case 'js': $this->js->addFile($file); break; case 'css': case 'less': $this->less->addFile($file); break; default: throw new DomainException('Unsupported asset type: '.$ext); } } /** * @param string[] $files */ public function addFiles(array $files) { array_walk($files, [$this, 'addFile']); } /** * @param callable $callback */ public function addLess(callable $callback) { $this->less->addString($callback); } /** * @param callable $callback */ public function addJs(callable $callback) { $this->js->addString($callback); } /** * @return string */ public function getCssFile() { return $this->less->getFile(); } /** * @return string */ public function getJsFile() { return $this->js->getFile(); } public function flushCss() { $this->less->flush(); } public function flushJs() { $this->js->flush(); } }