活動報告9 laravel5入門-
TRANSCRIPT
パソコン部活動報告2015/07/31
最新の技術をとりあえず試してみることを目的とした部です。
Laravel5をいじってみる
1. 開発環境
おなじみの cloud9 IDE で開発する。環境情報はこんな感じ。
PHPのバージョン
5.5.9
OS
Ubuntu 14.04.2 LTS
APサーバー
Apache/2.4.7
データベース
MySQL
2. インストールする
Laravel の公式サイトを参考に、 Composer でインストールする。
(1) Laravel のインストールに必要な composer をダウンロード
composer global require "laravel/installer=~1.1"
( 2 ) Laravel のプロジェクトを作成する
composer create-project laravel/laravel プロジェクト名 --prefer-dist
2. インストールする
一応これで Laravel の環境ができあがるんだけど、 cloud9 の場合はさらに手順が必要だったので書いておく。
2. インストールする
(1) DocmentRoot の変更❏ workspace の直下にプロジェクトが作成されている
のでプロジェクトごと workspace に上書きする❏ Laravel は public ディレクトリが公開ディレクトリ
なので DocumentRoot に /public を追加する
sudo nano /etc/apache2/sites-enabled/001-cloud9.conf
ここに DocumentRoot の定義が書かれてる
2. インストールする
( 2 )デフォルト DB 定義の変更❏ config/database.php にある mysql の定義内容を
変更する
変更前 変更後
2. インストールする
( 3 ) APP_KEY の設定❏ これを設定しないとエラーになってしまうという罠
が潜んでた。。。
php artisan key:generate
キーをジェネレートする
❏ コンソールに出力されたキーで config/app.php に書き換える
変更後
変更後
3. 基本事項
最終的にはアプリを 1 個つくるんだけど、その前に基本事項を抑えておく。
3. 基本事項
(1)ルーティングについて
file
app/Http/route.php
まぁ、いまどきこういった感じだよね。
リクエスト
get,post,put,deleteに対応
まぁ、普通だよね。
面白いと思ったのは、 Route の match ってやつ。match でリクエストを指定しておくと、それに応じて処理してくれるっぽい。あと、今回は書かないけど、 Middleware もちゃんとあるよ。
3. 基本事項
書き方
❏ ① は普通の get❏ ② はパラメータ付きでフォーマット指定したやつ
where でパラメータがフォーマットに合っているかチェックしてくれる
❏ ③ はグループ化した場合の書き方
①
② ③
3. 基本事項
( 2 )コントローラーについて
ディレクトリ
app/Http/controllers
コントローラーを呼び出すには route.php でこんな感じで記述する
Route::get('user/{id}', 'User\UserController@detail);
↑ の例の場合、 {id} がリクエストパラメータになって、 controllers ディレクトの User ディレクトリにある UserController.detail メソッドの引数に渡される。
3. 基本事項
書き方
❏ view に渡しているのは ID に合致したデータね。❏ view へは with メソッドでもデータを渡せる。
3. 基本事項
コントローラーには● Controller Middleware● RESTful Resource Controllers
ってものある。
でも RestfulAPI を作るなら、 Laravel の軽量化バージョンの FW を使う気がする。
3. 基本事項
( 3 )ビューについて
ディレクトリ
resource/views/
コントローラーの例で出した return view(‘user.detail’) の部分は↑のディレクトリの直下にある user ディレクトリの detail.blade.php を呼び出すって命令になる。
Laravel ではテンプレートエンジンに blade を使っている。最終的には angular と組み合わせる予定なので、使わなくなるのかな。
3. 基本事項
( 4 )表示してみる
ここまでを実装してみて、 route->controller->view までの流れを試してみる。それぞれのソースコードは、こんな感じです。
route.php
3. 基本事項
UserController.php
3. 基本事項
detail.blade.php
ドメイン /backend/user/1でアクセスするとパラメータの値が画面に表示される。
3. 基本事項
4 . 次回
調べてる時が一番楽しいよね。デフォルトの構成で気持ち悪いのが、 app 直下にUser.php っていう model がいること。これ、やめたいな。
次回は、マイグレーション使ってテーブル作ってデータベースとの I/O を入れていきます。