Простительно ли тут немножечко статики? Речь идет о свойстве $metalayout = $layout;
}
}
public function set($property, $value) {
$this->{$property} = $value;
}
public function get($property) {
return $this->{$property};
}
public function layoutPath($path) {
return __DIR__ . '/app/web' . $path . ".php";
}

public function render($template, $data = []) {
( is_null($data) ) ?: extract($data);
ob_start();
if ( file_exists( $this->layoutPath($template) ) ) {
require $this->layoutPath($template);
} else {

echo 'Template not found!';
}
return ob_get_clean();
}
}
В представлении я его устанавливаю//
use app\Common\View\BaseView as View;
//
View::setMeta('title', 'Страница');
А в лейауте я его геттером вывожу //
use app\Common\View\BaseView as View;
//
То есть BaseView::$meta работает вне объекта. Насколько это плохо, как считаете?

21 Авг 2019 в 07:03
149 +1
0
Ответы
1

В данном случае использование статического свойства $meta в классе BaseView для установки и получения мета-данных является допустимым подходом. Однако стоит учитывать, что статические свойства могут вызывать проблемы с тестированием, расширением и поддержкой кода.

Если это свойство будет использоваться только внутри класса BaseView и не требуется передача его между различными экземплярами класса, то может быть разумным оставить его как статическое.

Однако, если есть возможность изменить реализацию и использовать объектные свойства вместо статических, это может сделать код более гибким и эффективным в долгосрочной перспективе.

20 Апр 2024 в 13:08
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир