今回は、laravel が採用している設計思想であるMVCモデルの概略と、コントローラの使い方の基礎を解説していきます。
参考書
MVCモデル
MVCは、「Model-View-Controller」の略であり、アプリケーションを設計する上での考え方になります。
モデル(Model)
データベースとのやりとりに関する処理全般を担当します。
ビュー(View)
ブラウザへの表示を担当します。
画面表示に使うテンプレートなどがこれにあたります。
コントローラ(Controller)
モデル・ビューを含めた全体の制御を担当します。
以上のように、モデルとビューは特定の機能に特化したものですが、コントローラは処理全般を制御するものであり、プログラムの本体のような位置づけになります。
それぞれの役割を念頭に置いておいてください。
コントローラの利用
コントローラの作成
ではコントローラを作成してみましょう。
コマンドラインで、
(サーバーを起動させている場合は、Ctrl + C でサーバーを停止させてから実行してください)
今回は以下のように実行します。
php artisan make:controller SampleController
作成されたコントローラは、
app/Http/Controllers の中に配置されています。
では、SampleController.php を見てみましょう。
コントローラはクラスとして作成され、デフォルトで以下のような記述がなされています。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SampleController extends Controller
{
//
}
namespace(名前空間)や use 文はPHPの仕様ですので、具体的な解説は割愛します。
簡単に言うと、名前空間とはクラスを階層的に整理するための仕組みであり、このクラスは App\Http\Controllers という名前空間に配置されます。
use 文はクラスをインポートする機能であり、Request クラスはよく使用するため、デフォルトでインポートされています。
アクションの追加
では、SampleController クラスに処理を追加しましょう。
コントローラに記述する処理は「アクション」と呼ばれ、複数用意することができます。
今回は、SampleController クラスに index アクションを以下のように追加します。
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class SampleController extends Controller
{
public function index() {
return 'SampleController の indexアクションにアクセスしました';
}
}
そして、このコントローラのアクションにルートを割り当てるには、web.php に以下のような記述をします。
今回の場合は、以下のようになります。
Route::get('/sample', 'App\Http\Controllers\SampleController@index');
これでサーバーを起動してブラウザを読み込むと、
「SampleController の indexアクションにアクセスしました」
と表示されます。
(サーバーを起動するには、コマンドラインで「php artisan serve」を実行してください)
これで、ルートをコントローラのアクションに割り当てる方法が確認できました。
今回は以上になります。
ご覧いただきありがとうございました(^^)
参考書
続きはこちら↓
コメント