Восстанавливаем объект из состояния __PHP_Incomplete_Class_Name

Объект класса «__PHP_Incomplete_Class» с дополнительным свойством __PHP_Incomplete_Class_Name => ‘имя класса’ появляется, когда PHP не удается найти объявление класса при операции десериализации объекта. К примеру, такое может происходить при хранении объекта в сессии, когда сессия открывается до подключения файлов описаний классов.

Выглядит структура такого объекта например так:

Чтобы избежать данной проблемы необходимо лишь подключить описания классов до старта сессии:

Но, во-первых, сессия может запускаться автоматически, а во-вторых, может не оказаться возможности подключить свои файлы в нужном месте (к примеру, если так устроен движок, для которого вы пишите свой код). По идее, все нужные данные есть, почему бы не написать что то вроде:

К сожалению, в PHP такой фокус не пройдет. :)

Вместо этого напишем простую функцию по инициализации объекта myClass из экземпляра класса __PHP_Incomplete_Class.

Тогда перед использованием объекта необходимо будет запустить его инициализацию:

Мало букафф? Читайте есчо !

Конвертируем HTML в PDF

Ноябрь 6, 2012 г.

Есть разные пути, простые и сложные (вплоть до написания своей PHP библиотеки для конвертации HTML в PDF). Но мы трудным путем не пойдем, а воспользуемся готовым сервером, выполняющим данный экспорт. Для самых ленивых приведу пример его использования ...

Читать

Можно ли вызвать статический метод trait в php, не подключая его к какому то классу?

Май 27, 2025 г.

Если коротко - нельзя. Вызвать какой метод трейта напрямую без подключения его к классу невозможно, т.к. трейты в PHP не являются самостоятельными сущностями, как классы или объекты. Трейт — это механизм "вклейки" кода в класс. Он не компилируется ...

Читать

Досрочный выход, остановка цикла в PHP

Ноябрь 11, 2015 г.

Досрочно закончить исполнение цикла в PHP можно разными способами. Хотя конструкций циклов в PHP много, но принципы одинаковые. Для примера будем использовать цикл for. [crayon-6a068e7d8bc86965407643/] Цикл досрочно завершится с помощью оператора break ...

Читать

Время в PHP, смещение от GMT, UTC

Январь 14, 2016 г.

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

Читать
 

Комментарии к «Восстанавливаем объект из состояния __PHP_Incomplete_Class_Name»

Понравилась статья? Есть вопросы? - пишите в комментариях.



Комментарий:

Много комментариев в “Восстанавливаем объект из состояния __PHP_Incomplete_Class_Name”

  1. Андрей:

    При копировании кода все в строку потом вставляется!..

  2. timur:

    Спасибо большое! Пол дня не мог решить проблему. Ваш сайт помог! Здравия вам и успехов!