Вложенный динамический класс PHP - PullRequest
2 голосов
/ 12 июня 2010

Мне может просто понадобиться обновление терминологии, но я играл в Magento и Joomla, и они делают ссылки вроде

$mage = new Mage;
$mage->block('blockname');

, где класс Маг через какой-то процесс, который я не могу понять, вызывает:

class blockname extends something{

}

Не цитируйте меня по этому коду, однако я собираюсь сделать что-то подобное, где у меня есть файл, который я могу сделать $ myscript-> block ('blockname'); и он загрузит и вызовет файл с именем блока класса.

1 Ответ

3 голосов
/ 12 июня 2010
class Mage {
    private $block;

    public function block($blockname) {
        if (!class_exists($blockname, true)) {
            throw new InvalidArgumentException("Not a valid class name: $blockname");
        }
        $this->block = new $blockname;
    }
}

Загрузка определения класса (если это еще не сделано) обычно выполняется с помощью автозагрузки (см. здесь ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...