PHP аналог apt

Печать RSS
330

А
Автор
Оранжевые штаны
0
Добрался до механизма установки, обновления и удаления пакетов в моей системе (аналог apt-get для php). Установить и удалить пакет (каталог файлов php) не составляет особого труда, но есть проблема с обновлением пакетов, прошу навести на мысль.
Имеем модуль (каталог с php классами) для которого определена его версия. Для данного модуля можно повысить версию, если обновить некоторые (или все) входящие в него файлы. Вопрос: как обновить модуль в случае, если для его обновления требуется его же участие?
Для не понявших проблему объясню, если интерпретатор будет использовать любой из файлов модуля в своей работе, то удалить этот файл уже будет нельзя и обновление не удастся, в ОС это решается путем перезагрузки компьютера.
А

Оранжевые штаны
0
Копируешь во временен папку и устанавливаешь текущую директорию chdir() на исходную?
А
Автор
Оранжевые штаны
0
Что копирую? Используемый интерпретатором старый модуль?
А

Оранжевые штаны
0
Если модуль можно сделать прокси для этого, подключать модули которые обновляются через прокси из временной директории.
А
Автор
Оранжевые штаны
0
Можно подробнее?
А

Оранжевые штаны
0
1. Перед началам обновы копировать модуль во временную папку.
2. Добавить код в часть где подключается модуль обновляется ли он, если да то загружать из временной папки.
А
Автор
Оранжевые штаны
0
А как узнать что модуль не используется и его можно удалять?

Добавлено через 00:13 сек.
Или реализовать что то вроде перезагрузки системы?

Добавлено через 06:23 сек.
Я думаю может лучше реализовать так: есть модуль upgrade, который принимает "заказы" на обновления других модулей и даже всей системы. При получении "заказа", модуль складывает его в журнал обновлений, но ничего не обновляет. Обновление производится встроенным в модуль, но не зависящим от загрузчика системы классом (что позволяет не париться на счет использования обновляемых файлов) в определенный момент (когда системой никто не пользуется). Этот момент определяет системный администратор
А

Оранжевые штаны
0
Прочитать список модулей из временной папки или сохранить куда то?
А
Автор
Оранжевые штаны
0
8. Муз-ТВ, второе
А

Оранжевые штаны
0
Можно использовать файл конфигурации для каждого модуля, в котором обозначена версиия, и подключать модуль последней версии. Если появилась инфа о новой версии, асинхронно скачать новую, и со следующего запуска, уже будет новый модуль.
Изменил: Александр (02.11.2013 / 11:19)
Стикеры / Теги / Правила / Топ тем / Топ постов / Поиск