Должен ли я использовать маршруты, или контроллеры в Laravel 4?
Я новичок в Laravel и у меня есть вопросы по использованию controllers, читаю несколько примеров/учебников, и я вижу, подавляющее большинство использует маршрутов", пример запроса в форме, для отображения страниц, даже запросы к базе.
Я разрабатываю приложение, и я наткнулся на следующее ситуация:
App\routes.php
Route::group(array('as'=>'aluno', 'prefix' => 'aluno', 'before' => 'auth'), function() {
// (redireciona para o dashboard)
Route::get('/', function()
{
return Redirect::to('aluno/dashboard');
});
// página principal - aluno/dashboard - (app/views/aluno/dashboard.blade.php)
Route::get('dashboard', function()
{
return View::make('aluno.dashboard');
});
});
Controllers\AlunoController.php
class AlunoController extends BaseController {
public function getIndex() {
$this->getDashboard();
}
public function getDashboard() {
return View::make('aluno/dashboard');
}
}
Оба выполняют те же функции, что мои сомнения в том, какой я должен использовать? Или маршруты Controllers? Почему?
3 answers
Как Правило, все учебники, которые вы найдете через интернет, демонстрируют проекты небольших, или просто фрагменты кода. В таких случаях, как необходимость организации и стандартов, проектов мало, кто их пишет, как правило, делает все возможное, чтобы продемонстрировать существование этих возможностей.
, Если вы хотите сделать проект своего, рекомендуем вам следовать шаблон, который вы и ваша команда - нравится больше, что удается организовать и сможет прочитать и обслуживания, не подчеркивая.
Так как многие стандарты кодирования, которые существуют, которые вы должны выбрать, который будет принимать, как, например, PSR или PECL, вы можете выбрать какая форма, что тебя радует.
Я предпочитаю, чтобы разместить все в controllers. У меня есть друг, который, если метод контроллера имеет до 3 строк, он пишет в Router.
Опять же, находится по своему усмотрению и своей команды.
Я Не Эксперт в Laravel, но я видел на сегодняшний день на framework и программирование, организация должна быть одной из точек наблюдения, то есть на себя, что не смешивать эти маршруты логику приложения должен быть лучшим выбором даже, что оно стоит несколько строк кода в свой проект.
Зависит.
Копирую и колени ниже текущей routes.php
проекта в разработке.
<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
*/
/*** "STATIC" SITE ***/
Route::group(array(), function()
{
Route::get('/', 'GuestController@index');
Route::get('/franqueado', 'GuestController@franqueado');
Route::controller('home', 'GuestController');
});
/*** AUTHENTICATION ***/
Route::group(array('before' => 'guest'), function()
{
Route::get( '/assinar', 'AuthController@signup' );
Route::post('/assinar', 'AuthController@signupHandler' );
Route::get( '/minha-conta', 'AuthController@login' );
Route::post('/minha-conta', 'AuthController@loginHandler' );
Route::get( '/franquia', 'AuthController@login' );
Route::post('/franquia', 'AuthController@loginHandler' );
});
Route::group(array(), function()
{
Route::any( '/minha-conta/logout', 'AuthController@logout' );
Route::any( '/confirmar/{code}', 'AuthController@verify' );
Route::get( '/solicitar-senha', 'AuthController@forgotPassword' );
Route::post( '/solicitar-senha', 'AuthController@forgotPasswordHandler');
Route::any( '/recuperar-senha/{code}', 'AuthController@resetPassword' )->where('code', '(.*)');
Route::any( '/franquia/logout', 'AuthController@logout' );
});
/*** "LOGGED-IN USER" SITE ***/
Route::controller('minha-conta', 'AssinanteController');
Route::controller('franquia', 'FranquiaController');
/*** SPECIAL ROUTES ***/
Route::group(array(), function()
{
// Use these routes while in local/development environment to see
// how these exceptional pages look like in the production environment
Route::get('/404', function()
{
return Response::view('special.missing', array(), 404);
});
Route::get('/500', function()
{
return Response::view('special.error', array('error' => 'Erro desconhecido'), 500);
});
Route::get('/down', function()
{
return Response::view('special.down', array(), 503);
});
});
Как можно видеть, основной сайт находится здесь, в этих немногих и простых линий:
/*** "LOGGED-IN USER" SITE ***/
Route::controller('minha-conta', 'AssinanteController');
Route::controller('franquia', 'FranquiaController');
Согласен с другими ответами: необходимо поддерживать организации, и соблюдать согласованный шаблон - его и/или команды.