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