maler1988
@maler1988
Web-программист (1С Bitrix)

Почему Singleton не сохраняет записанные в свойство объекта параметры?

Взял пример класса Singltone здесь, делаю небольшой парсер. Я хочу сохранить путь загружаемого файла, частично его считать, чтобы пользователь мог на втором шаге парсинга настроить соответствие колонок из файла и свойств каталога (которое кстати тоже возможно потребуется сохранить в экземпляре класса Parser). В общем, если сделать вот так:

$parser = App\Parser::getInstance();
$parser->setValue('name', 'parserPanel');

$parser2 = App\Parser::getInstance();
echo $parser2->getValue('name'); //тут получаю ранее установленный name, т.е. parserPanel


То App\Parser::getInstance(); отдаёт то что нужно. Если же повторно вызвать getInstance() в другом файле, отвечающим за обработку ajax запросов (в этом файле предварительно подключается класс App\Parser и создаётся экземпляр класса), то я получаю уже новый объект, в котором нет никакого name. Вопрос, почему вызывая App\Parser::getInstance(); в двух разных файлах я получаю разные объект?
  • Вопрос задан
  • 108 просмотров
Решения вопроса 1
Delgus
@Delgus
PHP рождается, поднимает все окружение, но после запроса умирает. Когда вы делаете новый запрос вы получаете новый объект...

Синглтон в PHP только в рамках одного запроса (если речь не о асинхронном PHP конечно)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы