texrdcom
Новичок
использования фунции __sleep() и __wakeup() в классах php5
Проблема в том что надо создать класс в которого некоторые функции (которые будут заданны в его конструкторе) будут выполняться однажды гарантированно! (без применения паттерна одиночки)
Данные функции связанны с чтениям файлов, вычеслениями и так далее.
То есть мы имеем класс объект которого может понадобиться в системе различным классам, и при создании данного обьекта первый раз его методы должны быть выполненны полностью однажды.
Отсюда и пришла мысль изпользовать функции __sleep() и __wakeup() .
Вот пример:
Вопрос сколько раз будет прочтен - открыт файл config.ini
один раз или два ?
Как используя функции __sleep() и __wakeup() сделать так чтобы файл был прочтен один раз ?
Проблема в том что надо создать класс в которого некоторые функции (которые будут заданны в его конструкторе) будут выполняться однажды гарантированно! (без применения паттерна одиночки)
Данные функции связанны с чтениям файлов, вычеслениями и так далее.
То есть мы имеем класс объект которого может понадобиться в системе различным классам, и при создании данного обьекта первый раз его методы должны быть выполненны полностью однажды.
Отсюда и пришла мысль изпользовать функции __sleep() и __wakeup() .
Вот пример:
PHP:
<?php
class test
{
private $fileIni='config.ini';
private $arrayConfig;
function __construct()
{
$this->reading_config();
}
public function __sleep()
{
// по идеи вызываеться сериализация - не чего не делаем.
}
public function __wakeup()
{
// Пробуждения - выполняеться данная функция еще раз ? или
// востаноавливаються результаты её работы ?
$this->reading_config();
}
function reading_config()
{
$this->arrayConfig=parse_ini_file($this->fileIni);
return;
}
}
// Создаем объект класса (а)
$a=new test;
// Содаем объект класса (b)
$b=new test;
?>
один раз или два ?
Как используя функции __sleep() и __wakeup() сделать так чтобы файл был прочтен один раз ?
.