Простительно ли тут немножечко статики? Речь идет о свойстве $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 работает вне объекта. Насколько это плохо, как считаете?
В данном случае использование статического свойства $meta в классе BaseView для установки и получения мета-данных является допустимым подходом. Однако стоит учитывать, что статические свойства могут вызывать проблемы с тестированием, расширением и поддержкой кода.
Если это свойство будет использоваться только внутри класса BaseView и не требуется передача его между различными экземплярами класса, то может быть разумным оставить его как статическое.
Однако, если есть возможность изменить реализацию и использовать объектные свойства вместо статических, это может сделать код более гибким и эффективным в долгосрочной перспективе.
В данном случае использование статического свойства $meta в классе BaseView для установки и получения мета-данных является допустимым подходом. Однако стоит учитывать, что статические свойства могут вызывать проблемы с тестированием, расширением и поддержкой кода.
Если это свойство будет использоваться только внутри класса BaseView и не требуется передача его между различными экземплярами класса, то может быть разумным оставить его как статическое.
Однако, если есть возможность изменить реализацию и использовать объектные свойства вместо статических, это может сделать код более гибким и эффективным в долгосрочной перспективе.