Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обновления скрипта online
Форумы портала PHP.SU » » Вопросы новичков » Обновления скрипта online

Страниц (1): [1]
 

1. GoDr - 05 Февраля, 2015 - 10:01:13 - перейти к сообщению
Есть, к примеру, CMS.
Проект размещается на Google Code и соответственно на офсайте.

Соответственно постоянно идёт исправление ошибок и совершенствование кода.

Суть вопроса: как грамотно организовать автоматическое (или иметь возможность обновить в ручную с настройками) обновление? Интересуют любые мысли и идеи. Ну и конечно же личный опыт и проблемы с этим связанные.

У меня в этом опыта практически нет, только соображения. А соображения такие..

Допустим имеем какой-то listchanges. Формат в принципе не важно. Лично я предпочитаю INI, хотя можно и JSON

По сути получаются следующие изменения
- замена файла
- добавление файла
- удаление файла
- SQL-запрос
- и специфический, к примеру, глобальная замена в проекте имени переменной/функции/метода... в некоторых случаях простая замена не получится, т.к. могут быть и пользовательские компоненты/шаблоны/плагины/модул и

имеем, например, такой INI-лог
CODE (htmlphp):
скопировать код в буфер обмена
  1. [r54]
  2.  
  3. change[] = "index.php"
  4. change[] = "version.php"
  5.  
  6. [r53]
  7.  
  8. addition[] = "/lib/str.php"
  9.  
  10. change[] = "index.php"
  11. change[] = "version.php"
  12.  
  13. delete[] = "file1.php"
  14.  
  15. sql[] = "UPDATE `banners` SET `clicks`=0 WHERE  `id`=1;"
  16.  
  17. [r52]
  18.  
  19. addition[] = "/lib/text.php"
  20. addition[] = "/core/src.php"

В принципе получаем карту что нам делать.

Правильно мыслю или всё же "велосипед" творю? Закатив глазки
2. GoDr - 09 Февраля, 2015 - 15:40:12 - перейти к сообщению
Неужели из всего сообщества такое у себя никогда не делал? Хорошо
3. Ch_chov - 09 Февраля, 2015 - 15:51:58 - перейти к сообщению
Какой смысл обновлять отдельные файлы? Экономия трафика? Проще просто заменить весь код CMS на новый и выполнить какой-нибудь update скрипт, который обновит структуру базы если требуется.
4. GoDr - 10 Февраля, 2015 - 12:52:03 - перейти к сообщению
Ch_chov, смысл смутный, сформулировать трудно, но есть. Как пример, допустим мне пришлось залезть в стилевые файлы, или ядро движка, или картинки оформления, может быть в языковые файлы. Не все же файлы в пользовательских шаблонах.. При простом update (тупым замещении файлов) я поменяю всё на оригинальные версии. При этом удалю свои "примочки" и "прибамбасики"

Вот и родилась мысль понимать что именно собирается измениться
5. Ch_chov - 10 Февраля, 2015 - 14:52:47 - перейти к сообщению
Цитата:
Как пример, допустим мне пришлось залезть в стилевые файлы, или ядро движка

Тогда придется забыть про обновления. Большинство современных CMS и фреймворков позволяют изменять поведение системы без хаков ядра. Наследование, хуки, сабскрайберы и т.д. Если постоянно возникает необходимость редактировать вендорный код, то скорей всего либо система кривая либо вы ее недостаточно знаете. В самом крайнем случае можно сохранять изменения в патчах и накатывать их после каждого обновления. В любом случае не понятно как вы собираетсь обновлять систему частями. К примеру, если в новой версии был переименнован какой либо класс, то все равно придется найти и заменить все файлы где этот класс вызывается.
6. GoDr - 10 Февраля, 2015 - 15:07:13 - перейти к сообщению
Ch_chov пишет:
Большинство современных CMS и фреймворков позволяют изменять поведение системы без хаков ядра. Наследование, хуки, сабскрайберы и т.д.
Ну скажем менять не на уровне пользователя, а на уровне программера.. Например, мне не нравится конкретный запрос к БД.. Всегда хочется что-то улучшить Улыбка

Хотя слушая тебя, понимаю слишком специфичную задачу, которая в 99% случаях не будет востребована...

Кстати, совершенно не подумал об возможности отката. Идет простой updata и создаётся backup Хорошо

 

Powered by ExBB FM 1.0 RC1