Еще одна хорошая практика, которую, как я думаю, следует реализовать CakePHP, которую вы также можете реализовать, - это простой Factory Pattern Helper. Следующее должно быть рассмотрено просто псевдо не реальный код.
$this->Factory->getHelper('Html')->link();
вместо
$this->Html->link();
возьмем, к примеру, следующее
class FactoryHelper extends Helper {
public function getHelper($name) {
if(Configure::read('Overrides.{$name}')) {
return $this->{Configure::read('Overrides.{$name}')};
}
return (isset($this->{$name})?$this->{$name}:false);
}
}
//Bootstrap is where you will set all your overrides
Configure::write('Overrides',array(
'Html'=>'NewHtml'
));
// теперь, когда вы хотите переопределить любого помощника, вы можете
Так что теперь в начальной загрузке вы установили переопределение Html Helper. На всем сайте будет вызываться ваш новый помощник NewHtml вместо традиционного помощника.