Имя класса конструктора PHP7
У меня есть приложение Laravel 4.2, которое работает с PHP5 без каких-либо проблем. Так как я установил новый vagrant box с PHP7, появляется ошибка, как только я запускаю модель, в которой имя функции совпадает с именем класса (отношение-функция), например так:
<?php
use Illuminate\Database\Eloquent\SoftDeletingTrait;
class Participant extends \Eloquent
{
use SoftDeletingTrait;
[...]
public function participant()
{
return $this->morphTo();
}
[...]
}
Я получаю следующее сообщение об ошибке:
Методы с тем же именем, что и их класс, не будут конструкторами в будущей версии PHP; Участник имеет устаревший конструктор (Просмотр: ...)
Итак, что я не знал до сегодняшнего дня, так это то, что в PHP4 методы с одним и тем же именем были конструктором класса. Хм. Я действительно плохой программист ... Но в этом случае, исходя из моего понимания того, что происходит в PHP7, они исправляют мою ошибку, поскольку я никогда не хотел использовать эту функцию в качестве конструктора, поскольку она определяет только отношения Eloquent.
Но как я могу избавиться от этого сообщения? Как я понимаю, в PHP4 мой код глючил, но не в PHP7, верно? Если нет необходимости, я не хочу реорганизовывать эту функцию, так как она используется в нескольких местах.
Кто-нибудь может объяснить, что я делаю неправильно и почему это работает со старыми версиями PHP?
Спасибо!