Quelque chose dans le genre de:
JLoader::Register('MyComHelperConfig', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/config.php');
class MyComController extends JControllerLegacy
{
protected $default_view = MyComHelperConfig::getDefaultView();
}
Je suppose que cela peut impliquer l'écriture de substitutions de méthodes sur la classe de base. Quel serait le moyen le plus simple de le faire?
Vous ne pouvez pas définir une propriété de classe sur une valeur dynamique, telle qu'un appel de méthode, pendant la déclaration, comme vous le tentez. Voir http://php.net/manual/en/language.oop5.properties.php
Vous devez le définir dans votre constructeur.
JLoader::Register('MyComHelperConfig', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/config.php');
class MyComController extends JControllerLegacy
{
protected $default_view = NULL;
public function __construct($properties)
{
$this->default_view = MyComHelperConfig::getDefaultView();
parent::__construct($properties);
}
}
Pour votre information, il n'est pas nécessaire de définir explicitement la propriété sur NULL. Je le mets par habitude. Vous pouvez le laisser de côté:
protected $default_view; // same as "protected $default_view = NULL;"