Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
[AsseticBundle] added factory worker to fix paths when use_controller…
… is on
  • Loading branch information
kriswallsmith committed Apr 19, 2011
1 parent 570a100 commit 5a9a657
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 0 deletions.
@@ -0,0 +1,37 @@
<?php

/*
* This file is part of the Symfony framework.
*
* (c) Fabien Potencier <fabien@symfony.com>
*
* This source file is subject to the MIT license that is bundled
* with this source code in the file LICENSE.
*/

namespace Symfony\Bundle\AsseticBundle\Factory\Worker;

use Assetic\Asset\AssetInterface;
use Assetic\Factory\Worker\WorkerInterface;

/**
* Prepends a fake front controller to every asset's target URL.
*
* This worker should only be added when the use_controller configuration
* option is true. It changes the target URL to include the front controller.
*
* @author Kris Wallsmith <kris@symfony.com>
*/
class PrependControllerWorker implements WorkerInterface
{
const CONTROLLER = 'front_controller/';

public function process(AssetInterface $asset)
{
$targetUrl = $asset->getTargetUrl();

if ($targetUrl && '/' != $targetUrl[0] && 0 !== strpos($targetUrl, self::CONTROLLER)) {
$asset->setTargetUrl(self::CONTROLLER.$targetUrl);
}
}
}
Expand Up @@ -8,6 +8,7 @@
<parameter key="assetic.controller.class">Symfony\Bundle\AsseticBundle\Controller\AsseticController</parameter>
<parameter key="assetic.routing_loader.class">Symfony\Bundle\AsseticBundle\Routing\AsseticLoader</parameter>
<parameter key="assetic.cache.class">Assetic\Cache\FilesystemCache</parameter>
<parameter key="assetic.prepend_controller_worker.class">Symfony\Bundle\AsseticBundle\Factory\Worker\PrependControllerWorker</parameter>
</parameters>

<services>
Expand All @@ -23,5 +24,8 @@
<service id="assetic.cache" class="%assetic.cache.class%" public="false">
<argument>%assetic.cache_dir%/assets</argument>
</service>
<service id="assetic.prepend_controller_worker" class="%assetic.prepend_controller_worker.class%" public="false">
<tag name="assetic.factory_worker" />
</service>
</services>
</container>

0 comments on commit 5a9a657

Please sign in to comment.