Должен ли я использовать маршруты, или контроллеры в 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? Почему?

Author: hernandev, 2013-12-25

3 answers

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

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

Так как многие стандарты кодирования, которые существуют, которые вы должны выбрать, который будет принимать, как, например, PSR или PECL, вы можете выбрать какая форма, что тебя радует.

Я предпочитаю, чтобы разместить все в controllers. У меня есть друг, который, если метод контроллера имеет до 3 строк, он пишет в Router.

Опять же, находится по своему усмотрению и своей команды.

 11
Author: FReNeTiC, 2013-12-25 18:17:51

Я Не Эксперт в Laravel, но я видел на сегодняшний день на framework и программирование, организация должна быть одной из точек наблюдения, то есть на себя, что не смешивать эти маршруты логику приложения должен быть лучшим выбором даже, что оно стоит несколько строк кода в свой проект.

 2
Author: henrique, 2013-12-26 15:03:50

Зависит.

Копирую и колени ниже текущей 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');

Согласен с другими ответами: необходимо поддерживать организации, и соблюдать согласованный шаблон - его и/или команды.

 -1
Author: J. Bruni, 2014-02-05 21:05:32