Code Coverage |
||||||||||
Classes and Traits |
Functions and Methods |
Lines |
||||||||
Total | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
CRAP | |
86.67% |
13 / 15 |
JsCustomRenderer | |
0.00% |
0 / 1 |
|
66.67% |
2 / 3 |
9.19 | |
86.67% |
13 / 15 |
getEngine | |
100.00% |
1 / 1 |
1 | |
100.00% |
1 / 1 |
|||
setResolver | |
100.00% |
1 / 1 |
1 | |
100.00% |
2 / 2 |
|||
render | |
0.00% |
0 / 1 |
7.23 | |
83.33% |
10 / 12 |
<?php | |
namespace AssetsBundle\View\Renderer; | |
class JsCustomRenderer implements \Zend\View\Renderer\RendererInterface { | |
/** | |
* @var \Zend\View\Resolver\ResolverInterface | |
*/ | |
protected $resolver; | |
/** | |
* @return \AssetsBundle\View\Renderer\JsRenderer | |
*/ | |
public function getEngine() { | |
return $this; | |
} | |
/** | |
* Set the resolver used to map a template name to a resource the renderer may consume. | |
* @param \Zend\View\Resolver\ResolverInterface $oResolver | |
* @return \AssetsBundle\View\Renderer\JsRenderer | |
*/ | |
public function setResolver(\Zend\View\Resolver\ResolverInterface $oResolver) { | |
$this->resolver = $oResolver; | |
return $this; | |
} | |
/** | |
* Renders js files contents | |
* @param \AssetsBundle\View\Renderer\ViewModel $oViewModel | |
* @param null|array|\ArrayAccess $aValues | |
* @return string | |
* @throws \InvalidArgumentException | |
* @throws \LogicException | |
*/ | |
public function render($oViewModel, $aValues = null) { | |
if (!($oViewModel instanceof \Zend\View\Model\ViewModel)) { | |
throw new \InvalidArgumentException(sprintf( | |
'View Model expects an instance of \Zend\View\Model\ViewModel, "%s" given', is_object($oViewModel) ? get_class($oViewModel) : gettype($oViewModel) | |
)); | |
} | |
$aJsFiles = $oViewModel->getVariable('jsCustomFiles'); | |
if (!is_array($aJsFiles)) { | |
throw new \LogicException('JsFiles expects an array "' . gettype($aJsFiles) . '" given'); | |
} | |
$sRetour = ''; | |
foreach ($aJsFiles as $oJsAssetFile) { | |
if ($oJsAssetFile instanceof \AssetsBundle\AssetFile\AssetFile) { | |
$sRetour .= $oJsAssetFile->getAssetFileContents() . PHP_EOL; | |
} else { | |
throw new \LogicException('Js asset file expects an instance of \AssetsBundle\AssetFile\AssetFile, "' . (is_object($oJsAssetFile) ? get_class($oJsAssetFile) : gettype($oJsAssetFile)) . '" given'); | |
} | |
} | |
return $sRetour; | |
} | |
} |