Ошибка SwiftMailer Undefined свойство: Swift_Transport_StreamBuffer:: $_ sequence

Я использую SwiftMailer для отправки электронной почты с помощью SMTP. Библиотека работает нормально при работе на сервере с PHP версии 5.4. Однако после обновления сервера до версии PHP версии 5.5 письмо не было отправлено, и на сервере произошла ошибка:

Undefined property: Swift_Transport_StreamBuffer::$_sequence

Как я могу решить эту проблему? Спасибо.

Ответ 1

В swift-mailer/classes/Swift/ByteStream/AbstractFilterableInputStream.php изменить

 private $_sequence = 0;

к

 protected $_sequence = 0;

Затем сообщение исчезнет.

Я должен использовать другую версию Swiftmailer, чем вы в устаревшем проекте, я получил то же самое уведомление об ошибке. Мой Swift::VERSION - 4.1.1.

Ответ 2

Я решил проблему, выполнив следующие действия:

Откройте lib/classes/Swift/Transport/StreamBuffer.php

Добавьте private $_sequence в класс, как показано ниже:

class Swift_Transport_StreamBuffer extends Swift_ByteStream_AbstractFilterableInputStream implements Swift_Transport_IoBuffer
{
    private $_sequence; /** added to fix the undefined property error **/

    /** A primary socket */
    private $_stream;

    /** The input stream */
    private $_in;
...

Ответ 3

Изменение должно быть выполнено в обоих этих файлах:

  • скор-почтовик/классы/Swift/потоковый/AbstractFilterableInputStream.php
  • Библиотека/классы/Swift/Транспорт/StreamBuffer.php

После того, как я изменил один, я получил следующее:

PHP Неустранимая ошибка: уровень доступа к Строка Swift_Transport_StreamBuffer:: $_ должна быть защищена (как в класс Swift_ByteStream_AbstractFilterableInputStream) или слабее в /opt/viptel/recorder/lib/classes/Swift/Transport/StreamBuffer.php on строка 20