Как я могу обновить свою CMS?

Я создал CMS (используя PHP-фреймворк Codeigniter), который мы используем для всех наших клиентов. Я постоянно его настраиваю, и становится трудно отслеживать, у каких клиентов какая версия. Мы очень хотим, чтобы у всех всегда была самая свежая версия.

Я написал это таким образом, что обновления и обновления обычно включают только загрузку новой версии через FTP и удаление старой - я просто не трогаю / uploads или ] / themes (все, что относится к сайту, находится либо там, либо в базе данных). Все является модулем, и у каждого модуля есть свой номер версии (а также основной CMS), а также сценарий установки и удаления для каждой версии, но мне нужно сначала вручную отправить файлы по FTP, а затем запустить сценарий установки модуля. с панели управления. Я писал и буду писать все лично, поэтому полностью контролирую код.

Я бы хотел иметь возможность обновлять ядро ​​CMS и отдельные модули с панели управления самой CMS. Это «CMS для чайников», поэтому не может быть и речи о том, чтобы просить людей подключиться к FTP или делать что-либо удаленно техническое. Я представляю себе что-то вроде сообщения, всплывающего при входе в систему или в списке установленных модулей, например «Доступна новая версия».

Я уверен, что смогу разобраться с большинством технических деталей, как только начну с этого, но я не уверен, в каком направлении двигаться. Я могу придумать способы попробовать это с помощью cURL (для аутентификации и извлечения исходных файлов откуда-то на нашем сервере) и собственных функций файловой системы PHP, таких как unlink () , file_put_contents () и т. Д. ... чтобы выполнить фактическое обновление файлов или поместить "старую" CMS в каталог резервного копирования и настроить новую, но даже когда я пишу этот пост - это звучит как рецепт катастрофы.

Я не использую git / github или что-то еще, но мне кажется, что что-то подобное может помочь? Как мне (или не следует) подходить к этому?

9
задан Wesley Murch 26 September 2011 в 04:18
поделиться