У меня есть два класса ClassA и ClassB. ClassA всегда нужно имя файла шаблона, а ClassB расширяет ClassA.
В обычных случаях, когда создается экземпляр ClassB, пользователь должен указать имя файла шаблона. Как:
$classB = new ClassB('index');
Но теперь я создал ClassX, который расширяет ClassA, и когда пользователь использует ClassX, он не должен ничего указывать. Это класс, который просто создает кнопку, поэтому он сам знает, каков файл шаблона для этого.
Так что пользователь просто хочет позвонить:
$bttn = new ClassX();
и внутри конструктор ClassA вызывается с помощью button_template.
Для этого я вижу следующие варианты:
A)
public function __construct() {
$tplName = func_get_arg(0);
if (!isset($tplName)) {
$tplName = 'button_template';
}
parent::__construct($tplName);
}
или B)
public function __construct($tplName='button_template') {
if (!isset($tplName)) {
$tplName = 'index';
}
parent::__construct($tplName);
}
или C)
public function __construct($tplName='button_template') {
parent::__construct($tplName);
}
Какой из них лучший? А почему?