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

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

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
GoDr
Отправлено: 05 Февраля, 2015 - 10:01:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Есть, к примеру, 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"

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

Правильно мыслю или всё же "велосипед" творю? Закатив глазки


-----
Система управления веб-содержимым Lotos CMS
 
 Top
GoDr
Отправлено: 09 Февраля, 2015 - 15:40:12
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Неужели из всего сообщества такое у себя никогда не делал? Хорошо


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Ch_chov
Отправлено: 09 Февраля, 2015 - 15:51:58
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Какой смысл обновлять отдельные файлы? Экономия трафика? Проще просто заменить весь код CMS на новый и выполнить какой-нибудь update скрипт, который обновит структуру базы если требуется.
 
 Top
GoDr
Отправлено: 10 Февраля, 2015 - 12:52:03
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Ch_chov, смысл смутный, сформулировать трудно, но есть. Как пример, допустим мне пришлось залезть в стилевые файлы, или ядро движка, или картинки оформления, может быть в языковые файлы. Не все же файлы в пользовательских шаблонах.. При простом update (тупым замещении файлов) я поменяю всё на оригинальные версии. При этом удалю свои "примочки" и "прибамбасики"

Вот и родилась мысль понимать что именно собирается измениться


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Ch_chov
Отправлено: 10 Февраля, 2015 - 14:52:47
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




Цитата:
Как пример, допустим мне пришлось залезть в стилевые файлы, или ядро движка

Тогда придется забыть про обновления. Большинство современных CMS и фреймворков позволяют изменять поведение системы без хаков ядра. Наследование, хуки, сабскрайберы и т.д. Если постоянно возникает необходимость редактировать вендорный код, то скорей всего либо система кривая либо вы ее недостаточно знаете. В самом крайнем случае можно сохранять изменения в патчах и накатывать их после каждого обновления. В любом случае не понятно как вы собираетсь обновлять систему частями. К примеру, если в новой версии был переименнован какой либо класс, то все равно придется найти и заменить все файлы где этот класс вызывается.

(Отредактировано автором: 10 Февраля, 2015 - 14:53:09)

 
 Top
GoDr
Отправлено: 10 Февраля, 2015 - 15:07:13
Post Id



Посетитель


Покинул форум
Сообщений всего: 446
Дата рег-ции: Янв. 2015  
Откуда: Тамбов


Помог: 17 раз(а)




Ch_chov пишет:
Большинство современных CMS и фреймворков позволяют изменять поведение системы без хаков ядра. Наследование, хуки, сабскрайберы и т.д.
Ну скажем менять не на уровне пользователя, а на уровне программера.. Например, мне не нравится конкретный запрос к БД.. Всегда хочется что-то улучшить Улыбка

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

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


-----
Система управления веб-содержимым Lotos CMS
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB