use Symfony\Component\HttpKernel\Config\FileLocator;
use Symfony\Component\DependencyInjection\ContainerInterface;
+use Symfony\Component\Asset\Packages;
class PackTokenParser extends \Twig_TokenParser {
private $tag;
* Constructor.
*
* @param class $fileLocator The FileLocator instance
+ * @param class $containerInterface The Container Interface instance
* @param class $assetsPackages The Assets Packages instance
* @param string $prefix The prefix path
* @param string $tag The tag name
* @param string $output The default output string
* @param array $filters The default filters array
*/
- public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, $prefix, $tag, $output, $filters) {
+ public function __construct(FileLocator $fileLocator, ContainerInterface $containerInterface, Packages $assetsPackages, $prefix, $tag, $output, $filters) {
$this->fileLocator = $fileLocator;
$this->containerInterface = $containerInterface;
+ $this->assetsPackages = $assetsPackages;
$this->prefix = $prefix;
$this->tag = $tag;
$this->output = $output;
if ($parameters = $this->containerInterface->getParameter('rapsys_pack')) {
if (isset($parameters['timeout'])) {
$timeout = $parameters['timeout'];
- } elseif (isset($parameters['user_agent'])) {
- $userAgent = $parameters['user_agent'];
+ } elseif (isset($parameters['agent'])) {
+ $userAgent = $parameters['agent'];
} elseif (isset($parameters['redirect'])) {
$redirect = $parameters['redirect'];
}
if (!empty($parameters['timeout'])) {
$this->timeout = $parameters['timeout'];
}
- if (!empty($parameters['user_agent'])) {
- $this->userAgent = $parameters['user_agent'];
+ if (!empty($parameters['agent'])) {
+ $this->userAgent = $parameters['agent'];
}
if (!empty($parameters['redirect'])) {
$this->redirect = $parameters['redirect'];
//Apply all filters
foreach($filters as $filter) {
//Prefix with filter
- $filter = __NAMESPACE__.'\\Filter\\'.$filter;
+ #$filter = __NAMESPACE__.'\\Filter\\'.$filter;
//Init tool object
$tool = new $filter($this->containerInterface, $stream->getSourceContext(), $token->getLine());
//Process content
//Create output dir on demand
if (!is_dir($parent = $dir = dirname($this->prefix.$output))) {
- //XXX: set as 0777, symfony umask (0022) will reduce rights (0755)
- mkdir($dir, 0777, true);
+ try {
+ //XXX: set as 0777, symfony umask (0022) will reduce rights (0755)
+ mkdir($dir, 0777, true);
+ } catch (\Exception $e) {
+ throw new \Twig_Error_Syntax(sprintf('Unable to create directory: %s', $dir), $token->getLine(), $stream->getSourceContext());
+ }
}
//Send file content
}
//Retrieve asset uri
- if (($output = $this->containerInterface->get('assets.packages')->getUrl($output, 'rapsys_pack')) === false) {
+ //XXX: was next line to support module specific asset configuration
+ #if (($output = $this->assetsPackages->getUrl($output, 'rapsys_pack')) === false) {
+ if (($output = $this->assetsPackages->getUrl($output)) === false) {
throw new \Twig_Error_Syntax(sprintf('Unable to get url for asset: %s with package %s', $output, 'rapsys_pack'), $token->getLine(), $stream->getSourceContext());
}