Простительно ли тут немножечко статики? Речь идет о свойстве $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
139 +1
0
Ответы
1

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

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

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

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