Правильное хранение объектов в php? хочется закешировать результаты работы тяжелого класса. но непонятно как правильно хранить часто используемый объект (возвращается из метода класса) в кеше (файловый кеш, то есть хотелось бы в строку объект сохранить) . пробовал сериализацию, но в объекте защита.public function __wakeup() {
trigger_error('Unserializing is not allowed.', E_USER_ERROR);
}
убрал триггер - естественно, php криво сохранил объект
какие еще есть варианты?
php 5.5.23

21 Авг 2019 в 07:06
162 +1
0
Ответы
1

Если вы не можете использовать сериализацию объекта для кеширования его в файловом кеше из-за метода __wakeup(), то можно рассмотреть другой способ.

Один из вариантов - использовать библиотеку или расширение для PHP, такие как Memcached, Redis или APCu. Они позволяют хранить объекты в кеше и могут управлять сериализацией и десериализацией объектов автоматически.

Если использование дополнительных библиотек не подходит, можно рассмотреть другой способ хранения объектов в файловом кеше. Например, можно реализовать свой собственный механизм кеширования, где объекты будут сохраняться как строки в файле, а затем десериализоваться при чтении из файла.

Ниже приведен пример такого механизма кеширования:

class ObjectCache {
public static function saveObjectToFile($object, $filename) {
$serializedObject = serialize($object);
file_put_contents($filename, $serializedObject);
}
public static function getObjectFromFile($filename) {
$serializedObject = file_get_contents($filename);
return unserialize($serializedObject);
}
}
// Сохранение объекта в файл
$obj = new YourClassName();
ObjectCache::saveObjectToFile($obj, 'cached_object.txt');
// Получение объекта из файла
$cachedObj = ObjectCache::getObjectFromFile('cached_object.txt');

В этом примере подразумевается, что ваш объект YourClassName не содержит сложной логики сериализации и десериализации. Если объект имеет сложную логику, то возможно потребуется реализовать свой собственный метод сериализации и десериализации или использовать другие способы хранения и кеширования объектов.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 387 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир