http://php.s3.to/Laravel4は洗練されたPHPフレームワークです。http://laravel.com/Laravel4マニュアルhttp://four.laravel.com/■ComposerとLaravel4のインストールLravel4のインストールにはComposerが必要となります。ComposerとはPHP関連のパッケージ管理システムです。install依存関係のあるパッケージがダウンロードされます。app/config/database.phpデータベースはSQLite、MySQL、PostgreSQL,SQLSeverをサポートしています。・マイグレーションマイグレーションとは、データベースの管理機能のことで、テーブルの作成や初期データなどを自動追加・削除することができます。--create=membersこの時点ではまだテーブルは作成されない。app/database/migrations/内にPHPファイルが作成される(日付+foo)up()の部分に、テーブル構造を記載する。db:seed初期データが追加されました。MemberControllerapp/controllers/内にファイルMemberContoroller.phpが自動作成されます。show($id){の部分が実行されます。■モデルの作成app/models/内に以下の内容で、Member.phpを作成。ORMを使用しています。['items'=>Member::get()]);}・確認http://localhost/l4/public/memberデータの呼び出し方は、クエリービルダーhttp://four.laravel.com/docs/queriesに準拠しています。・基本まずはベースのHTMLを作成。</body></html>差し込むコンテンツを作成。追加画面を作成してみます。create()の部分になります。・まずはベースのHTMLを作成します。・追加画面のフォームHTML作成。View::make('create')->with('title','会員追加');}タイトルが機能ごとに変わるようにしています。Bootstrapはデザインテンプレートエンジンです。・テンプレートの修正。}}</td></tr>@endforeach</tbody></table>@stop名前データから個別表示にリンクを張るようにしてみます。->with('title','会員一覧');}IDの大きい順に表示して、タイトル追加。->with('title','会員詳細');}■バリデーション&保存バリデーションとはフォームから来たものが条件を満たすかどうかチェックするものです。http://localhost/l4/public/member/create-------------------------2013.5.16■バリデーションルールの共通化?・バリデーションサービス作成appフォルダに「services」フォルダを作成します。app/servicesフォルダに「validator」フォルダを作成します。TOPフォルダにあるcomposer.jsonにオートロードを追加します。//←追加]・バリデーション抽象化クラスの作成app/services/validatorに、Validator.phpを作ります。false;}}・バリデーションルールクラスの作成app/services/validatorに、Member.phpを作ります。'required|min:10'];}・オートロードの再読込コマンドラインから以下を実行します。Redirect::back()->withInput()->withErrors($validation->errors);}すっきりしました。■個別画面に編集と削除へのリンク追加app/views/show.blade.phpの下の方に以下を追加します。'method'=>'delete'という書き方をするみたいです。->with('title','会員編集');}■更新処理の作成app/controllers/MemberController.phpを修正します。バリデーションをクラス化?したので非常にすっきり。Redirect::back()->withInput()->withErrors($validation->errors);}■削除処理の作成app/controllers/MemberController.phpを修正します。一覧ページ下部に以下を追加するだけ。■ルートファイルの活用ルートファイルとはapp/routes.phpのことで、「このURLにはこの処理を行う」という役割があります。GETやPOSTの場合を区別したり、前処理を噛ませたりすることも出来ます。一覧表示と個別表示を処理するルートを書いてみます。書き方ですがおおむね2通りの方法があります。->with('title','会員詳細');});POSTの場合は、Route::post(~で始まります。機能が多い場合は冗長になり見づらくなりそうです。'MemberController@show']);'as'=>には、ルート名(この処理の名前)をつけます。ビュー内でHTML::linkRoute('index','戻る')と使ったり、リダイレクト時にRedirect::route('index');と使ったりします。'uses'=>には、使用するアクションを指定します。index()が処理されるという意味になります。URLのIDは数字のみに限定したい場合は以下のように書きます。'[0-9]+');いままでのリソースフルコントローラを書き換えると以下のようになります。'[0-9]+');■CSRF対策CSRFとは外部からの意図しない投稿攻撃のことです。フォームにトークンを埋め込むことによって防ぐことができます。}}トークンがhiddenで埋め込まれます。'csrf'で前処理にトークンのチェックが行われます。■ログインページ認証(Auth)については用意されてるものを使用します。設定はapp/config/auth.php。E-mailとパスワードで認証することにします。db:seed初期データが追加されました。今回はサンプルとしてmyapgeに行くときに認証を通る設定にしてみます。'auth'が前処理にauthフィルターを通すという意味です。実際のフィルター等はapp/filters.php内に記述してあります。Redirect::to('login');});認証が通ってない場合は「login」にリダイレクトされるようになっています。login時の処理をコントローラに書きます。新規ファイルapp/views/login.blade.phpを作成します。}}</body></html>。