Esempio n. 1
0
 public function register(Application $app)
 {
     $app['asset.packages'] = $app->share(function ($app) {
         $defaultPackage = new Package($app['asset.version_strategy']('view'));
         $packages = new Packages($defaultPackage);
         $packages->addPackage('bolt', $app['asset.package_factory']('view'));
         $packages->addPackage('extensions', new PathPackage('', $app['asset.version_strategy']('web'), $app['asset.context']));
         $packages->addPackage('files', $app['asset.package_factory']('files'));
         $packages->addPackage('theme', $app['asset.package_factory']('theme'));
         return $packages;
     });
     $app['asset.package_factory'] = $app->protect(function ($name) use($app) {
         return new PathPackage($app['resources']->getUrl($name), $app['asset.version_strategy']($name), $app['asset.context']);
     });
     $app['asset.version_strategy'] = $app->protect(function ($name) use($app) {
         return new Asset\BoltVersionStrategy($app['filesystem']->getFilesystem($name), $app['asset.salt']);
     });
     $app['asset.context'] = $app->share(function () use($app) {
         return new RequestStackContext($app['request_stack']);
     });
     $app['asset.salt.factory'] = function () use($app) {
         return $app['randomgenerator']->generateString(10);
     };
     $app['asset.salt'] = $app->share(function ($app) {
         $file = $app['filesystem']->getFile('cache://.assetsalt');
         try {
             $salt = $file->read();
         } catch (FileNotFoundException $e) {
             $salt = $app['asset.salt.factory'];
             $file->put($salt);
         }
         return $salt;
     });
     $app['asset.injector'] = $app->share(function () {
         $snippets = new Asset\Injector();
         return $snippets;
     });
     $app['asset.queue.file'] = $app->share(function ($app) {
         $queue = new Asset\File\Queue($app['asset.injector'], $app['asset.packages']);
         return $queue;
     });
     $app['asset.queue.snippet'] = $app->share(function ($app) {
         $queue = new Asset\Snippet\Queue($app['asset.injector'], $app['cache'], $app['config'], $app['resources']);
         return $queue;
     });
     $app['asset.queue.widget'] = $app->share(function ($app) {
         $queue = new Asset\Widget\Queue($app['asset.injector'], $app['cache'], $app['render']);
         return $queue;
     });
     $app['asset.queues'] = $app->share(function ($app) {
         return [$app['asset.queue.file'], $app['asset.queue.snippet'], $app['asset.queue.widget']];
     });
 }
 public function testGetterSetters()
 {
     $packages = new Packages();
     $packages->setDefaultPackage($default = $this->getMock('Symfony\\Component\\Asset\\PackageInterface'));
     $packages->addPackage('a', $a = $this->getMock('Symfony\\Component\\Asset\\PackageInterface'));
     $this->assertEquals($default, $packages->getPackage());
     $this->assertEquals($a, $packages->getPackage('a'));
     $packages = new Packages($default, array('a' => $a));
     $this->assertEquals($default, $packages->getPackage());
     $this->assertEquals($a, $packages->getPackage('a'));
 }
 /**
  * @return Packages
  */
 private function getPackages()
 {
     $version = $this->config['version'];
     $versionFormat = $this->config['version_format'];
     $baseUrl = $this->config['base_urls'];
     $basePath = $this->config['base_path'];
     $packages = new Packages();
     $defaultPackage = $this->getPackageFactory()->createService($version, $versionFormat, $basePath, $baseUrl);
     $packages->setDefaultPackage($defaultPackage);
     foreach ((array) $this->config['packages'] as $name => $packageConfig) {
         $version = $packageConfig['version'];
         $versionFormat = $packageConfig['version_format'];
         $baseUrl = $packageConfig['base_urls'];
         $basePath = $packageConfig['base_path'];
         $package = $this->getPackageFactory()->createService($version, $versionFormat, $basePath, $baseUrl);
         $packages->addPackage($name, $package);
     }
     return $packages;
 }
Esempio n. 4
0
 public function register(Application $app)
 {
     $app['asset.packages'] = $app->share(function ($app) {
         $packages = new Packages();
         $packages->addPackage('bolt', $app['asset.package.bolt']);
         $packages->addPackage('extensions', new PathPackage('', $app['asset.version_strategy']('web'), $app['asset.context']));
         $packages->addPackage('files', $app['asset.package_factory']('files'));
         $packages->addPackage('theme', $app['asset.package_factory']('theme'));
         $packages->addPackage('themes', $app['asset.package_factory']('themes'));
         return $packages;
     });
     $app['asset.package.bolt'] = $app->share(function ($app) {
         /*
          * This is technically the wrong directory as our composer script handler
          * copies the assets to the project's web directory. But since this is
          * just to check the file's last modified time for versioning it will do fine.
          */
         $boltViewDir = $app['filesystem']->getDir('bolt://app/view');
         /*
          * Remove app/view from path as AssetUrl plugin will include it.
          * This is because "bolt" FS points to bolt's root dir, but
          * "bolt" asset package points to "bolt_root_dir/app/view".
          *
          * This works with composer installs as well.
          */
         return new Asset\UnprefixedPathPackage($boltViewDir->getPath() . '/', $app['resources']->getUrl('view', false), $app['asset.version_strategy']($boltViewDir), $app['asset.context']);
     });
     $app['asset.package_factory'] = $app->protect(function ($name) use($app) {
         return new PathPackage($app['resources']->getUrl($name, false), $app['asset.version_strategy']($name), $app['asset.context']);
     });
     $app['asset.version_strategy'] = $app->protect(function ($nameOrDir) use($app) {
         $dir = $nameOrDir instanceof DirectoryInterface ? $nameOrDir : $app['filesystem']->getFilesystem($nameOrDir)->getDir('');
         return new Asset\BoltVersionStrategy($dir, $app['asset.salt']);
     });
     $app['asset.context'] = $app->share(function () use($app) {
         return new RequestStackContext($app['request_stack']);
     });
     $app['asset.salt.factory'] = function () use($app) {
         return $app['randomgenerator']->generateString(10);
     };
     $app['asset.salt'] = $app->share(function ($app) {
         $file = $app['filesystem']->getFile('cache://.assetsalt');
         try {
             $salt = $file->read();
         } catch (FileNotFoundException $e) {
             $salt = $app['asset.salt.factory'];
             $file->put($salt);
         }
         return $salt;
     });
     $app['asset.injector'] = $app->share(function () {
         $snippets = new Asset\Injector();
         return $snippets;
     });
     $app['asset.queue.file'] = $app->share(function ($app) {
         $queue = new Asset\File\Queue($app['asset.injector'], $app['asset.packages']);
         return $queue;
     });
     $app['asset.queue.snippet'] = $app->share(function ($app) {
         $queue = new Asset\Snippet\Queue($app['asset.injector'], $app['cache'], $app['config'], $app['resources']);
         return $queue;
     });
     $app['asset.queue.widget'] = $app->share(function ($app) {
         $queue = new Asset\Widget\Queue($app['asset.injector'], $app['cache'], $app['twig']);
         return $queue;
     });
     $app['asset.queues'] = $app->share(function ($app) {
         return [$app['asset.queue.file'], $app['asset.queue.snippet'], $app['asset.queue.widget']];
     });
 }