Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
CRAP
100.00% covered (success)
100.00%
15 / 15
TwbBundleLabel
100.00% covered (success)
100.00%
1 / 1
100.00% covered (success)
100.00%
2 / 2
12
100.00% covered (success)
100.00%
15 / 15
 __invoke($sLabelMessage = null, $aLabelAttributes = 'label-default')
100.00% covered (success)
100.00%
1 / 1
2
100.00% covered (success)
100.00%
2 / 2
 render($sLabelMessage, $aLabelAttributes = 'label-default')
100.00% covered (success)
100.00%
1 / 1
10
100.00% covered (success)
100.00%
13 / 13
<?php
namespace TwbBundle\View\Helper;
class TwbBundleLabel extends \Zend\Form\View\Helper\AbstractHelper{
    /**
     * @var string
     */
    private static $labelFormat = '<%s %s>%s</%1$s>';
    /**
     * @var string
     */
    protected $tagName = 'span';
    /**
     * @var array
     */
    protected $validTagAttributes = array(
        'href' => true,
    );
    /**
     * Invoke helper as functor, proxies to {@link render()}.
     * @param string $sLabelMessage
     * @param string|array $aLabelAttributes : [optionnal] if string, label class
     * @return string|\TwbBundle\View\Helper\TwbBundleAlert
     */
    public function __invoke($sLabelMessage = null, $aLabelAttributes = 'label-default'){
        if(!$sLabelMessage)return $this;
        return $this->render($sLabelMessage,$aLabelAttributes);
    }
    /**
     * Retrieve label markup
     * @param string $sLabelMessage
     * @param  string|array $aLabelAttributes : [optionnal] if string, label class
     * @throws \InvalidArgumentException
     * @return string
     */
    public function render($sLabelMessage, $aLabelAttributes = 'label-default'){
        if(!is_scalar($sLabelMessage))throw new \InvalidArgumentException('Label message expects a scalar value, "'.gettype($sLabelMessage).'" given');
        if(empty($aLabelAttributes))throw new \InvalidArgumentException('Label attributes are empty');
        if(is_string($aLabelAttributes))$aLabelAttributes = array('class' => $aLabelAttributes);
        elseif(!is_array($aLabelAttributes))throw new \InvalidArgumentException('Label attributes expects a string or an array, "'.gettype($aLabelAttributes).'" given');
        elseif(empty($aLabelAttributes['class']))throw new \InvalidArgumentException('Label "class" attribute is empty');
        elseif(!is_string($aLabelAttributes['class']))throw new \InvalidArgumentException('Label "class" attribute expects string, "'.gettype($aLabelAttributes).'" given');
        if(!preg_match('/(\s|^)label(\s|$)/',$aLabelAttributes['class']))$aLabelAttributes['class'] .= ' label';
        if(null !== ($oTranslator = $this->getTranslator()))$sLabelMessage = $oTranslator->translate($sLabelMessage, $this->getTranslatorTextDomain());
        return sprintf(
            self::$labelFormat,
            isset($aLabelAttributes['tagName'])?$aLabelAttributes['tagName']:$this->tagName,
            $this->createAttributesString($aLabelAttributes),
            $sLabelMessage
        );
    }
}