Помощник
Здравствуйте, гость ( Вход | Регистрация )
Автоматическое обновление системы |
Alexander |
2012-01-18, 2:23
Сообщение
#1
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Меня все чаще спрашивают: когда будет реализована функция автоматического обновления системы, чтобы не перекачивать архив, а в админке щелкнуть ссылку и получить новый функционал. Этот вопрос заставляет меня каждый глубоко задуматься над реализацией такой "фишки"... Но есть ряд проблем, которые не позволяют мне даже представить такую функцию. Пока я не вижу способов автообновления системы, поскольку сразу после того, как система установлена на рабочий сайт, она в 90% случаев подвергается изменениям внутри себя: владелец хочет изменить шаблон, подкорректировать работу модуля, базы данных и т.п.
Таким образом, если после всего этого скрипт автообновления тупо выкачает новую версию системы и внаглую заменит все файлы, владелец сайта будет весьма и весьма рассержен, поскольку потеряются все его труды. Так что же делать? Предлагаю сразу рассмотреть то, как нельзя поступать (я могу ошибаться в рассуждениях):
Поделитесь, пожалуйста, своими соображениями по существу. Сообщение отредактировал Alexander - 2012-01-18, 16:30 |
|
|
||
lestatbbk |
2012-01-18, 3:22
Сообщение
#2
|
|
Новичок Группа: Eleanor user Сообщений: 49 Регистрация: 2008-12-27 Из: Харьков Репутация: нет Всего: нет |
Автообновление как "фишка" очень классная штука!
К примеру, в том же Wordpress присутствует, а вот в ядро мало кто лазит. Если уж и поправил что-то для себя - автообновление является не приемлемым и администратор знает, что могут возникнуть проблемы да и терять свои изменения не очень хочется! В нашем случае, думаю, что лучше всего сделать уведомление (только админу) о том, что есть обновление и прямую ссылочку/ссылочки на архив/ы (т.е к примеру у меня utf8 версия). ------------------------------------------------- "Доступно обновление Eleanor CMS" "Версия: 1.0 alpha #10" "Описание: исправление сущ. замечаний "Рекомендуемое обновление: <a href="{ссылка на utf версию системы}" alt="">utf8 версия</a> (если установлена cp1251 - предлагать соответсвующую версию) ------------------------------------------------- по поводу 3 пункта, а зачем изобретать велосипед и создавать лишние проблемы? для этого лучше использовать какую нить систему "версирования" файлов (svn/git), очень удобно. я к примеру, на живом сайте не обновляюсь, всегда стягиваю рабочие файлы на локальный серв, сверяю версии файлов с оригинальным движком (через svn), произвожу все манипуляции (Merge) и после заливаю обратно (а как на счет базы? - имею удаленный доступ к базе и обновляю с локального хоста) Сообщение отредактировал lestatbbk - 2012-01-18, 3:32 |
|
|
||
Alexander |
2012-01-18, 3:25
Сообщение
#3
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Сделать всплывающее окошко с информацией о том, что появилась новая версия - не проблема... Сделаем, если желающих много. Но вопрос все-таки был насчет автоматического обновления...
|
|
|
||
lestatbbk |
2012-01-18, 3:27
Сообщение
#4
|
|
Новичок Группа: Eleanor user Сообщений: 49 Регистрация: 2008-12-27 Из: Харьков Репутация: нет Всего: нет |
Как по мне, в нашем случае оно не приемлемо а вообще, чтобы было всем хорошо дать пользователю выбор вывести такое окно или блок в самом лояуте админки, что доступно обновление (описание выше) В это окно добавить кнопочку [Обновить] по нажати - вывести уведомление красными буковками, что при обновлении будет произведена замена всех файлов Eleanor CMS кроме ваших шаблонов и ваших модулей возможно, ввести систему версий для модулей, и как-то пробовать выключить модули не совместимые с текущей версией Eleanor CMS Сообщение отредактировал lestatbbk - 2012-01-18, 3:50 |
|
|
||
Xenus |
2012-01-18, 11:14
Сообщение
#5
|
|
Любитель Группа: Eleanor user Сообщений: 180 Регистрация: 2011-11-01 Репутация: нет Всего: нет |
На данный момент автообновление нет смысл прикручивать, почему, обяснено по пунктам в первом сообщении этой темы.
Допустим, сейчас прикрутят автообновление, автоматом проверяется наличие более новой версии на сайте и если она есть, предлогает пользователю обновится. Пользователь дал добро - скачались новые файлы поверх старых (о этом естественно его заранее предупреждали), вроде бы всё нормально. А через день, юзер видит что у него пропала с сайта какая-нибудь сделанная им 100500 лет назад фича, о которой он благополучно забыл. И что ему теперь делать? Что правил и где он не помнит. В голову идут три решения:
Вот сейчас вышло обновление эльки, а я обновится не могу. Почему? Просто потому что много чего на сайте было изменено под личные нужды. Залить новые файлы поверх старых - нельзя, нужно сначала выяснить какие именно файлы обновились, потом внести в них все те изменения что я ранее вносил на своем сайте, и только после этого можно залить обновленные файлы. Эту задачу мог бы значительно упростить полный список изменений в файлах системы в сравнении с предыдущей версией, но этого нет. Могу сделать это для себя сам (чем скорей всего и займусь в ближайшее время), но это потребует некоторое количество времени. Сообщение отредактировал Xenus - 2012-01-18, 11:16 |
|
|
||
Alexander |
2012-01-18, 16:40
Сообщение
#6
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Xenus, запускаем svn сейчас - он решит эту проблему (со списком файлов и изменений в них). Но сейчас скажу так, что изменен в системе почти каждый файл, по крайней мере 80% файлов - точно. Что в таких условиях Вам бы дал список всех изменных файлов? Если я вижу такой список из 30+ пунктов, скорее всего я его закрою с мыслями "проще тупо заменить файлы и выловить ошибки".
Добавлено через 1 минут, 8 секунд: Это не решение. Такие пользователи могут самостоятельно заменить файлы системы. |
|
|
||
lestatbbk |
2012-01-18, 20:24
Сообщение
#7
|
|
Новичок Группа: Eleanor user Сообщений: 49 Регистрация: 2008-12-27 Из: Харьков Репутация: нет Всего: нет |
примерно так поступает Wordpress при обновлении на новую версию + выполняются дополнительные запросы в базу (если что-то добавилось) |
|
|
||
Alexander |
2012-01-18, 21:54
Сообщение
#8
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
lestatbbk, скриншот можете сделать, как это происходит в WP?
|
|
|
||
lestatbbk |
2012-01-19, 0:27
Сообщение
#9
|
|
Новичок Группа: Eleanor user Сообщений: 49 Регистрация: 2008-12-27 Из: Харьков Репутация: нет Всего: нет |
вот видео для наглядности http://www.youtube.com/watch?feature=player_detailpage&v=Hw93494zxrg#t=12s Сообщение отредактировал lestatbbk - 2012-01-19, 0:28 |
|
|
||
Djadka |
2012-01-19, 17:50
Сообщение
#10
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Я бы представлял это так, что то типо система хранений версий.
То есть как только появляется обновление то скрипт сверяет файлы с текущий версией, которая используется пользователем, если всё тип топ то обновляем если нет, то выводим какие файлы отличаются от текущий версии то есть которые были изменены и тогда админ уже может сам решить обновлять их или нет, а все остальные обновлять. Но в тогда всё таки лучше уже чётко описывать что менялось или хотя бы какая функция изменена. Слияние кода проводить только по разным фрагментов точно приведёт к конкретным проблемам. По сути тот же 3 пункт что и у Александра. В данном случае что бы всё обновлялось надо делать что бы всё новое капировалось из нового файла в старый, но тогда всё потрётся, что приведёт к весьма печальным последствиям. Поэтому не стоит обновлять файлы которые изменял админ, и к каждому файлу писать какой то минимальный репорт о том что менялось. Что бы админ сам мог поменять потом. |
|
|
||
Alexander |
2012-01-19, 23:40
Сообщение
#11
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Djadka, я так понимаю, наличие svn-а решит проблему автообновлений...
|
|
|
||
Djadka |
2012-01-20, 0:51
Сообщение
#12
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
ВОобще хотелось бы сделать раздел с примочками где можно было бы быстро ставить блоки и модули, что бы не надо было качать и ставить самому, то есть будет список всех блоков модулей разделёных по категориям может там ещё всякие примочки хаки будут отдельной категорией. А может вообще что бы была возможность отключение каких то модулей и блоков и примочек которые не надо, что бы лишний раз не тормозили систему.
|
|
|
||
7Azimuth |
2012-01-31, 21:51
Сообщение
#13
|
|
Опытный Группа: Eleanor user Сообщений: 525 Регистрация: 2010-10-20 Из: Украина Репутация: нет Всего: нет |
Цитата дать пользователю выбор вывести такое окно или блок в самом лояуте админки, что доступно обновление (описание выше) В это окно добавить кнопочку [Обновить] по нажати - вывести уведомление красными буковками, что при обновлении будет произведена замена всех файлов Eleanor CMS кроме ваших шаблонов и ваших модулей Согласен с этой мыслью! |
|
|
||
7Azimuth |
2012-01-31, 22:09
Сообщение
#14
|
|
Опытный Группа: Eleanor user Сообщений: 525 Регистрация: 2010-10-20 Из: Украина Репутация: нет Всего: нет |
В последней Джумле кстати, тоже есть такая возможность. Они вообще там дальше пошли и придумали даже кнопку для проверки обновлений для дополнений
Сообщение отредактировал 7Azimuth - 2012-01-31, 22:14 |
|
|
||
Alexander |
2012-01-31, 22:52
Сообщение
#15
|
|
Eleanor developer Группа: Администраторы Сообщений: 5 261 Регистрация: 2008-11-11 Из: Николаев Версия системы: RC5 Репутация: нет Всего: 67 |
Красные буквы-преждения - не выход. Нужно более красивое решение, коего пока не предложили. Или все предложения сводятся к:
Ладно. Подумаем, как это все реализовать... |
|
|
||
Гость_Ramix_* |
2012-02-01, 10:00
Сообщение
#16
|
|
Гости |
Интересный поднят вопрос. С моей точки зрения, необходимо писать систему полностью абстрагировавшись от ядра, чтобы у меня даже мысли не было лезть в ядро и что-то там менять (т.к. это "поле" разработчика системы). Соответственно, если держать такую линию - ядро уже можно обновлять безболезненно. Для того, чтобы не ломались модули и другие пользовательские дополнения, очевидно, что необходимо поддерживать существующий API в следующих версиях. Выходит, Александр, вопрос с системой автоматического обновления поднят слишком рано, т.к. система пока alpha и API, скорее всего, будет изменяться.
|
|
|
||
LuxCore |
2012-07-07, 22:56
Сообщение
#17
|
|
Любитель Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: нет Всего: нет |
Сегодня покрутил в голове, как реализовать автообновление исходя из нынешней ситуации. Конечно же согласен с Александром, что вывод простого сообщения - фигня на постном масле. Вот как я вижу на данный момент эту ситуацию: показывать пользователю, а точнее админу окошко "Diff", наподобие SVN`овского и построчно пользователь сможет анализировать и тут же заменять необходимые ему строки кода (не малина, конечно, но считаю мыслью мозгового штурма ).
Тем не менее буду думать со всеми вами дальше об автообновлении. |
|
|
||
Djadka |
2012-07-07, 23:12
Сообщение
#18
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Обновление штука сложная, учитывая, что система может меняться из вне, а не изнутри, то есть сделать систему, которая могла бы только меняться изнутри и не как нельзя было бы править файл из вне, что бы система могла контролировать свои файлы и в случае каких то косяков откатываться, да звучить конечно архи глобально, но всё таки стоит задумываться, орагнизовывать SVN на PHP это не очень, и мергить файлы в админке тоже как то не очень, этим должен заниматься сам СВН. Пока бы стоит сделать инсталлер модулей. На данный момент начал разрабатывать модуль переводов статичных файло системы, что находяться сейчас в виде массивов, что бы можно было бы из админке делать, а не править всё ручками, так как бывают такие ситуации что пользователю это не обходимо. И вообще клиент не должен знать пхп что бы работать с системой, вот в меню модуле это можно встретить, что бы сделать пункт в меню ведущий на какой то модуль не обходимо писать клиенту PHP, а если это блондинкО, то выходит надо уже отказываться от системы, так как тут нужны уже не примитивные знания. Для меня лично кажется, что систему надо строить, так что она будет расчитана, на весьма не образованых и не далёких людей, так организую такую систему мы избавляемся от многих проблем.
|
|
|
||
LuxCore |
2012-07-07, 23:23
Сообщение
#19
|
|
Любитель Группа: Eleanor user Сообщений: 278 Регистрация: 2011-11-09 Репутация: нет Всего: нет |
Для "блондинок" это вы хорошо и полезно сказали, но иногда и в блондиночных галочках теряешься. Вот у меня, например, постоянная потребность залезть вовнутрь, мне трудно бывает работать, если не знаю как устроено. Даже не зная язык PHP, я всё равно лезу, ищу, меняю. Поэтому делать систему для "блондинок" не есть оптимально.
|
|
|
||
Djadka |
2012-07-08, 10:56
Сообщение
#20
|
|
Любитель Группа: Eleanor user Сообщений: 463 Регистрация: 2010-10-17 Репутация: нет Всего: нет |
Не есть оптимально, когда тебя дёргают по каждой мелочи. А что там надо вставить где написано PHP код, я не понимаю. И оптимальности должно быть столько, что бы не надо было меня внутрености, что бы можно сказать каждая мелочь была бы настраиваемая без всяких на то лазаний в ядро. Вы же не лезет в виндовс что бы понять как он работает, да и это не возможно, всё решает куча настроек и патчей, да конечно можно залезть в реестр и конкретно всё заточить и переточить, но опять же это только настройки, а не сама реализация.
|
|
|
||
Текстовая версия | 0.0386 сек. 11 запросов GZIP включен Сейчас: 2024-04-24, 19:20 |