Большое спасибо за помощь.
Весь доп функционал использующий во всех шаблонах вывел в /classes/modules/ext/.
Теперь возник вопрос другой. При переходе на php7 перестали работать обращения к методам за приделами класса через $this.
Раньше я ко всем методам модуля (разделенных по разным файлам и классам, внутри одного модуля) обращался:
$methodObject = $this->methodName();
Сейчас я вызываю контроллер модуля и только потом обращаюсь к методу, даже если вызываю его из него самого.
$dataModul = cmsController::getInstance()->getModule(‘data');
$methodObject = $dataModul->methodName();
Понимаю, что это не правильно, но не могу понять как сделать верно.
В "Службе забот" ответили следующее:
Вы можете добавить конструктор в подключаемый класс. В него первым параметром передается экземпляр основного класса модуля:
public function __construct($module) {
После подключения также становится доступным поле $this->module, указывающее на основной класс.
Но не пойму как правильно это записать в свой подключаемый файл расширяемого класса:
<?php
class site_comment {
public function newMethodName() {
// не работает через this
$this->methodName();
}
public $module;
public function __construct($module) {
$this->module = $module;
}
public function some() {
$this->module->otherMethod();
}
в файлах, подключаемых из папки ext __construct можно не указывать.