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

モジュールを利用する

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

ぜひご覧ください。

無料で視聴する すべての加入プランを見る
または
モジュールとは、コントローラー・モデル・ビューの一式を機能ごとのディレクトリにわけ、管理をしやすくするための仕組みです。ネームスペースなど、理解しにくい概念が出てくるため最初は戸惑いますが、非常に便利な機能です。
講師:
13:18

字幕

ここではモジュールを利用するとしましてFuelPHP に搭載されているモジュールという機能について紹介していきたいと思います。FuelPHP は、この様にapp フォルダの中に様々な定められたフォルダがありこの中に各ファイルを納めていくことでスクリプトを作っていくというものでした。例えば、コントローラーはclasses の controllerそして、モデルは modelそして、ビューは1つ上のviews の中に含めていくという形になります。そして、controller のファイルの数などが増えてきて、例えば、機能ごとにいくつかのファイルがあるなどの場合、controller の中にこの様に blog だったり、cart だったりという様なかたちでフォルダを作ってそこで管理するということはできます。しかし、いずれにしても、こちらの model 群とのファイルがバラバラになってしまったり、views フォルダはviews フォルダの中でこの様に blog というディレクトリがあったりなどかなりディレクトリ構成がバラバラになってしまいがちです。そこで、特に大規模なWeb サイトなどを作る時にこのモジュールという機能を使うとスッキリと管理することができるようになります。 では、ここではその使い方を軽く紹介していきましょう。今回は lesson07-06 というフォルダにFuelPHP を設定し今回は特に使わないのですが一応、こちらconfig の db.php にはMySQL に接続できるような接続文字列を記述しました。では、こちらで実際に動きを確認していきましょう。では、まずモジュールですけれども、モジュールを作る時にはこの app フォルダの下にあるmodules というフォルダを使います。標準では、このフォルダの中は空っぽなんですが、この中にフォルダを自由に作ることができます。では例えば、ここではこの Web サイトが非常に大規模なサイトでオンラインショッピングの機能とそれから、スタッフブログなどがあるサイトだと考えていきます。その場合、全てのクラスをこの中に入れてしまうとショップ関係のクラスとブログ関係のクラスがバラバラになってしまいます。そこでモジュールに分け、まず始めに blog 関係とcart 関係というかたちで分けます。そして、ではまずcart の方から作ってみましょう。cart に1つコントローラーを作りたいのですがその場合、この中に更にフォルダを作っていく必要があります。 ここでは classes と作り、更に、その下に controller というフォルダを作ります。実は、このフォルダ構成は前に見た、こちら classes のcontroller ということで、FuelPHP の標準のディレクトリ構成と同じになります。それを、この modules の中でcart として中で再現していくというかたちになります。では、コントローラーのファイルを書いていきましょう。新しいファイルを作成して、「ドキュメントタイプ」は適当で構いません。「ページタイプ」を PHP にして作成しファイルの中身を全て削除します。そして、コントローラーを書いていくわけなんですが少し、今までと書き方が異なります。モジュールを使う場合、まず始めに必ず、この namespace という記述が必要で、ここには今作ったフォルダ名を記述していきます。cart とありますので、最初を大文字にして Cart とします。そして、ここからは同じでController_ と書き、自由な名前を記述します。ここでは Item というコントローラーにしましょう。そして、extends として、ここでコントローラーを継承する訳なんですが、この時、注意しなければいけないのが先頭に、この \ (バックスラッシュ)というのが必要です。 何故かというのはこの後、紹介しましょう。そして、こうして ( ) の中身にアクションなどを定義していくんですがここは基本的には一緒になります。何故かというのはこの後、紹介しましょう。item の index が表示されましたということで、done というメッセージを軽く表示するだけという非常に簡単なアクションとしましょう。では、このファイルを modules のcart の classes の controller の中に今付けた、このコントローラーの名前と同じ名前で保存をします。さて、モジュールを使う時には、もう1つやらなければならないことがあります。こちら config のフォルダの中にあるconfig.php を編集して、ここでモジュールを有効化しなければなりません。下の方までスクロールしていきますと、こちら 194 行目付近にmodule_paths という設定項目があります。ここ、今1つコメントアウトされているんですが、このままコメントアウトを外せば、利用することができます。もし、modules のフォルダの名前を変えてしまったり、更に、モジュールのフォルダを増やしたりなどができるんですが、ここでは、それらの解説は省略します。 では、これでモジュールが使えるようになりましたのでMAMP のこちら、ドキュメントルートを07-06/public に設定し、Web ブラウザからこちら /cart/item/ で、ここでは index まで指定しましょう。Enter でアクセスします。すると item/index done ということで、先ほど作ったこちらのコントローラーのメッセージが正しく表示されていることが分かります。この様に、モジュールを使いますと、パスはモジュール名、そして、コントローラーの名前、そして、アクション名ということで、階層が1つ繰り下がります。このことからも、1つモジュールを作ることで機能ごとにコントローラーなどを大きく仕分けることができるということが分かるのではないでしょうか。では、もう1つコントローラーを作ってみましょう。今度は、今作ったこちら blog というモジュールがあります。こちらにも、同じ様にコントローラーを作っていきましょう。その場合は、改めてここに classes というフォルダとcontroller というフォルダを作成します。そして、この中に新しいファイルを作って、まずは namespace の記述です。 今回、ここは blog という親フォルダの名前なので Blog と付け、そして class Controller_ です。今回はブログの中で記事を管理するArticle というコントローラーを作ることを仮定します。そして extends として、ここでもやはり \ (バックスラッシュ)が必要です。Controller としましょう。そして function action_ここでは、ちょっとアクションの名前を変えてview にしてみます。そして、ここではビューを使ってみましょう。ビューを使う場合も、やはり View の1つ前に\ が必要になります。そして、ここではblog /view というビューファイルをビューファイルとして使っていきたいと思います。では、こちらのファイルを保存していきましょう。blog の classescontroller の中に今回は、こちら付けたアクションの名前と同じarticle.php の名前を付けます。では、次にビューファイルの準備ですが、ビューファイルはどこに保存するかと言いますとこのモジュールの中のclasses と同じ階層にviews というフォルダが必要になります。 そして、この中にビューのファイルを入れるというわけです。では、実際にやってみましょう。「ページタイプ」を PHP とし、「レイアウト」は「<なし」「ドキュメントタイプ」を HTML 5 として「作成」ボタンでクリックします。そして、ここでは「ブログ:アーティクル」などと書いて、「ブログの詳細ページです」というようなかたちで、簡単にページが表示されていることが分かるような文言を入れます。そして、このファイルを今作りました blog のviews の中に保存するんですが、今回、先ほどコントローラーで指定したblog フォルダをここに作って、更に view.php という名前で保存をします。ファイルを見ていきましょう。こちら blog フォルダの中にclassescontroller とあってarticle.php があり、こちら views の中にはblog があってview.php がある。そして、こちらのコントローラーからはblog/view ということで、blog フォルダの中のビューを見ていくというかたちになっています。では、実際に動きを確認します。ここではモジュール名であるblogコントローラーの名前であるarticleそして view というかたちでアクションを指定します。 Enter をすれば、このように「ブログの詳細ページです」と表示されました。これで、コントローラーもビューも動作していることが分かります。モデルについては、今回は省略しますが、これもモデルを作れば、正しく動作します。その際に、どこに作るのかというと、もう、なんとなくお分かりいただけるかもしれませんが、ここ classes の中にmodel というフォルダを作りこの中にモデルのファイルを作れば、それがモデルとして機能します。つまり、この modules というフォルダの中には1つ新しいフォルダを作ると、その中にこの FuelPHP があらかじめ準備しているフォルダ構成と同じものを、こちらに小世界の様に構築することができるという訳です。この他に、作れるフォルダとしましては、view という、モデルビューというものを作るためのフォルダそれから、classes と同じ階層にconfigそれから、言語関係のファイルを納めるlangそして、ビューファイルを入れるviews といったそれぞれのフォルダを作ることができます。これらのフォルダに上手くその機能ごとの各ファイル群を納めて独立性を高くし、非常にメンテナンスのしやすいファイルを作ることができるというわけです。 最後に、コントローラーの書き方について少し詳しく紹介していきましょう。namespace というのはこれは、FuelPHP の機能ではなく、PHP 自身の機能1つです。スクリプトのソースを管理しやすくするために名前が重なったりしても大丈夫なようにこちらの namespace というものを定義し、この namespace 内だけで名前の重複などが無いようにすれば、namespace が違いさえすれば、同じ名前で作っても重複しないという様なかたちで、いわゆるフォルダみたいなものだと思っていただくと、良いと思います。管理をしやすくするための分類のことです。そして、こちら Controller の前やView の前に \ を付けましたが、これは何かと言いますと、この namespace というものが導入された弊害です。namespace を導入すると基本的には全てのこちら、コントローラーの名前やこういったクラスの名前がこの namespace 内のコントローラーの名前やクラスの名前と認識されてしまいます。そこで、ここでは namespace 内ではなく、ルート、つまり FuelPHP 自身が持っているコントローラーですよ、FuelPHP 自身が定義しているクラスですよ、ということを示すために、前頭に \ を付けなければならないというわけです。 少し書き方に癖が出てくるので、慣れるまでは大変かもしれませんが、このモジュールという機能を使えば大規模な Web サイトもFuelPHP で構築することができますので、是非、マスターしていくと良いでしょう。

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

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

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

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

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

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