本文整理汇总了PHP中Assetic\Asset\AssetInterface::dump方法的典型用法代码示例。如果您正苦于以下问题:PHP AssetInterface::dump方法的具体用法?PHP AssetInterface::dump怎么用?PHP AssetInterface::dump使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Assetic\Asset\AssetInterface
的用法示例。
在下文中一共展示了AssetInterface::dump方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: writeAsset
public function writeAsset(AssetInterface $asset)
{
foreach ($this->getCombinations($asset->getVars()) as $combination) {
$asset->setValues($combination);
static::write($this->dir . '/' . PathUtils::resolvePath($asset->getTargetPath(), $asset->getVars(), $asset->getValues()), $asset->dump());
}
}
示例2: process
public function process(AssetInterface $asset)
{
$hash = hash_init('sha1');
switch ($this->strategy) {
case self::STRATEGY_MODIFICATION:
hash_update($hash, $asset->getLastModified());
break;
case self::STRATEGY_CONTENT:
hash_update($hash, $asset->dump());
break;
}
foreach ($asset as $i => $leaf) {
if ($sourcePath = $leaf->getSourcePath()) {
hash_update($hash, $sourcePath);
} else {
hash_update($hash, $i);
}
}
$hash = substr(hash_final($hash), 0, 7);
$url = $asset->getTargetPath();
$oldExt = pathinfo($url, PATHINFO_EXTENSION);
$newExt = '-' . $hash . '.' . $oldExt;
if (!$oldExt || 0 < preg_match('/' . preg_quote($newExt, '/') . '$/', $url)) {
return;
}
$asset->setTargetPath(substr($url, 0, (strlen($oldExt) + 1) * -1) . $newExt);
}
示例3: dump
/**
* {@inheritdoc}
*/
public function dump(FilterInterface $additionalFilter = null)
{
if (!$this->innerAsset) {
$this->createInnerAsset();
}
return $this->innerAsset->dump($additionalFilter);
}
示例4: doDump
/**
* Performs the asset dump.
*
* @param AssetInterface $asset An asset
* @param OutputInterface $stdout The command output
*
* @throws RuntimeException If there is a problem writing the asset
*/
private function doDump(AssetInterface $asset, OutputInterface $stdout)
{
$combinations = VarUtils::getCombinations($asset->getVars(), $this->getContainer()->getParameter('assetic.variables'));
foreach ($combinations as $combination) {
$asset->setValues($combination);
// resolve the target path
$target = rtrim($this->basePath, '/') . '/' . $asset->getTargetPath();
$target = str_replace('_controller/', '', $target);
$target = VarUtils::resolve($target, $asset->getVars(), $asset->getValues());
if (!is_dir($dir = dirname($target))) {
$stdout->writeln(sprintf('<comment>%s</comment> <info>[dir+]</info> %s', date('H:i:s'), $dir));
// if (false === @mkdir($dir, 0777, true)) {
// throw new \RuntimeException('Unable to create directory '.$dir);
// }
}
$stdout->writeln(sprintf('<comment>%s</comment> <info>[file+]</info> %s', date('H:i:s'), $target));
if (OutputInterface::VERBOSITY_VERBOSE <= $stdout->getVerbosity()) {
if ($asset instanceof AssetCollectionInterface) {
foreach ($asset as $leaf) {
$root = $leaf->getSourceRoot();
$path = $leaf->getSourcePath();
$stdout->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
} else {
$root = $asset->getSourceRoot();
$path = $asset->getSourcePath();
$stdout->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
}
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file ' . $target);
}
}
}
示例5: writeAsset
public function writeAsset(AssetInterface $asset)
{
foreach (VarUtils::getCombinations($asset->getVars(), $this->values) as $combination) {
$asset->setValues($combination);
$path = $this->dir . '/' . VarUtils::resolve($asset->getTargetPath(), $asset->getVars(), $asset->getValues());
if (!is_dir($path) && (!file_exists($path) || filemtime($path) <= $asset->getLastModified())) {
static::write($path, $asset->dump());
}
}
}
示例6: dump
/**
* Applies dump filters and returns the asset as a string.
*
* @param FilterInterface|null $additionalFilter
* @return string
*/
public function dump(FilterInterface $additionalFilter = null)
{
$cacheKey = $this->getCacheKey($this->asset, $additionalFilter, 'dump');
if ($this->cache->has($cacheKey)) {
return $this->cache->get($cacheKey);
}
$content = $this->asset->dump($additionalFilter);
$this->cache->set($cacheKey, $content);
return $content;
}
示例7: dumpAsset
private function dumpAsset(AssetInterface $asset)
{
// HTTP caching
$mtime = gmdate('D, d M y H:i:s', $asset->getLastModified()) . 'GMT';
if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && ($mtime = $_SERVER['HTTP_IF_MODIFIED_SINCE'])) {
header('HTTP/1.1 304 Not Modified');
exit;
}
// set headers & dump asset
$extension = pathinfo($asset->getTargetPath(), PATHINFO_EXTENSION);
if (array_key_exists($extension, self::$extensionsToMimeTypes)) {
$mimeType = self::$extensionsToMimeTypes[$extension];
header("Content-Type: {$mimeType}");
header("Last-Modified: {$mtime}");
header('Cache-Control: public');
}
echo $asset->dump();
exit;
}
示例8: doDump
private function doDump(AssetInterface $asset, $documentRoot)
{
$writer = new AssetWriter(sys_get_temp_dir(), $this->container->getParameter('assetic.variables'));
$ref = new \ReflectionMethod($writer, 'getCombinations');
$ref->setAccessible(true);
$combinations = $ref->invoke($writer, $asset->getVars());
foreach ($combinations as $combination) {
$asset->setValues($combination);
$target = rtrim($documentRoot, '/') . '/' . str_replace('_controller/', '', PathUtils::resolvePath($asset->getTargetPath(), $asset->getVars(), $asset->getValues()));
if (!is_dir($dir = dirname($target))) {
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException('Unable to create directory ' . $dir);
}
}
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file ' . $target);
}
}
}
示例9: doDump
/**
* Performs the asset dump.
*
* @param AssetInterface $asset An asset
* @param OutputInterface $output The command output
*
* @throws RuntimeException If there is a problem writing the asset
*/
private function doDump(AssetInterface $asset, OutputInterface $output)
{
$writer = new AssetWriter(sys_get_temp_dir(), $this->getContainer()->getParameter('assetic.variables'));
$ref = new \ReflectionMethod($writer, 'getCombinations');
$ref->setAccessible(true);
$combinations = $ref->invoke($writer, $asset->getVars());
foreach ($combinations as $combination) {
$asset->setValues($combination);
$target = rtrim($this->basePath, '/') . '/' . str_replace('_controller/', '', PathUtils::resolvePath($asset->getTargetPath(), $asset->getVars(), $asset->getValues()));
if (!is_dir($dir = dirname($target))) {
$output->writeln(sprintf('<comment>%s</comment> <info>[dir+]</info> %s', date('H:i:s'), $dir));
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException('Unable to create directory ' . $dir);
}
}
$output->writeln(sprintf('<comment>%s</comment> <info>[file+]</info> %s', date('H:i:s'), $target));
if ($this->verbose) {
if ($asset instanceof \Traversable) {
foreach ($asset as $leaf) {
$root = $leaf->getSourceRoot();
$path = $leaf->getSourcePath();
$output->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
} else {
$root = $asset->getSourceRoot();
$path = $asset->getSourcePath();
$output->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
}
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file ' . $target);
}
}
}
示例10: writeAsset
public function writeAsset(AssetInterface $asset)
{
static::write($this->dir . '/' . $asset->getTargetUrl(), $asset->dump());
}
示例11: getHash
/**
* @param AssetInterface $asset
* @return string
*/
private function getHash(AssetInterface $asset)
{
return substr(hash($this->algorithm, $asset->dump()), 0, $this->hashLength);
}
示例12: doDump
/**
* Performs the asset dump.
*
* @param AssetInterface $asset An asset
* @param OutputInterface $output The command output
*
* @throws RuntimeException If there is a problem writing the asset
*/
private function doDump(AssetInterface $asset, OutputInterface $output)
{
$target = rtrim($this->basePath, '/') . '/' . str_replace('_controller/', '', $asset->getTargetPath());
if (!is_dir($dir = dirname($target))) {
$output->writeln('<info>[dir+]</info> ' . $dir);
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException('Unable to create directory ' . $dir);
}
}
$output->writeln('<info>[file+]</info> ' . $target);
if ($this->verbose) {
if ($asset instanceof \Traversable) {
foreach ($asset as $leaf) {
$root = $leaf->getSourceRoot();
$path = $leaf->getSourcePath();
$output->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
} else {
$root = $asset->getSourceRoot();
$path = $asset->getSourcePath();
$output->writeln(sprintf(' <comment>%s/%s</comment>', $root ?: '[unknown root]', $path ?: '[unknown path]'));
}
}
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file ' . $target);
}
}
示例13: doDump
/**
* Performs the asset dump.
*
* @param AssetInterface $asset An asset
* @param OutputInterface $output The command output
*
* @throws RuntimeException If there is a problem writing the asset
*/
private function doDump(AssetInterface $asset, OutputInterface $output)
{
$target = rtrim($this->basePath, '/') . '/' . str_replace('_controller/', '', $asset->getTargetPath());
if (!is_dir($dir = dirname($target))) {
$output->writeln('<info>[dir+]</info> ' . $dir);
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException('Unable to create directory ' . $dir);
}
}
$output->writeln('<info>[file+]</info> ' . $target);
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file ' . $target);
}
}
示例14: dumpAsset
/**
* Writes an asset.
*
* @param AssetInterface $asset An asset
* @param string $basePath The base directory to write to
* @param OutputInterface $output The command output
*
* @throws RuntimeException If there is a problem writing the asset
*/
protected function dumpAsset(AssetInterface $asset, $basePath, OutputInterface $output)
{
$target = rtrim($basePath, '/') . '/' . $asset->getTargetUrl();
if (!is_dir($dir = dirname($target))) {
$output->writeln('<info>[dir+]</info> '.$dir);
if (false === @mkdir($dir, 0777, true)) {
throw new \RuntimeException('Unable to create directory '.$dir);
}
}
$output->writeln('<info>[file+]</info> '.$target);
if (false === @file_put_contents($target, $asset->dump())) {
throw new \RuntimeException('Unable to write file '.$target);
}
}
示例15: dump
/**
* {@inheritdoc}
*/
public function dump(FilterInterface $additionalFilter = null)
{
return $this->asset->dump($additionalFilter);
}