PHP: постоянное значение переменной
4401 просмотра
1 ответ
Я должен прочитать файл и сделать некоторые вычисления, а затем сохранить результат этого вычисления в переменной.
Мне просто нужно сделать это один раз. В Java + Servlet я могу сделать это, используя контейнер сервлета и, например, шаблон синглтона.
Я знаю, что в PHP я не могу так себя вести. Какой лучший способ сделать это? Сохранить вычисления (или перенести данные) в БД?
Автор: Antonio Источник Размещён: 12.11.2019 09:48Ответы (1)
9 плюса
Нет, это не будет работать как с сервлетами Java. Вам придется найти обходной путь.
Во-первых, я предполагаю, что использование $ _SESSION, $ _COOKIE или $ _REQUEST в общем случае нецелесообразно для вас, так как вы хотите сохранить состояние для каждого сервера (или для каждого приложения), а не для «пользовательской сессии».
Использование базы данных звучит практически осуществимо в вашем случае. В обычном дизайне приложения это будет наиболее распространенное решение.
Также вы можете сделать что-то вроде этого, используя возможности сериализации PHP:
<?php
$resultfile = 'result.dat';
if(!file_exists($resultfile)) {
$result = compute_result('foo bar');
file_put_contents($resultfile, serialize($result));
} else {
$result = unserialize(file_get_contents($resultfile));
}
Использование serialize()
попытки PHP особенно целесообразно, когда
- Вы находитесь в среде только PHP
$result
это сложный тип данных, но вы не хотите создавать структуру базы данных и отображать $ result тоже
Если вы находитесь не только в среде PHP, вы можете предпочесть другие форматы сериализации, такие как JSON или XML.
Также результат сериализации может быть сохранен в виде строки в базе данных вместо файла. Сохранение его в базе данных вместо файла сделало бы приложение более масштабируемым, поскольку в результате это было бы доступно для всех серверов, которые обращаются к одной и той же базе данных (кластеру).
Вкратце: я бы предложил использовать базу данных в сочетании с сериализацией.
Автор: hek2mgl Размещён: 28.12.2012 09:05Вопросы из категории :
- php Как вы отлаживаете PHP-скрипты?
- php Заставьте XAMPP / Apache обслуживать файл вне htdocs
- php Как включить файлы PHP, которые требуют абсолютного пути?
- php Скрипт входа со скрытыми кнопками
- php How can I find unused functions in a PHP project
- php Эффективное изменение размера JPEG изображения в PHP
- php MySQL или PDO - каковы плюсы и минусы?
- php Как бы вы внедрили аутентификацию на основе FORM без резервной базы данных?
- php Самый простой способ профилировать скрипт PHP
- php Изображения в PHP
- static Почему я не могу объявить статические методы в интерфейсе?
- static Возможны ли статические переменные класса?
- static Почему основной метод Java статичен?
- static Неразрешенный внешний символ на статических членах класса
- static What is the lifetime of a static variable in a C++ function?
- static Могу ли я добавить методы расширения в существующий статический класс?
- static В чем причина того, что «на нестатический метод нельзя ссылаться из статического контекста»?
- static В чем разница между статическим и нестатическим блоком кода инициализации
- static Что делает ключевое слово static в классе?
- static Синхронизированные статические методы Java: блокировка объекта или класса