2018/10/12
プログラミングの最初のステップである「Hello World」の表示をしてみたいと思います。
しかし、今までフレームワークを利用して開発をしたことがない自分にとって、まずはルーティングについて学ばなければなりませんでした。
今回はPHPフレームワークにおけるルーティングついて勉強し、そこからHello Worldの出力をしてみます。
ルーティングについて
ルーティングの概念
Laravelに限らずPHPフレームワークは全てルーティングという機能を使います。
僕みたくPHPフレームワークを使ったことがない人間は、まずは「ルーティング」という機能を理解しないといけません。
ルーティングを使わない場合、URLのアクセスはとても単純です。
例えば、公開フォルダの中に「mylaravel」というフォルダを作り、「mylaravel」フォルダの中にhello.phpというファイルを置くとします。
この場合/mylaravel/helo.phpにアクセスすれば「hello.php」に記述した内容が呼び出されます。
ルーティングとは言ってしまえばこの役割を担います。
「どのアドレスにアクセスしたら、どの処理を実行するか」という割当ての機能のことです。
Laravelでのルーティングの書式
Laravelでは
/app/Http/routes.php
のファイルにルーティングを記述していきます。
書き方は
Route::メソッド ( パス , 呼び出す処理 );
になります。
第1引数が、ルーティングで割り当てるURLのアドレスです。
第2引数が、第1引数で指定したアドレスにアクセスされた時に呼び出される処理を書きます。
Laravelでは様々なルーティングの方法が提供されています。
・クロージャ(無名関数)で書く ※routes.phpに直接処理を書いてしまう
Route::get('hello/', function() { return 'Hello World'; });
Laravelの開発ではroutes.phpをクロージャ型で書く機会はあまりありません。
・コントローラに渡す
#HelloControllerというコントローラのhelloWorldというメソッドを呼び出す Route::get('hello/', 'HelloController@helloWorld');
フレームワークでおなじみのルーティングの使い方です。
コントローラを別に用意して、ルーターはコントローラへ橋渡しをするだけです。
その他にもRESTfulにルーティングさせる方法やResourcefulにルーティングさせる方法などあります。
今回のチュートリアルではとりあえずHello Worldを表示したいだけなので、routes.phpに処理を直接書きます。
チュートリアル
実現したいこと
- routes.phpを編集してHello Worldの表示
MVCモデル
PHPフレームワークはソースコードをModel(モデル)、View(ビュー)、Controller(コントローラ)の3つに分けます。
これをMVCモデルといいます。
通常ではクライアントからのリクエスト処理をroutes.phpが受け取りMVCモデルのコントローラに割り当てます。
今回のチュートリアルではコントローラに処理を割り当てません。
routes.phpで完結させます。
手順
routes.phpの編集
/app/Http/routes.phpを編集します。
以下のコードを追記します。
Route::get('hello/', function() { return 'hello World'; });
ブラウザで確認
ブラウザを起動して
http://localhost/mylaravel/public/hello
※ドキュメントルート直下に「mylaravel」というプロジェクトを作成した場合
と入力してアクセスします。
上のような画面が表示されたらOKです。
仕事で Laravel を使っています。気づいたことや新しい発見など情報を発信していきます。問い合わせはこちら。