PHPのフレームワーク「Laravel」を使ってみます。
Composerのインストール
Composerの公式サイトからダウンロードします。
ダウンロードページへ遷移すると、Composer-Setup.exeと書かれたリンクがあるのでクリックしてダウンロードします。
ダウンロードしたファイルを実行してインストールを行ってください。
インストール完了後、コマンド プロンプトを起動します。
composerと入力して、Composerの情報が表示されたらOKです。
プロジェクトの作成
Laravelをローカルにインストールしてみます。
コマンドプロンプトを開いて、作業ディレクトリに移動します。
cd 作業ディレクトリのパス
プロジェクトを作成(Laravelをインストール)します。
プロジェクトを作成するには以下のコマンドを使います。
composer create-project laravel/laravel プロジェクト名 --prefer-dist
今回は作業ディレクトリ内にlaravel_testというディレクトリを作成して、その中にLaravelをインストールされるようにします。
composer create-project laravel/laravel laravel_test --prefer-dist
これでLaravelのインストールが完了しました。
作成したプロジェクトへ移動します。
cd 作業ディレクトリのパス\laravel_test
サーバを起動します。
php artisan serve
以下のようなURLが表示されるので、ブラウザでアクセスします。
ページの表示が確認できればOKです。
ルーティングとビュー
インストールしたLaravelのディレクトリを確認すると色々なファイルが入っています。
今回はその中でもよく使うroutes.php、viewsディレクトリ、Controllersディレクトリを見てみます。
まずはroutes.phpを見てみます。
routes.phpは特定のURLにアクセスしたときに何の処理を行うかを指定するファイルで、/app/Http/ 以下にあります。
routes.phpを開くと、以下のような記述があると思います。
これは、ルートにアクセスしたときにwelcomeというviewのファイルを表示するという意味になります。
welcomeは/resources/ 以下のviewsディレクトリ内にあります。
viewsディレクトリは、表示用のテンプレートファイルを格納しておくディレクトリです。
viewsディレクトリ内のwelcome.blade.phpを開くと、以下のような記述になっています。
試しに以下のように文言を変更してみます。
<div class="container"> <div class="content"> <div class="title">Laravel 5 test</div> </div> </div>
ブラウザをリロードすると、文言が反映されました。
ページの作成
新しくページを作成してみます。
routes.phpに下記を追加します。
Route::get('/helloworld', function () { return view('helloworld'); });
これで/helloworldにアクセスしたときに、helloworldというviewファイルを表示するようになりました。
viewsディレクトリにhelloworld.blade.phpというファイルを作成します。
<!DOCTYPE HTML> <html lang="ja"> <head> <meta charset="UTF-8"> <title>Hello World</title> </head> <body> <h1>Hello World</h1> </body> </html>
ブラウザで/helloworldにアクセスすると、追加したページの表示が確認できました。
コントローラー
先ほど作成したページにコントローラーを使ってみます。
コントローラーはアクセス時の処理などを記述するファイルで、/app/Http/Controllers 以下に格納します。
先ほど追加したroutes.phpの記述を以下に変更します。
Route::get('/helloworld', 'HelloworldController@hello');
先ほどはroutes.phpファイル内でviewファイルをreturnしていましたが、HelloworldControllerというコントローラーを呼ぶように変更しました。
/app/Http/Controllers 以下にHelloworldController.phpを作成します。
<?php namespace App\Http\Controllers; class HelloworldController extends Controller { public function hello() { $str = 'Laravel'; return view('helloworld', ['lang' => $str]); } }
コントローラー内で変数を定義して、view内でlangという変数が使えるようにしています。
helloworld.blade.phpを一部書き換えます。
<h1>Hello World in <?php echo $lang; ?></h1>
ブラウザで確認すると、変更が反映されていることが確認できました。
xxx.blade.phpのようなファイル名の場合、以下のように{{変数名}}という形でも出力できます。
<h1>Hello World in {{$lang}}</h1>
【参考サイト】
- XAMPPにLaravel5のインストール | WinRoad徒然草
- Laravel5入門ルート・コントローラー・ビューの基本的な使い方 | はたのブログ
- Laravel5入門 コントローラーからビューに変数を渡す方法 | はたのブログ
- ビギナーのためのLaravel入門
コメントが承認されるまで時間がかかります。