序文
こんにちは!インストラクターの須田です。
今回は是非みなさまへ知っていただきたいFuelPHPフレームワークについて初心者でもわかるように説明していきます。
FuelPHPは2010年にDan Horriganが中心でCodeIgniterに関わった人たちによって開発されたオープンソースのフレームワークです。
このフレームワークを使ってプログラムを作れば簡単に作れちゃうんですよ。
それも他のフレームワークを使うよりも高速に動作するのです。
さあ、それでは始めましょう。
はじめに
ここでは、FuelPHPの解説を始める前にPHPやフレームワークについて少しおさらいしておきます。
PHPとは
PHPはサーバで動作するサーバーサイドのプログラミング言語であり、
コンパイルが不要なインタープリター言語でもあるのです。
用途としてはWEB上で動く掲示板やチャットをはじめ、さまざまなWebアプリを開発するのに便利なプログラム言語です。
PHPはHTMLに埋め込むことができるため、お手軽に開発できることから利用するプログラマーが増えてきており、Web開発でよく使用されるスクリプト言語までになってきました。
PHP5.3よりオブジェクト指向へと進化しており、大きな規模のシステムにも対応可能な言語へ成長しております。
PHPについて概要を知りたい方はこちらをご覧ください。
また、HTMLについて知りたい方はこちらをご覧ください。
フレームワークとは
Web開発などのプログラミングでは、フレームワークを使うことが頻繁にあります。
この「フレームワーク」という言葉、よく聞くのですが、簡単に言うと、「システム開発を効率化してくれる機能群」と表現できます。
機能群だけではなく、ソフトウェアの骨組みまでを用意してくれるのです。
少ないコードで意図する機能やデザインが実現できるのです。
FuelPHPは、このフレームワークの1つです。
WEBフレームワークについて詳しく知りたい方はこちらの記事をご覧ください。
FuelPHPとは
FuelPHPは、後発のフレームワークであり、いろいろなPHPフレームワークの長所を生かしています(いいとこ取りなのです)。
PHP5.3以上を対象に開発された高速で軽量なフレームワークなのです。
「規約より設定を重視」の方針で作られており、フレームワークのルールに縛られて開発作業が制限されるということは少なく、高度なWebアプリケーションの開発に向いていると言われています。
特徴
規約より設定
複雑な設定ファイルに悩まされることがないように設計されています。
そのため、フレームワークのルールが複雑で開発作業が停滞することがなく、高度なWebアプリケーションの開発に向いているのです。
PHPは5.3以上のオブジェクト指向を全面採用
『FuelPHP』は“最先端のフレームワーク”というコンセプトを持っています。
PHP5.3以降でオブジェクト指向が取り込まれておりますので、FuelPHPもオブジェクト指向を取り入れ、シンプルさや高速性に繋がっているのです。
オートローダー
使われるときに必要なクラスだけを読み込むことでメモリ容量を抑え高速に動作します。
例えば
/test/model/msudatest.php を呼び出したい場合,下記となります。
↓
Class フォルダー名_フォルダークラス名 ※アンダーバーでつなぎ先頭大文字
↓
$test = new Test_Model_Msudatest
HMVC+ViewModel
ViewModelはViewに関するビジネスロジックをコーディングします。
モデルは外部データとのやり取りなどを行います。
Viewはシンプルに表示だけに専念。このことよりControllerに負荷が集まっていた既存のフレームワークと比べわかりやすいコーディングができるのです。
MVCじゃなくてなんで、「HMVC」って思われませんか?
HMVCは、”Hierarchical Model View Controller”の略です。
Hierarchical の和訳は”階層的”です。
説明しますと「MVC構造を機能毎にモジュール分割(フォルダ分け)して階層化したものをmodulesファルダーヘ配置することにより別のモジュールを呼べるようになった」ってことです。
MVCについておさらいすると、
- Modelは主にメインの処理を記述したり、データの連携を行います。
- ViewはHTMLに出力する処理を行います。
- ControllerはModelからのリクエストを処理してViewに反映する処理を行います。
実際の個々のphpファイルの配置先は下記の「ディレクトリ構成」となります。
ディレクトリ構成
// HMVCを利用したディレクトリ構成 fuelphp ┣ docs …公式ドキュメント英語版 ┣ fuel ┃ ┣ app …アプリケーションを配置 ┃ ┃ ┣ cache … キャッシュフォルダ ┃ ┃ ┣ classes … クラスを配置 ┃ ┃ ┃ ┣ controller … コントローラを配置 ┃ ┃ ┃ ┣ model … モデルを配置 ┃ ┃ ┃ ┗ view … ビューモデルを配置 ┃ ┃ ┣ config … 設定ファイルを配置 ┃ ┃ ┣ lang … 言語ファイルを配置 ┃ ┃ ┣ logs … ログフォルダ ┃ ┃ ┣ migrations … マイグレーションファイルを配置 ┃ ┃ ┣ modules … モジュールを配置 ┃ ┃ ┣ tasks … タスクを配置 ┃ ┃ ┣ tmp … tmpフォルダ ┃ ┃ ┣ vendor … サードパーティライブラリを配置 ┃ ┃ ┗ views … ビューを配置 ┃ ┣ core … FuelPHPの本体 ┃ ┣ packages … FuelPHPのパッケージ ┃ ┗ vendor … サードパーティー ┗ public … Web公開領域 ┣ assets … img,css,jsあり ┗ index.php
このapp以下で作業を行います。
controller、model、viewsフォルダが、まさにMVCモデルの、Model、View、Controllerのことです。
ViewModelは、viewフォルダー配下に置きます。
スキャフォールド(scaffold)
CakePHPフレームワークにもscaffoldは採用されております。
スキャフォールド(scaffold)とは、「CRUD(Create, Read, Update, Delete)操作を行うMVCモデルの枠組み(足場)を自動で一括生成する機能」です。
FuelPHPでは、「oil g scaffold」のコマンドを実行することで、モデル、ビュー、コントローラ、マイグレーションの各ファイルが一括で作成されます。
コマンド例)
#scaffoldコマンドで、商品管理できるページを指定します。 php oil g scaffold syouhin cd:int name:varchar[50] #DBにテーブル作成を反映するため、マイグレーションを実行します。 php oil refine migrate
syouhinは商品マスタテーブル名でcd=商品CD,name商品名です。
この名前でモデル、ビュー、コントローラ、マイグレーションの各ファイルが一括で作成されます。
”php oil refine migrate”
は実際のテーブルを生成する(マイグレーション)コマンドなのです。
簡単ですよね。
見やすい公式ドキュメント
FulePHPの公式ドキュメントは充実されており判りやすく書かれております。
公式ドキュメントが和訳のままで意味が不可解でしたら使う気になれませんよね。
FuelPHP公式ドキュメントは日本人がしっかりと書かれております。
『FuelPHP』の公式ドキュメントは非常に見やすく設計されています。
インストール方法
Linux/Macの場合
FuelPHPのインストールは次のように、ターミナルのコマンドラインより行います。
コマンド:
# curl get.fuelphp.com/oil ¦ sh # oil create <ディレクトリ名>
Windowsの場合
FuelPHPのサイトのDownloadリンクより最新版(fuelphp-1.8.zip)を
ダウンロードしてアーカイブを解凍します。
解凍後のfuelphp-1.8のディレクトリ一式をfuelphp-1.8/publicが
ドキュメントルートになるようにWebサーバに配置します。
まとめ
FuelPHPは、既存のPHPフレームワーク(CakePHP、CodeIgniter、Symfonyなど)の長所を継承し、
尚且つ既存のPHPフレームワークでの悪い点である規約(ルール)の複雑化によるわずらわしさより開発者を開放させたフレームワークなのです。
なお進化したPHP5.3より採用されたオブジェクト指向で設計されておりますのでより人間の思考に近い形でコーディングできるのです。そして高速なのです。
以上のことよりFuelPHPは「従来のフレームワークの問題を解決する高度なフレームワーク」として期待されています。
是非、この機会にPHP+FuelPHPフレームワークに取り組んでみてはいかがでしょうか。