Идентификация параметра методов php? Здравствуйте. Имеется свой шаблонизатор skn. Если кратко описать его работу - он имеет методы compl (собирает в html-шаблоне теги вида [%tag%] и присваивает им значения) и метод load который загружает html-файл в строку для дальнейшей обработки. Этот шаблонизатор меня полностью устраивает, но возникла потребность идентификации методов compl.
Нример если взять один из классов-модулей моей cms, - Main. Здесь есть три метода compl которые нужно идентифицировать и как-то передать третий параметр идентичный имени параметру из метода load('main.tpl');
То есть должно быть так:
$this->skn->compl('[%info%]', 'INFORM', 'main.tpl');
$this->skn->compl('[%content%]', 'CONTENT', 'main.tpl');
$this->skn->compl('[%footer%]', 'FOOTER. 'main.tpl');
Можно этот третий параметр прописывать в ручную, но если таких методов compl десятки и больше и 'main.tpl' нужно постоянно добавлять и повторять - это будить не правильно.
Вопрос: Как методам compl можно передать третий параметр идентичный с именем параметра метода load('main.tpl'), который в еще добавок выполняется самом конце после всех compl ?

21 Авг 2019 в 07:05
210 +1
0
Ответы
1

Для того чтобы передать третий параметр, идентичный имени параметра метода load('main.tpl'), вы можете создать свойство в классе, которое будет хранить значение этого параметра. Затем в методе load('main.tpl') вы присваиваете это значение свойству, а затем в методах compl используете значение этого свойства как третий параметр. Например:

class Main {
private $template;
public function load($templateName) {
$this->template = $templateName;
// загрузка html-файла
}
public function compl($tag, $value) {
$this->skn->compl($tag, $value, $this->template);
}
}

Теперь при вызове методов load и compl у объекта класса Main третий параметр будет автоматически передаваться идентичный имени параметра метода load.

Пример использования:

$main = new Main();
$main->load('main.tpl');
$main->compl('[%info%]', 'INFORM');
$main->compl('[%content%]', 'CONTENT');
$main->compl('[%footer%]', 'FOOTER');

Таким образом, третий параметр в методах compl будет автоматически передаваться идентичный имени параметра метода load.

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