FuelPHPによるMVCプログラミング入門

Scaffoldを制作する

全333コースを10日間無料で

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
Scaffoldとは、「足場」といった意味で「入力」「変更」「削除」などの基本的な機能を自動的に生成し、簡単にデータ管理のスクリプトを作れる機能です。oilコマンドで利用してみましょう。
講師:
10:20

字幕

ここでは Scaffold というものについて紹介していきたいと思います。Scaffold というのは足場という意味のある英単語でスクリプトの世界では入力や変更、削除といった所謂 Crud の機能を自動的に生成するようなことを言います。FuelPHP でも、この Scaffold をoil コマンドを使って作ることができます。実際にやってみましょう。ここではプロジェクトとしてlesson06-05 というフォルダーにFuelPHP をセットアップしました。そして fuel app config db.php をMAMP のデータベースに接続するように設定しています。hostname、database、user 名、passwordといったものを設定しています。データベースの方ですけどこちらの database に設定している fuelphpというデーターベースのスペースを作って中にはテーブルが1つもないという状態です。ではこれで oil コマンドを実行していきましょう。まずはこちらの「ターミナル」Windows でいう所の「コマンドプロンプト」ですね。を起動します。そして、こちらに今作っているプロジェクトのパスに移動するようなコマンドを打っていきましょう。 cd の、と書いてこちらの lesson06-05 に移動します。では oil コマンドを実行していきます。php oil の g としましてここで scaffold という風に記述します。ここでは、アイテムを管理するためのitem というモデルを作りその中には item_name をvarchar の 500 で設定します。今回はこれだけのフィールドにしましょう。では、こちらで実行してみます。すると、この様に大量の view や model、controller などが作られます。そして、こちらの refine のmigrate でデータベースへテーブルを作成していきましょう。まずデータベースの方から確認していきます。こちら、構造を見ていきますとitems というテーブルとmigration というテーブルが出来上がっています。items の方は id と created_atupdated_at がありますが自分で作った item_name というフィールドだけが存在しているという状態です。では、続いて scaffold の方を見ていきましょう。出来上がるファイルとしてはまず model が出来上がります。 fuel app classes modelの中には item.php が出来上がっていてこの中ではフィールドの定義であったりですとかこの様なフィールドの定義というようなものが書かれています。こちら、item_name についてはrequiredつまり必須項目であることとmax_length として500文字までであることがValidation のルールとして定義されています。もし、この他にもルールがあるのであればこちらにルールを付け加えていくこともできます。では続いて controller を見ていきます。item.php というcontroller が出来ていてこの中にはメソッドがaction_indexそれから action_viewそして action_createaction_edit そしてaction_deleteという形でそれぞれの action が定義されています。中に処理もすべて書かれていてまず、こちら index の方ではリストを表示するために all でデータをすべて持ってきてそれを view に渡すという処理を行っています。action_view の方ではId をパラメーターとして受け取ってその Id で find しています。 そして、もし Id が null だったりきちんと値が渡ってきていなかったりした場合には、こちらトップページにリダイレクトしています。そして、そのデータを view に渡すという処理です。action_create に関してはまず初めにこちらでフォームを作ります。そして、それが送信されてきた場合input のメソッドがpost になっている場合はバリデートを行います。そして、そのバリデートが正しく通ればこちらの model に対してitem_name をセットしそれを save します。save が成功すれば success という形でメッセージを表示しResponse の redirect としてトップページにジャンプするという仕組みです。edit に関しては制作の create とほとんど同じですけどこちらの場合はこちらフォームを表示する時にその指定されたデータを持ってくるというような処理が、こちらで走っています。後は同じです。delete に関しては、同じくmodel からデータを持ってきてそのデータを delete してそして success というメッセージとともにトップページにジャンプするという様な処理が入っています。 では次に view を見ていきましょう。view は views フォルダーの中にまず template ということでテンプレートが含まれています。こちらは twitter の bootstrap というフレームワークを使ってデザインなどを整えています。item という所から indexまずはトップページです。こちらのページは、この様にitem_name という所からitem の一覧を表示してView、Edit、Delete ということでそれぞれの action にリンクが貼られています。create に関しては、この様に form が作られているんですがここで、echo render としてitem/_form となっています。この _form というのは同じ item フォルダーの中にこの様に入っています。この _form は createそれから edit の両方で使われているのでform を変更すれば両方に反映されるという仕組みです。そして、こちらの form の方ではform の input としてitem_name を入れるテキストフィールドを形作っています。edit に関しては、ほぼ同様です。 そして view を見ていきましょう。view は単体の item を表示するためのページです。この様に item_name が表示されていてそれを編集するか、もしくは一覧に戻るかといったような形でリンクが貼られています。いずれも英語になってしまうのでもし日本語に訳したければすべての view の各、こちらのフィールド群を変更していく必要がありますがもし自分でだけ使う管理画面などであればこのまま使ってもよいでしょう。実際に動きを確認してみます。環境設定でドキュメントルートをlesson06-05 としましてこちら localhost:8888/item/にアクセスします。すると、この様にエラーが表示されます。これは Orm という model がこちら、item の model では使われているんですけどその Orm model というのが使えない状態になっているということでエラーになっています。そこで、ここではこちらconfig config.php を編集し中に利用する package を設定する一文がありますのでここで、Orm を有効にしていきます。これで packages の Orm が有効になりましたのでもう一度画面を表示してみましょう。 この様に、まず一覧画面が表示されます。今はデータベースにデータが入っていませんのでNo Items. とでてしまいます。ではこちらの Add new Item というボタンをクリックしましょう。こちらで例えば「いちご」等と入力し、Save をするとこの様に Added Item#1 と出まして「いちご」と出ました。そして、こちらのアイテムの View というのをクリックするとこの様にアイテムの詳細画面が表示されます。バックして、更に Editこちらは編集画面です。「いちご」を「みかん」に変更すればこの様に「みかん」に変更されます。そして Delete があります。クリックすると Are you sure?と出ましてOK をクリックすればこの様に No Items. に戻るというわけです。当然ながら、この様にアイテムを登録すればこちらの Items のテーブルの中にそれが反映されます。created_at、updated_at がそれぞれ変わっていることもわかるでしょう。例えば、ここでもう一度こちらを「みかん」にしてみましてSave するとこちら、「みかん」になりましてcreated_at と updated_at のこちらの時間が少しずれたことがお分かりいただけると思います。 この様に Scaffold を使えばcreated_at、updated_at のそれぞれのフィールドも自動的に、この様に更新されるようになるというわけです。ちょっとした管理画面などを作る時にはこちらの Scaffold非常に便利かもしれません。ただ表画面、いわゆるお客様が見るようなページを作るにはかなりデザインを変更しなければいけませんので、その場合には1から controller や view を作っていった方が逆に作業が速いかもしれません。必要に応じて使ってみて下さい。

FuelPHPによるMVCプログラミング入門

このコースでは、PHPのフレームワークのひとつであるFuelPHPを紹介していきます。フレームワークとはスクリプト開発における「足場」となるもので、近年のスクリプト開発においては非常に一般的な存在となっています。高速な開発スタイルをぜひとも身に付けていきましょう。

6時間19分 (47 ビデオ)
現在、カスタマーレビューはありません…
 
ソフトウェア・トピック
価格: 3,990
発売日:2014年01月12日

このコースは、「オンデマンド」でご利用可能であり、ダウンロードすることもオンラインで見ることもできます。

ダウンロードすると、オフラインでコースを使用し、豊富なインターフェースをフルに活用できます。複数のデバイスを使用したり、 一度に全コースをダウンロードしたくない場合は、アカントにログインして、ストリーミング・ビデオとしてコースのレッスンを視聴してください。

ビデオトレーニングをお楽しみいただけますように! お問い合わせは、cs-jp@lynda.com宛までご連絡ください。