/** * @return \Phoenix\Container\ContainerInterface */ public function buildContainer() { $container = new Container(); $i = 0; $sections = array(); foreach ($this->files as $file) { $jsPackageName = $this->getJsPackageName($file); if ($jsPackageName && !$this->config['debug']) { $file = 'packages/' . $jsPackageName . '.js'; $asset = new Asset($this->getFinalPath($file)); $asset->setIsPackage(true); $container->add($asset); continue; } if (!$this->useBatches()) { $container->add(new Asset($this->getFinalPath($file))); } else { $sections[intval($i++ / $this->getBatchSize())][] = $file; } } if (count($sections)) { foreach ($sections as $aSection) { $container->add(new Asset($this->config['batchController'] . base64_encode(implode(',', $aSection)) . '.js')); } } return $container; }
public function testAdd() { $container = new Container(); $container->add($this->mockAsset('asset1.js')); $container->add($this->mockAsset('asset2.js')); $container->add($this->mockAsset('asset1.js')); $container->add($this->mockAsset('asset3.js')); $container->add($this->mockAsset('asset3.js')); $container->add($this->mockAsset('asset2.js')); $this->assertCount(3, $container->getAssets()); }