, (*1)
Zend Framework ViewHelpers BC Compatibility
This is a small project to help making cross-version view helpers.
So you can register the same helper class for both ZF1 and ZF2 using additional getBCHelper
method., (*2)
See tests for example code use, (*3)
class JobleadsHelper extends AbstractBCViewHelper
{
const HELPER_ALIAS = 'jobleads';
/**
* @return string
*/
public function __invoke()
{
return $this->doSomeLogic();
}
/**
* @return string
*/
private function doSomeLogic()
{
return 'foo';
}
/**
* @inheritdoc
*/
public function getName()
{
return self::HELPER_ALIAS;
}
}
$jobleadsHelper = new JobleadsHelper();
// for ZF1
$view = new Zend_View();
$name = $jobleadsHelper->getName();
$helper = $jobleadsHelper->getBCHelper();
$view->registerHelper($helper, $name);
$view->{$name}(); // will execute a helper or just $view->jobleads();
// for ZF2
$renderer = new PhpRenderer();
$helpers = new HelperPluginManager();
$helpers->setInvokableClass($name, get_class($jobleadsHelper));
$renderer->setHelperPluginManager($helpers);
$renderer->{$name}(); // will execute a helper or just $renderer->jobleads();
Of course you can use factory class for instantiating the helper and passing necessary dependancies., (*4)