Не вызывайте деструкторы для незавершенных объектов (несовместимые изменения в PHP 7.1) - PullRequest
0 голосов
/ 29 мая 2018

Не вызывать деструкторы для незавершенных объектов.

Деструкторы теперь никогда не вызываются для объектов, которые выдают исключение во время выполнения их конструктора.В предыдущих версиях это поведение зависело от того, была ли ссылка на объект вне конструктора (например, путем обратной трассировки исключения).

Я делаю проверку совместимости для php 7.1, 7.2 и не знаю какпроверьте, должен ли я что-то исправить в потоке кода для этого случая

Я полагаю:

  1. В конструкторе вызывается исключение.
  2. Деструктор (вкаким-то образом неявно) ожидается вызов в коде, потому что ...

Спасибо

1 Ответ

0 голосов
/ 29 мая 2018

Прежде всего, я думаю, что деструкторы, написанные пользователем, не очень распространены.Таким образом, вам нужно только проверить класс, если у него есть метод __destruct().

Затем проверьте его конструктор и убедитесь, что он либо никогда не выдает исключение, либо у него есть свой собственный try/catch, который очищаетвсе, что деструктор обычно очищал бы для него.

Я бы не стал беспокоиться о том, что он был условным в предыдущих версиях.Просто убедитесь, что он работает чисто сейчас.

...