it-swarm.com.de

Wie kann ich eine dynamische $ default_view haben?

Etwas in der Art von:

JLoader::Register('MyComHelperConfig', JPATH_COMPONENT_ADMINISTRATOR . '/helpers/config.php');

class MyComController extends JControllerLegacy
{
    protected $default_view = MyComHelperConfig::getDefaultView();
}

Ich verstehe, dass dies das Schreiben von Methodenüberschreibungen über die Basisklasse beinhalten kann. Was wäre der einfachste Weg, dies zu tun?

1
RiA

Während der Deklaration können Sie eine Klasseneigenschaft nicht auf einen dynamischen Wert festlegen, z. B. einen Methodenaufruf. Siehe http://php.net/manual/en/language.oop5.properties.php

Sie müssten es in Ihrem Konstruktor festlegen.

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);
    }
}

Zu Ihrer Information: Das explizite Setzen der Eigenschaft auf NULL ist nicht erforderlich. Ich habe es mir zur Gewohnheit gemacht. Sie könnten es weglassen:

    protected $default_view; // same as "protected $default_view = NULL;"
3
Drew G