3

Laravelフレームワーク開発の最善のアプローチについて考えていました。私が経験するほとんどの時間とチュートリアル、例:DayleによるLaravel CodeHappy、ここに表示されているものは彼の本と同じです。スタックオーバーフローのほとんどのQ&A、私はほとんどの開発者がすべてのリクエスト処理をroute.phpに置いていることに気づきました。これがクラウドのような大きなアプリケーションコード構造に最適であることを知っていますか?私のコンセプトでは、RESTfulはAPI用に設計されていますが、コントローラーを使用して、取得、投稿、配置、または削除を検出できます。このような

if ($_POST)
    {
       // Try and login user
    }
    else
    {
       // Show login form
    }

しかし、利用できるチュートリアル/サンプルはあまりありません。コンセプトが間違っていますか?すべてをコントローラーに変更した場合、その方法がわかりませんでした。検証とコントローラーからの入力の取得のように。誰かがこれについて考えを持っていますか?ご意見をお聞かせください。例が表示されるのが最善である場合;)ありがとう。

4

2 に答える 2

6

その質問に対する正確な答えは本当にありません。ルートとコントローラーのどちらを使用するか(または両方を使用するか、これは完全に受け入れられ、ほとんどの人が行っていることです)は、アプリケーションによって異なります。一般的に言って、ルートに多くのビジネスロジックがあると思われる場合は、コントローラーをコントローラーに「変換」することを検討する必要があります。コントローラーは、特に大規模なアプリケーションの場合、保守と見落としが容易だからです。

結局のところ、たとえばルートを使用してコントローラーを呼び出すことにより、ルートの柔軟性とコントローラーの能力を組み合わせるのがおそらく最善です。

Route::get('welcome', 'home@index');

ここでは、コントローラーでindexアクションを呼び出します。home

ルートとコントローラーの議論についてもっと知りたい場合、これは素晴らしい記事です。

于 2013-03-17T15:37:28.703 に答える
4

ルートに接続された無名関数の内部からアクセスできるコントローラーの内部から、同じクラスすべてにアクセスできます。

たとえば、次のルートがある場合:

Route::post('register', function(){
     $user = new User();
     $user->username = Input::get('username');
     $user->password = Hash::make(Input::get('password'));

     $user->save();

     return Redirect::to('home');
});

これで置き換えることができます:

Route::post('register', array('uses' => 'auth@register'));


class Auth_Controller extends Base_Controller {

    public static $restful = true;

    public function post_register() {
         $user = new User();
         $user->username = Input::get('username');
         $user->password = Hash::make(Input::get('password'));

         $user->save();

         return Redirect::to('home');
    }
}

...そして同じ結果が得られますが、アプリケーションが成長するにつれて特に重要になるもう少し組織があります。

于 2013-03-17T15:44:21.543 に答える