Я пытаюсь расширить метод класса, но мне не повезло. Я делаю это как часть обновления с 3.7 до 4.5. В 3.7 он отлично работал без использования трейтов. Читая документацию, я использовал трейт «Расширяемый». Теперь я получаю следующую ошибку. Проверил все уровни доступа к моим методам. Все являются общедоступными, но все еще получают эту ошибку
Неустранимая ошибка: уровень доступа к SilverStripe\Core\Extensible::defineMethods() должен быть общедоступным (как в классе SilverStripe\View\ViewableData)
class MyOpenController extends Controller {
use Extensible;
private static $allowed_actions = array(
'login',
'logout'
);
public function login($data = array()) {
//code here
$this->extend('customFunction');
//more code
}
}
У меня есть класс расширения, в котором есть определение для этого метода.
class MyOpenControllerExtension extends Extension
{
public function customFunction() {
//some code here
}
}
не могу понять, почему у меня эта ошибка. Может кто-нибудь, пожалуйста, помогите мне понять, что здесь не так.
Спасибо ДР