【初心者向け】高速軽量なPHPフレームワーク「FuelPHP」とは

目次

序文

こんにちは!インストラクターの須田です。

今回は是非みなさまへ知っていただきたいFuelPHPフレームワークについて初心者でもわかるように説明していきます。

FuelPHPは2010年にDan Horriganが中心でCodeIgniterに関わった人たちによって開発されたオープンソースのフレームワークです。

このフレームワークを使ってプログラムを作れば簡単に作れちゃうんですよ。

それも他のフレームワークを使うよりも高速に動作するのです。

さあ、それでは始めましょう。

はじめに

image1_fuelphp
ここでは、FuelPHPの解説を始める前にPHPフレームワークについて少しおさらいしておきます。

PHPとは

PHPはサーバで動作するサーバーサイドのプログラミング言語であり、

コンパイルが不要なインタープリター言語でもあるのです。

用途としてはWEB上で動く掲示板やチャットをはじめ、さまざまなWebアプリを開発するのに便利なプログラム言語です。

PHPはHTMLに埋め込むことができるため、お手軽に開発できることから利用するプログラマーが増えてきており、Web開発でよく使用されるスクリプト言語までになってきました。

PHP5.3よりオブジェクト指向へと進化しており、大きな規模のシステムにも対応可能な言語へ成長しております。

PHPについて概要を知りたい方はこちらをご覧ください。

また、HTMLについて知りたい方はこちらをご覧ください。

フレームワークとは

Web開発などのプログラミングでは、フレームワークを使うことが頻繁にあります。

この「フレームワーク」という言葉、よく聞くのですが、簡単に言うと、「システム開発を効率化してくれる機能群」と表現できます。

機能群だけではなく、ソフトウェアの骨組みまでを用意してくれるのです。

少ないコードで意図する機能やデザインが実現できるのです。

FuelPHPは、このフレームワークの1つです。

WEBフレームワークについて詳しく知りたい方はこちらの記事をご覧ください。

FuelPHPとは

image_fuelphp
http://fuelphp.com/

FuelPHPは、後発のフレームワークであり、いろいろなPHPフレームワークの長所を生かしています(いいとこ取りなのです)。

PHP5.3以上を対象に開発された高速で軽量なフレームワークなのです。

「規約より設定を重視」の方針で作られており、フレームワークのルールに縛られて開発作業が制限されるということは少なく、高度なWebアプリケーションの開発に向いていると言われています。

特徴

image2_fuelphp

規約より設定

複雑な設定ファイルに悩まされることがないように設計されています。

そのため、フレームワークのルールが複雑で開発作業が停滞することがなく、高度な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”

は実際のテーブルを生成する(マイグレーション)コマンドなのです。

簡単ですよね。

見やすい公式ドキュメント

image3_fuelphp3
http://fuelphp.jp/

FulePHPの公式ドキュメントは充実されており判りやすく書かれております。

公式ドキュメントが和訳のままで意味が不可解でしたら使う気になれませんよね。

FuelPHP公式ドキュメントは日本人がしっかりと書かれております。

『FuelPHP』の公式ドキュメントは非常に見やすく設計されています。

インストール方法

Linux/Macの場合

FuelPHPのインストールは次のように、ターミナルのコマンドラインより行います。

コマンド:

# curl get.fuelphp.com/oil ¦ sh
# oil create <ディレクトリ名>

Windowsの場合

FuelPHPのサイトのDownloadリンクより最新版(fuelphp-1.8.zip)を

ダウンロードしてアーカイブを解凍します。

image4_fuelphp
https://fuelphp.com/

解凍後のfuelphp-1.8のディレクトリ一式をfuelphp-1.8/publicが

ドキュメントルートになるようにWebサーバに配置します。

まとめ

FuelPHPは、既存のPHPフレームワーク(CakePHP、CodeIgniter、Symfonyなど)の長所を継承し、

尚且つ既存のPHPフレームワークでの悪い点である規約(ルール)の複雑化によるわずらわしさより開発者を開放させたフレームワークなのです。

なお進化したPHP5.3より採用されたオブジェクト指向で設計されておりますのでより人間の思考に近い形でコーディングできるのです。そして高速なのです。

以上のことよりFuelPHPは「従来のフレームワークの問題を解決する高度なフレームワーク」として期待されています。

是非、この機会にPHP+FuelPHPフレームワークに取り組んでみてはいかがでしょうか。

この記事を書いた人

SEキャリアは34年以上、開発言語は多彩だがJavaは私の基本言語であり、 メジャーになる前の1999年より実務開発。開発実績は大手企業様が多いが製品開発経験やインフラ構築経験もあり。言語は大工のカンナなど大工道具のようなものであり、使う人の技量によって速さ(生産性)と品質は変わるものというスタンスでやってきました。
趣味は「車の電飾系改造」と「バドミントン」と「アニメ」と「猫のわかちゃん」です。
ビデオ溜めしたアニメは2倍速で一気に鑑賞という特技あります。

目次