本文整理汇总了PHP中Assetic\Asset\AssetInterface类的典型用法代码示例。如果您正苦于以下问题:PHP AssetInterface类的具体用法?PHP AssetInterface怎么用?PHP AssetInterface使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了AssetInterface类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: filterLoad
/**
* Filters an asset after it has been loaded.
*
* @param \Assetic\Asset\AssetInterface $asset
* @return void
*/
public function filterLoad(AssetInterface $asset)
{
$max_nesting_level = ini_get('xdebug.max_nesting_level');
$memory_limit = ini_get('memory_limit');
if ($max_nesting_level && $max_nesting_level < 200) {
ini_set('xdebug.max_nesting_level', 200);
}
if ($memory_limit && $memory_limit < 256) {
ini_set('memory_limit', '256M');
}
$root = $asset->getSourceRoot();
$path = $asset->getSourcePath();
$dirs = array();
$lc = new \Less_Parser(array('compress' => true));
if ($root && $path) {
$dirs[] = dirname($root . '/' . $path);
}
foreach ($this->loadPaths as $loadPath) {
$dirs[] = $loadPath;
}
$lc->SetImportDirs($dirs);
$url = parse_url($this->getRequest()->getUriForPath(''));
$absolutePath = str_replace(public_path(), '', $root);
if (isset($url['path'])) {
$absolutePath = $url['path'] . $absolutePath;
}
$lc->parseFile($root . '/' . $path, $absolutePath);
$asset->setContent($lc->getCss());
}
开发者ID:cartalyst,项目名称:assetic-filters,代码行数:35,代码来源:LessphpFilter.php
示例2: filterDump
public function filterDump(AssetInterface $asset)
{
$content = $asset->getContent();
//Do something to $content
$img_src = "http://www.sopinet.com/layout/bootstrap/template/sopinetoliva_mini.png";
$asset->setContent(ColorizeService::autoColorizeFromString($content, $img_src));
}
开发者ID:sopinet,项目名称:colorizebundle,代码行数:7,代码来源:ColorizeFilter.php
示例3: filterLoad
public function filterLoad(AssetInterface $asset)
{
$sassProcessArgs = array();
if (null !== $this->nodePath) {
$sassProcessArgs[] = $this->nodePath;
}
$sassProcessArgs[] = $this->sassPath;
$pb = $this->createProcessBuilder($sassProcessArgs);
if ($dir = $asset->getSourceDirectory()) {
$pb->add('--include-path')->add($dir);
}
if ($this->style) {
$pb->add('--output-style')->add($this->style);
}
if ($this->sourceMap) {
$pb->add('--source-map');
}
if ($this->debugInfo) {
$pb->add('--source-comments');
}
foreach ($this->loadPaths as $loadPath) {
$pb->add('--include-path')->add($loadPath);
}
// input
$pb->add($input = tempnam(sys_get_temp_dir(), 'assetic_sass'));
file_put_contents($input, $asset->getContent());
$pb->add('--stdout');
$proc = $pb->getProcess();
$code = $proc->run();
unlink($input);
if (0 !== $code) {
throw FilterException::fromProcess($proc)->setInput($asset->getContent());
}
$asset->setContent($proc->getOutput());
}
开发者ID:elmariachi111,项目名称:node-sass-bundle,代码行数:35,代码来源:NodeSassFilter.php
示例4: filterLoad
public function filterLoad(AssetInterface $asset)
{
$builder = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->jsxBin) : array($this->jsxBin));
$inputDir = FilesystemUtils::createThrowAwayDirectory('jsx_in');
$inputFile = $inputDir . DIRECTORY_SEPARATOR . 'asset.js';
$outputDir = FilesystemUtils::createThrowAwayDirectory('jsx_out');
$outputFile = $outputDir . DIRECTORY_SEPARATOR . 'asset.js';
// create the asset file
file_put_contents($inputFile, $asset->getContent());
$builder->add($inputDir)->add($outputDir)->add('--no-cache-dir');
$proc = $builder->getProcess();
$code = $proc->run();
// remove the input directory and asset file
unlink($inputFile);
rmdir($inputDir);
if (0 !== $code) {
if (file_exists($outputFile)) {
unlink($outputFile);
}
if (file_exists($outputDir)) {
rmdir($outputDir);
}
throw FilterException::fromProcess($proc);
}
$asset->setContent(file_get_contents($outputFile));
// remove the output directory and processed asset file
unlink($outputFile);
rmdir($outputDir);
}
开发者ID:mohamedsharaf,项目名称:assetic,代码行数:29,代码来源:ReactJsxFilter.php
示例5: filterLoad
public function filterLoad(AssetInterface $asset)
{
$pb = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->emberBin) : array($this->emberBin));
$templateName = basename($asset->getSourcePath());
$inputDirPath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . uniqid('input_dir');
$inputPath = $inputDirPath . DIRECTORY_SEPARATOR . $templateName;
$outputPath = tempnam(sys_get_temp_dir(), 'output');
mkdir($inputDirPath);
file_put_contents($inputPath, $asset->getContent());
$pb->add($inputPath)->add('-f')->add($outputPath);
if ($this->includeBaseDir) {
$pb->add('-b')->add($inputDirPath . DIRECTORY_SEPARATOR);
}
$process = $pb->getProcess();
$returnCode = $process->run();
unlink($inputPath);
rmdir($inputDirPath);
if (127 === $returnCode) {
throw new \RuntimeException('Path to node executable could not be resolved.');
}
if (0 !== $returnCode) {
if (file_exists($outputPath)) {
unlink($outputPath);
}
throw FilterException::fromProcess($process)->setInput($asset->getContent());
}
if (!file_exists($outputPath)) {
throw new \RuntimeException('Error creating output file.');
}
$compiledJs = file_get_contents($outputPath);
unlink($outputPath);
$asset->setContent($compiledJs);
}
开发者ID:gsomoza,项目名称:TimeTracking,代码行数:33,代码来源:EmberPrecompileFilter.php
示例6: 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);
}
开发者ID:alexBLR,项目名称:firmware,代码行数:27,代码来源:CacheBustingWorker.php
示例7: filterDump
public function filterDump(AssetInterface $asset)
{
$content = $asset->getContent();
$config = array_merge(array('filename' => $asset->getSourcePath()), $this->config);
$content = Compiler::compile($content, $config);
$asset->setContent($content);
}
开发者ID:codesleeve,项目名称:asset-pipeline,代码行数:7,代码来源:CoffeeScript.php
示例8: filterDump
public function filterDump(AssetInterface $asset)
{
$pb = new ProcessBuilder();
$pb->inheritEnvironmentVariables()->add($this->jpegtranBin);
if ($this->optimize) {
$pb->add('-optimize');
}
if ($this->copy) {
$pb->add('-copy')->add($this->copy);
}
if ($this->progressive) {
$pb->add('-progressive');
}
if (null !== $this->restart) {
$pb->add('-restart')->add($this->restart);
}
$pb->add($input = tempnam(sys_get_temp_dir(), 'assetic_jpegtran'));
file_put_contents($input, $asset->getContent());
$proc = $pb->getProcess();
$code = $proc->run();
unlink($input);
if (0 < $code) {
throw new \RuntimeException($proc->getErrorOutput());
}
$asset->setContent($proc->getOutput());
}
开发者ID:laiello,项目名称:mediathequescrum,代码行数:26,代码来源:JpegtranFilter.php
示例9: filterLoad
/**
* Sets the by-config generated imports on the asset.
*
* {@inheritDoc}
*/
public function filterLoad(AssetInterface $asset)
{
$assetRoot = $asset->getSourceRoot();
$assetPath = $asset->getSourcePath();
$assetImportDir = dirname($assetRoot . '/' . $assetPath);
$importDir = $this->config->getBootstrapPath() . '/less';
$this->setupLoadPaths($assetImportDir);
// Make sure we _always_ have the bootstrap import dir.
if ($importDir !== $assetImportDir) {
$this->lessFilter->addLoadPath($importDir);
}
$variables = array_merge($this->extractVariables($importDir . '/variables.less'), $this->config->getVariables());
$variablesString = '';
foreach ($variables as $key => $value) {
$variablesString .= "@{$key}:{$value};" . PHP_EOL;
}
if ('bootstrap.less' === $assetPath) {
$imports = $this->filterImportFiles(array_unique(array_merge($this->extractImports($importDir . '/bootstrap.less'), $this->extractImports($importDir . '/responsive.less'), $this->config->getCustomComponents())));
$assetContent = $variablesString . $imports;
$asset->setContent($assetContent);
} else {
$asset->setContent($variablesString . $asset->getContent());
}
$this->lessFilter->filterLoad($asset);
}
开发者ID:spoonx,项目名称:sxbootstrap,代码行数:30,代码来源:BootstrapFilter.php
示例10: filterLoad
public function filterLoad(AssetInterface $asset)
{
$pb = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->emberBin) : array($this->emberBin));
if ($sourcePath = $asset->getSourcePath()) {
$templateName = basename($sourcePath);
} else {
throw new \LogicException('The embed-precompile filter requires that assets have a source path set');
}
$inputDirPath = FilesystemUtils::createThrowAwayDirectory('ember_in');
$inputPath = $inputDirPath . DIRECTORY_SEPARATOR . $templateName;
$outputPath = FilesystemUtils::createTemporaryFile('ember_out');
file_put_contents($inputPath, $asset->getContent());
$pb->add($inputPath)->add('-f')->add($outputPath);
$process = $pb->getProcess();
$returnCode = $process->run();
unlink($inputPath);
rmdir($inputDirPath);
if (127 === $returnCode) {
throw new \RuntimeException('Path to node executable could not be resolved.');
}
if (0 !== $returnCode) {
if (file_exists($outputPath)) {
unlink($outputPath);
}
throw FilterException::fromProcess($process)->setInput($asset->getContent());
}
if (!file_exists($outputPath)) {
throw new \RuntimeException('Error creating output file.');
}
$compiledJs = file_get_contents($outputPath);
unlink($outputPath);
$asset->setContent($compiledJs);
}
开发者ID:BusinessCookies,项目名称:CoffeeMachineProject,代码行数:33,代码来源:EmberPrecompileFilter.php
示例11: filterDump
/**
* Apply a filter on file dump.
*
* @param \Assetic\Asset\AssetInterface $asset
* @return void
*/
public function filterDump(AssetInterface $asset)
{
// Using getSourceDirectory
// instead of getSourceRoot
// Since relative paths are based on the sourceDirectory...
$this->assetDirectory = $this->realPath($asset->getSourceDirectory());
$content = $asset->getContent();
// Spin through the symlinks and normalize them. We'll first unset the original
// symlink so that it doesn't clash with the new symlinks once they are added
// back in.
foreach ($this->symlinks as $link => $target) {
unset($this->symlinks[$link]);
if ($link == '//') {
$link = $this->documentRoot;
} else {
$link = str_replace('//', $this->documentRoot . '/', $link);
}
$link = strtr($link, '/', DIRECTORY_SEPARATOR);
$this->symlinks[$link] = $this->realPath($target);
}
$content = $this->trimUrls($content);
$content = preg_replace_callback('/@import\\s+([\'"])(.*?)[\'"]/', array($this, 'processUriCallback'), $content);
$content = preg_replace_callback('/url\\(\\s*([^\\)\\s]+)\\s*\\)/', array($this, 'processUriCallback'), $content);
$asset->setContent($content);
}
开发者ID:dustingraham,项目名称:asset-manager,代码行数:31,代码来源:AssetCssUriRewriteFilter.php
示例12: process
public function process(AssetInterface $asset)
{
if (0 < preg_match($this->pattern, $asset->getTargetUrl())) {
$asset->ensureFilter($this->filter);
}
return $asset;
}
开发者ID:norwayapp,项目名称:Invest,代码行数:7,代码来源:EnsureFilterWorker.php
示例13: filterDump
public function filterDump(AssetInterface $asset)
{
$script = $asset->getContent();
$packer = new \JavaScriptPacker($script, $this->_encoding, $this->_fastDecode, $this->_specialChars);
$script = $packer->pack();
$asset->setContent(str_replace(";;", ";", trim($script) . ";"));
}
开发者ID:icedream,项目名称:javascriptpackerbundle,代码行数:7,代码来源:JavaScriptPackerFilter.php
示例14: filterDump
public function filterDump(AssetInterface $asset)
{
$options = array($this->jpegtranBin);
if ($this->optimize) {
$options[] = '-optimize';
}
if ($this->copy) {
$options[] = '-copy';
$options[] = $this->copy;
}
if ($this->progressive) {
$options[] = '-progressive';
}
if (null !== $this->restart) {
$options[] = '-restart';
$options[] = $this->restart;
}
$options[] = $input = tempnam(sys_get_temp_dir(), 'assetic_jpegtran');
file_put_contents($input, $asset->getContent());
$proc = new Process(implode(' ', array_map('escapeshellarg', $options)));
$code = $proc->run();
unlink($input);
if (0 < $code) {
throw new \RuntimeException($proc->getErrorOutput());
}
$asset->setContent($proc->getOutput());
}
开发者ID:norwayapp,项目名称:Invest,代码行数:27,代码来源:JpegtranFilter.php
示例15: filterLoad
public function filterLoad(AssetInterface $asset)
{
$pb = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->tscBin) : array($this->tscBin));
if ($sourcePath = $asset->getSourcePath()) {
$templateName = basename($sourcePath);
} else {
$templateName = 'asset';
}
$inputDirPath = FilesystemUtils::createThrowAwayDirectory('typescript_in');
$inputPath = $inputDirPath . DIRECTORY_SEPARATOR . $templateName . '.ts';
$outputPath = FilesystemUtils::createTemporaryFile('typescript_out');
file_put_contents($inputPath, $asset->getContent());
$pb->add($inputPath)->add('--out')->add($outputPath);
$proc = $pb->getProcess();
$code = $proc->run();
unlink($inputPath);
rmdir($inputDirPath);
if (0 !== $code) {
if (file_exists($outputPath)) {
unlink($outputPath);
}
throw FilterException::fromProcess($proc)->setInput($asset->getContent());
}
if (!file_exists($outputPath)) {
throw new \RuntimeException('Error creating output file.');
}
$compiledJs = file_get_contents($outputPath);
unlink($outputPath);
$asset->setContent($compiledJs);
}
开发者ID:BusinessCookies,项目名称:CoffeeMachineProject,代码行数:30,代码来源:TypeScriptFilter.php
示例16: filterLoad
public function filterLoad(AssetInterface $asset)
{
$pb = $this->createProcessBuilder($this->nodeBin ? array($this->nodeBin, $this->tscBin) : array($this->tscBin));
$templateName = basename($asset->getSourcePath());
$inputDirPath = sys_get_temp_dir() . DIRECTORY_SEPARATOR . uniqid('input_dir');
$inputPath = $inputDirPath . DIRECTORY_SEPARATOR . $templateName . '.ts';
$outputPath = tempnam(sys_get_temp_dir(), 'output');
mkdir($inputDirPath);
file_put_contents($inputPath, $asset->getContent());
$pb->add($inputPath)->add('--out')->add($outputPath);
$proc = $pb->getProcess();
$code = $proc->run();
unlink($inputPath);
rmdir($inputDirPath);
if (0 !== $code) {
if (file_exists($outputPath)) {
unlink($outputPath);
}
throw FilterException::fromProcess($proc)->setInput($asset->getContent());
}
if (!file_exists($outputPath)) {
throw new \RuntimeException('Error creating output file.');
}
$compiledJs = file_get_contents($outputPath);
unlink($outputPath);
$asset->setContent($compiledJs);
}
开发者ID:ccq18,项目名称:EduSoho,代码行数:27,代码来源:TypeScriptFilter.php
示例17: filterDump
/**
* {@inheritdoc}
*/
public function filterDump(AssetInterface $asset)
{
if (preg_match('/\\.yfp\\.js$/', $asset->getSourcePath())) {
$content = $asset->getContent();
preg_match('/(\\w+)\\.yfp\\.js$/', $asset->getSourcePath(), $matches);
if (isset($matches[1])) {
$name = $matches[1];
$pluginName = str_replace(' ', '', ucwords(strtr($matches[1], '_-', ' ')));
$config = [];
if ($this->parameterBag->has("ynlo.js_plugin.{$name}")) {
$config = $this->parameterBag->get("ynlo.js_plugin.{$name}");
}
$jsonConfig = json_encode($config, JSON_FORCE_OBJECT);
$autoRegister = null;
if (strpos($content, "YnloFramework.register('{$pluginName}')") === false && strpos($content, "YnloFramework.register(\"{$pluginName}\\')") === false) {
$autoRegister = "\nYnloFramework.register('{$pluginName}');";
}
$settings = <<<JAVASCRIPT
{$autoRegister}
YnloFramework.{$pluginName}.config = \$.extend({}, YnloFramework.{$pluginName}.config, {$jsonConfig});
JAVASCRIPT;
$asset->setContent($content . $settings);
}
}
}
开发者ID:ynloultratech,项目名称:framework,代码行数:29,代码来源:FrameworkPluginSettingsDumper.php
示例18: filterDump
public function filterDump(AssetInterface $asset)
{
$optimizer = new Optimizer();
$content = $asset->getContent();
$content = $optimizer->optimizeCss($content);
$asset->setContent($content);
}
开发者ID:renaatdemuynck,项目名称:css-optimizer,代码行数:7,代码来源:CssOptimizeFilter.php
示例19: filterDump
/**
* @param AssetInterface $asset
*/
public function filterDump(AssetInterface $asset)
{
$sourceBase = $asset->getSourceRoot();
$sourcePath = $asset->getSourcePath();
$assetRoot = $this->assetRoot;
if (null === $sourcePath) {
return;
}
$content = $this->filterReferences($asset->getContent(), function ($matches) use($sourceBase, $sourcePath, $assetRoot) {
// its not a relative path
if (false !== strpos($matches['url'], '://') || 0 === strpos($matches['url'], '//') || 0 === strpos($matches['url'], 'data:') || isset($matches['url'][0]) && '/' == $matches['url'][0]) {
return $matches[0];
}
$url = $matches['url'];
if (false !== ($pos = strpos($url, '?'))) {
$url = substr($url, 0, $pos);
}
$sourceAsset = dirname($sourceBase . '/' . $sourcePath) . '/' . $url;
if (!is_file($sourceAsset)) {
return $matches[0];
}
$mimeType = MimeTypeGuesser::getInstance()->guess($sourceAsset);
$destRelativePath = substr($mimeType, 0, strpos($mimeType, '/')) . '/' . basename($url);
$destAsset = $assetRoot . '/' . $destRelativePath;
if (!is_dir(dirname($destAsset))) {
mkdir(dirname($destAsset), 0777, true);
}
copy($sourceAsset, $destAsset);
return str_replace($matches['url'], '../' . $destRelativePath, $matches[0]);
});
$asset->setContent($content);
}
开发者ID:saxulum,项目名称:saxulum-assetic-twig-provider,代码行数:35,代码来源:CssCopyFileFilter.php
示例20: resolveUrl
/**
* Resolves an URL from an asset.
*
* @param AssetInterface $asset the asset containing the URL
* @param string $url url read in file
*
* @return string an URL, a filepath
*/
public static function resolveUrl(AssetInterface $asset, $url)
{
// given URL is absolute URL
if (false !== strpos($url, '://')) {
return $url;
}
// source directory of the asset
$root = dirname($asset->getSourceRoot() . '/' . $asset->getTargetPath());
// path directory where asset is being copied
$path = dirname($asset->getTargetPath());
if ('.' === $path) {
$image = $url;
} else {
$image = $path . '/' . $url;
}
if (null !== $root) {
$image = $root . '/' . $url;
}
// cleanup local URLs
if (false === strpos($image, '://')) {
$image = self::removeQueryString($image);
$image = self::removeAnchor($image);
return self::resolveUps($image);
}
return $image;
}
开发者ID:alexandresalome,项目名称:assetic-extra-bundle,代码行数:34,代码来源:PathUtils.php
注:本文中的Assetic\Asset\AssetInterface类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论