【Web】Laravelにまで手を付け始めました...
はじめに
これまで、何度かWebアプリのフレームワークである
Ruby on RailsやDjango
に関して使い方や実装方法を紹介してきました。
そして、なんと
Laravelにまで手を付け始めました。
知り合いのCTOの方にWebアプリの仕事のご依頼をいただき、
そのアプリがLaravelで動いているということでただいま勉強中です。
ということで、Laravelの環境構築からちょっと動かすところまでを紹介します。
#Ruby on RailsやDjangoといったフレームワークを使用したことがある人向けです。
環境構築
今回はWindows10にインストールしているVirtualboxでCentOSの6.8を構築し、
そこにPHPとLaravelをインストールしています。
インストールした感想は、
正直言ってわけわからない
というのもLaravelは人気があるようで、
インターネット上に構築方法が転がっているのですが、
どのバージョンでリリースしているのか明確に記載していなかったり、
構築方法の途中でフェードアウトしているサイトがあったり...
そんな中で私が参考にしたサイトは以下になります。
※といっても色々試しながら構築したので不十分かもしれません...
ちょっと動かす
Requestクラスの基本(1/5):初心者のためのLaravel入門を参考に
Laravel5.4での動かし方を記載します。
Web画面や処理を追加する際の肝になるのが
Djangoで言うところの「urls.py」に相当する「view.php」です。
ここに「Route::get」や「Route::post」を記載していきます。
// Laravel 5.4 Route::get('/helo/index', 'HeloController@getIndex'); Route::post('/helo/index', 'HeloController@postIndex');
上記の「HeloController」がファイル名で
「getIndex」が処理(メソッド)名になります。
これは「app/Controllers/HeloController.php」のようにファイルを用意し、
以下のように記述します。
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use App\Http\Requests; use App\Http\Controllers\Controller; class HeloController extends Controller { public function getIndex() { return view('helo', ['message' => 'Hello!']); } public function postIndex(Request $request) { $res = "you typed: " . $request->input('str'); return view('helo', ['message' => $res]); } }
return view('helo', ['message' => 'Hello!']);の
「'helo'」は画面処理のファイル名で
「resource/views/helo.blade.php」でファイルを作成することで紐づきます。
また、ファイル名に「.blade」を追加した目的は、
テンプレートエンジンを使えるようにするためです。
#下記の「{{ csrf_field() }}」がそれにあたります。
helo.blade.phpファイルの中身は以下になります。
<!doctype html> <html> <head> <title>Sample</title> <style> body { color:gray; } h1 { font-size:18pt; font-weight:bold; } </style> </head> <body> <?php echo csrf_field(); ?> <h1>Sample</h1> <p><?php echo $message; ?></p> <form method="post" action="/helo/index"> {{ csrf_field() }} <input type="text" name="str"> <input type="submit"> </form> </body>
以上により、
localhost:8000/helo/indexへのアクセス
画面内の入力フォームの処理と結果の表示までが実現できます。
最後に
Laravelはバージョンによってフォルダ構成が大きく異なるので注意が必要です。
インターネットで調べる際はバージョンを確認しないとわけわからないことになります。
例えばLaravel5.1では存在したroutes.phpが
Laravel5.4ではroutesフォルダが設けられapi.phpやview.phpで分けられています。
5.1→Requestクラスの基本(1/5):初心者のためのLaravel入門
5.4→Laravel 5.4 (3)ルーティング基礎(認証) | ほぼWebエンジニアリング
これからさらに勉強していきます。
以上