Режим разработки на сайте. Как вносить изменения на работающий сайт в формате «demo»?

Добрый день.

Сегодня возник интересный вопрос, интересует возможность реализации идеи. Суть - имею сайт на хостинге (содержание сайта значения не имеет, то, что нужно знать, так это то что сайт работает и посещается), отключение сайта на определенный/неопределенный срок не рассматриваю.

Например, сейчас требуется внести координальные изменения в структуру сайта, а именно подправить контроллеры, удалить лишние функции и дописать новые в моделях, вьюшки переписать. В общем серьезный такой "апгрейд" системы. Изменения в БД не планируются, только в файлах сайта. Проект закрытый, доступ внутри одной конкретной компании и отключение сайта приведёт к негативу со стороны сотрудников и, соответственно, начальства.

Сегодня возникла идея следующего вида - есть ли возможность с помощью какого то флага в настройках сайта (либо в самом коде либо в БД) включать "режим разработчика" с возможностью вносить изменения на сайт, которые будут видны только администратору системы. А потом, с помощью "волшебной" кнопки применять все сделанные изменения и для всех остальных пользователей системы.

Думаю сразу возникнет вопрос, почему бы не клонировать всю систему на локальный сервер и работать с ним, а потом загружать все в сеть. Почему я отбросил этот вариант? Потому что доступ к изменениям, которые еще официально не подтверждены, должен иметь не только я. Будут еще люди, которые будут отслеживать вносимые изменения, согласовывать эти изменения и принимать их. Поэтому необходимо сделать такой функционал в рамках одной системы.

P.S. Фреймворки не использую (пока что).
  • Вопрос задан
  • 2123 просмотра
Пригласить эксперта
Ответы на вопрос 6
GavriKos
@GavriKos
Ну в теории - это можно. Никто вам не мешает везде писать что то вроде
if ($test_mode == true)
{
//отдаем новый функционал
}
else
{
//отдаем старый функционал
}


Но это неправильно. Самый правильный вариант - это поднимать еще один сайт, для ветки с тестовым функционалом. Хоть на локальной машине и шарить на всех, хоть на той где основной сайт - просто давать доступ по другому урлу. Иначе утонете в тоннах ифов.
Крайний вариант - разрулить это на уровне роутинга страниц, это потенциально уменьшит количество условий, но все равно очень очень не найс.
Ответ написан
"Все" поднимают для таких целей отдельный сайт. Это не обязательно новый сервер/домен, если код нормально написан, сайт будет одинаково работать, располагаясь как в корневой папке site.com, так и во вложенной site.com/testing.
Если добиться работы во вложенной папке проблемно, заводится test.site.com.
Git при этом замечательно пригодится, чтобы заливать все изменения - как при тестировании по мере изменений, так и по окончании - одним махом все.
Ответ написан
VasyaPertrov
@VasyaPertrov
Изготовление и безопастность сайтов. WP и др.
почему бы не клонировать всю систему на локальный сервер и работать с ним, а потом загружать все в сеть. Почему я отбросил этот вариант?

Можно и так, но лучше в той среде, в том же окружении, где сайту предстоит жить. Клон на на том же хостинге на другом домене и закрытый от посторонних.
Ответ написан
Комментировать
webinar
@webinar
Учим yii: https://youtu.be/-WRMlGHLgRg
Делаете поддомен. Там колдуете, потом переносите на основной. Мало того, так как колдовство Ваше наверное весь сайт не затрагивает можно вынести только часть, остальные файлы подключить с основного домена. Главный вопрос на чем сайт?
Ответ написан
Комментировать
ivaneliseeff
@ivaneliseeff
Кратко о себе
Я в независимости от того что за движок, делаю подобное средствами nginx.
В конфигурации уже указана папка, в которой файл говорящий о том, что идёт тех. обслуживание.
А в момент непосредственного обслуживания, убираю комментарий у этой строчки, который перенаправляет все IP кроме моего к этой папке. Кустарно, согласен, но работает - как говорится :))
(удобненько, так как не нужно вносить никаких изменений в сам движок/фреймворк/код)
Ответ написан
Комментировать
@dativav
Лучше поставить копию.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы