Ошибка 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