Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Недавно начал разработку приложений на Laravel. (имею опыт работы с Yii Framework).
Интересует, как разделить frontend от backend?
Не в сети
в bootstrap/start.php
Detect The Application Environment
разделяйте по своим условиям
Я разделяю на уровне хоста, как пример
$env = $app->detectEnvironment(function() use ($app){
$env = 'production';
if($app['request']->getHost() == 'manager.site.ru'){
$env = 'manager';
}
return $env;
});
тогда структура
config
->manager
->production
controllers
->manager
->production
и.т.д.
Это для L4, в L3 немного по другому.
далее роуторы разделяю в app/routes.php
if (App::environment('manager'))
{
require_once app_path() . '/routes/manager.php';
}
else
{
require_once app_path() . '/routes/front.php';
}
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
Artdevue, вы или не поняли топикстартера, или я не понял вас, или делаете у себя что-то очень странное. Environment предназначено для определения настроек для запуска приложения на разных серверах (у себя дома, на тестировочном и рабочем), а не для доступа в админку.
etibar, фронт и бэк в данном случае это админка / сам сайт, или клиентсайд на js / серверсайд на ларавеле ? Если первое, то как обычно - в папке контроллеров можно сделать подпапку для контроллеров админки (или в неймспейсе, если вы пишете в нем, делаете папку для бэкенда и там кладете его сервис-провайдер, модели, контроллеры, репозитории, обсерверы, презенторы и т.п.), у пользователя вводится система прав (в простейшем случае флаг is_admin в таблице users), и роуты админки оборачиваете в группу, на которую вешаете написанный вами фильтр "admin", в котором проверяете права доступа залогиненого пользователя.
Изменено slider23 (11.08.2014 17:38:48)
Не в сети
@slider23 вы наверное не обращали внимание, что в вашем случае разделения фронта и бэка чисто визуальное, т.е. при загрузке фронта вы тянете весь мусор с бэка.
Я не буду утверждать в правильности решения, но я привёл пример тот, которым я пользуюсь.
Возможно ошибочное решения, но у меня рабочее.
If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.
Не в сети
Да, я забыл упомянуть, что во views надо тоже сделать свою подпапку и лейауты страниц у фронта и бэка будут, естественно, разные. Благо, наш шаблонизатор позволяет удобно "наследоваться" вьюхам от разных источников при помощи @extend.
Не в сети
т.е. при загрузке фронта вы тянете весь мусор с бэка.
Что вы имеете в виду под мусором? Каким образом что-то может тянуться, если на фронте/бэке используются разные контроллеры/шаблоны?
P.S. Использую способ аналогичный предложенному @slider23, только для управления пользователями подключаю Cartalyst\Sentry.
Изменено konfuji (12.08.2014 13:35:33)
Taylor Otwell @taylorotwell
In other news, features debuting at @laraconeu are going to rock your world. Can’t wait to show you!
http://live.laracon.eu/
Не в сети
slider23, вы не могли бы подробнее написать про способ с подпапкой для контроллеров админки?
Достаточно в папке controllers создать папку admin, и все?
Не в сети
Нет, еще нужно внести изменения в файл контроллера и файл роутов.
У контроллера указать неймспейс по названию папки и путь до BaseController ("\"):
<?php namespace Admin;
class SomeController extends \BaseController {
А у роутов писать путь до контроллера с учетом папки-неймспейса:
Route::get( 'admin/some', 'Admin\SomeController@index');
А можно вместо этого сгенерить папку-модуль Admin моим модулятором https://github.com/slider23/laravel-modulator . Там будут и контроллеры и вьюхи, и всякие служебные админские классы положить можно.
Изменено slider23 (15.10.2014 17:56:16)
Не в сети
Страницы 1