/** * Execute the command. * * @param InputInterface $input * @param OutputInterface $output * * @return void */ public function execute(InputInterface $input, OutputInterface $output) { $baseDir = $input->getArgument('base'); if ($baseDir === null) { $baseDir = $this->_projectBase; } $baseDir = rtrim($baseDir, '/') . '/'; $extensions = AssetResponse::getExtensions(); $pattern = '*.' . implode(',*.', $extensions); $fileList = $this->globRecursive($baseDir . '{' . $pattern . '}', GLOB_BRACE); $hashMap = []; $data = ''; foreach ($fileList as $file) { $key = str_replace($baseDir, '', $file); $hash = ResourceGenerator::getFileHash($file); $hashMap[$key] = $hash; $data .= "{$key} = {$hash}\n"; } $outputFile = $input->getOption('output'); $filename = Path::build($baseDir, $outputFile); if (!file_exists($filename) || is_writable($filename)) { file_put_contents($filename, $data); $output->writeln("Written " . count($fileList) . " file hash keys to " . $filename); } else { $output->writeln("Failed writing to {$filename}"); } }
public function assetProvider() { $attempt = []; $resp = new \Packaged\Dispatch\AssetResponse(); foreach (\Packaged\Dispatch\AssetResponse::getExtensions() as $ext) { $attempt[] = [$ext, $resp->assetByExtension($ext)]; } return $attempt; }
public function testCustomType() { $exts = \Packaged\Dispatch\AssetResponse::getExtensions(); $this->assertFalse(array_search('mock', $exts)); $builder = new \Packaged\Dispatch\AssetResponse(); $this->assertInstanceOf('\\Packaged\\Dispatch\\Assets\\UnknownAsset', $builder->assetByExtension('mock')); \Packaged\Dispatch\AssetResponse::addAssetType('mock', new MockAssetType()); $asset = $builder->assetByExtension('mock'); $this->assertInstanceOf('\\MockAssetType', $asset); $this->assertEquals('mock', $asset->getExtension()); $this->assertEquals('mock/asset', $asset->getContentType()); }