2015-05-14 2 views
1

У меня есть эта проблема, когда я не могу решить, для чего и что лучше. Надеюсь, кто-то может дать мне некоторые объяснения, чтобы разобраться в моем замешательстве.Laravel 5 сайтов поддоменов хостов, как новый проект или нет?

Так вот, у меня есть сайт, который довольно большой. В настоящее время я работаю над Yii Framework, на котором я перехожу к L5 Framework. На этом веб-сайте есть несколько структур подсайтов, как показано ниже:

1) www.example.com 
2) www.example.com/{username} 
3) explore.example.com 
4) explore.example.com/{organization} 
5) connect.example.com 
6) coin.example.com 
7) m.example.com 
8) e3.example.com 

Таким образом, текущий метод хостинга использует 1 проект для размещения всего. Здесь возникает проблема, если какой-либо из подсайтов должен быть отключен по какой-либо причине, весь сайт должен быть остановлен, код для отключения сайта и развертывания всего сайта.

Вернуться к L5 Framework, я заметил, что я могу сделать то же самое в Laravel так же разместить все в одном проекте с использованием следующих методов маршрутизации в routes.php:

Route::group(['domain' => '{account}.myapp.com'], function() 
{ 

    Route::get('user/{id}', function($account, $id) 
    { 
     // 
    }); 

}); 

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

Кроме того, я также хотел бы спросить, если я размещаю его как отдельный проект, мой веб-сайт требует от пользователя входа в систему, прежде чем он сможет перейти к любой из страниц или приложений. Итак, как мне рассказать о других модулях, в которых пользователь был зарегистрирован, и все может быть выполнено как обычно?

Наконец, конечно, если у кого-нибудь есть другие предложения или подходы, не стесняйтесь просветить меня тоже. Моими основными мотивами являются:

1) Maximum development flexibility 
2) Fail tolerance 
3) Sub sites can share the same login with the main website 
(You are only require to login at the main page and you will be authorized 
to use the rest of the web application) 

Спасибо.

ответ

2

Я думаю, ответ будет слишком поздним. Тем не менее, это может помочь кому-то другому.

Сегодня я столкнулся с аналогичной дилеммой - следует ли использовать субтитры или отдельные приложения для публичного сайта и сайта администратора моего приложения.

Сначала мне показалось, что у меня должны быть отдельные приложения, чтобы избежать сбивания сайтов бита, если я хочу обновить только один из них. Но я не хотел дублировать весь шаблонный код Laravel снова в моем репозитории.

Тогда мне пришло в голову, что на самом деле я могу реализовать все как подсайты, но я могу развернуть приложение Laravel на несколько поддоменов. Таким образом, в репозитории будет одно приложение, но у меня будет другая копия для каждого поддомена.

Недостаток - код контроллера, виды (и некоторые модели конкретных сайтов) будут дублироваться для каждого развернутого сайта. Это не проблема для небольшого сайта - всего лишь куча неиспользуемых файлов. Но если бы я хотел получить чистое решение, я мог бы реализовать некоторую модульную структуру и использовать материалы MVC для конкретного сайта во время развертывания. Думаю, это другая тема. Есть несколько сторонних решений для модульных приложений Laravel. Конечно, модульное решение добавляет сложности и обслуживания, поэтому я не имею ничего против дублирования файлов на сервере, если это не проблема для вас.

Что касается аутентификации - я не пробовал это с Laravel, но у меня есть опыт реализации куки-файлов для домена верхнего уровня в чистом приложении PHP.По сути, вы можете настроить cookie сеанса на эффективность для всех поддоменов, а затем пользователям будет необходимо войти в систему только один раз на любом из ваших сайтов. Здесь, как представляется, рабочий раствор для Laravel: Persisting sessions across subdomains in Laravel 5

Просто установите домен верхнего уровня для .example.com и теоретически вы должны быть хорошо идти. Однако для целей разработки я сохранил это значение в .env.

Смежные вопросы