実は、久しぶりに新しいこと勉強してて、ちょっと感動しています。 wp-eアボガト ぼうしです。
FuelPHP
とても使い勝手のいいPHPフレームワーク、FuelPHPをただいま絶賛勉強中です。
先日、サーバーの更新で新しい環境にCentOSをインストールして、既存のwebサービスを移して運用しようとしたのですが、PHP4で書かれた多くの部分(中にはPHP3)が、warningやらFatalやらが出てきて、該当部分を書き直す事になりました。更新したマシンのPHPがすでに5.3だったためなんですが、いまさら5.2とか入れたりしません。推奨非推奨の確認もそうですが、そもそもダメな部分もあったりして、ほぼ作り直しな部分もありました。
今後も使っていただけるのであれば、統一されたフレームワークで作りなおしてみても面白いかも?
探していたら、ありました。FuelPHP。なんかもう僕的には、JavaScript使っていて、初めてjQueryに触れた時のような感じがデジャヴのように蘇ってリフレインしてフラッシュバックしています。
FuelPHP に至る道程
CakePHPは、参考書籍も多く成果物の品質も安定しますので王道です。またSQLを書かなくても機能を実装できたりする賢い子なのです。
でも、正規化が好物で、SQLをモキュモキュして開発してきた自分には、残念に作用してCRUDのメリットに浴することなく今に至っています。ユーザーロールの設定が難しくそこら辺でもちょっと遠ざかってもいます。
Symphonyとかも検討したいのですが、使っているお友達もあまり近くにいなくて、、、フレームワーク使って早く幸せになりたいと願いながら、願うがゆえに不幸な毎日を過ごしていました。
PHPを使った開発案件では、やっぱりCakePHPは王道で、正しい気がするのですが、個人的になんか楽しくないのです。WordPressのソース見ててちょっとニヤっとしたりするレベルの自由人で自分はいたいのかもしれません。(居たいのか痛いのか)
そんな悶々とした日々の中、『はじめてのフレームワークとしてのFuelPHP 第2版』
β版レビュアーを募集されていて応募したのがきっかけで触れるチャンスが巡ってきました。導入してとてもうまく行きそうな感じです。SQLもモリモリ書いても許してくれそうな感じです。
あとで知ったことですが、FuelPHPに関してこの本とても良いらしく、第2版のレビューアーになったと話したら知人にずいぶん羨ましがられたりしました。
『はじめてのフレームワークとしてのFuelPHP 第2版』 おすすめです。
FuelPHPのインストール
では早速インストールしてみましょう。入れてみて実感しないと良いも悪いもわかりませんよね。
FuelPHPには高速インストーラーがあります。MacのHomebrewみたいな感じですが、あちらはRubyこちらはShellスクリプトですね。
$ curl get.fuelphp.com/oil | sh
これで、oilというコマンド名のShellスクリプトがインストールされました!
FuelPHPをインストールするフォルダに移動(もしくは作成)してoilコマンドうちます。
$ cd
$ mkdir Sites
$ cd Sites
$ oil create fuelphp
しばらく待つとインストールが完了します。
oilコマンド がうまく動かない場合にはサイトからダウンロードしてきてもOKです。
インストールしたフォルダにApacheがアクセスできるようにシンボリックリンクを設定します。
$ cd /path to docroot/
$ ln -s ~/Sites/fuelphp/public fuelphp
FuelPHPには沢山のファイルが有るのですが、ユーザーから見えるフォルダは、publicフォルダだけでいいようです。逆にほかのフォルダは見れないように設置をしたほうがセキュリティ的な安全性が上がるようです。
動作確認。
ブラウザで、http://localhost/fuelphp/ にアクセスして、Welcomeの画面が見えれば成功です。
はじめての FuelPHP
インストールすると、大量のフォルダが出来てきますが、自分で書いたファイルを置くフォルダはそんなに多くありません。
1. 直書きが直接表示される、publicフォルダ
2. ファイル操作や引数処理をするコントローラファイルを置く、fuel/app/classes/controller フォルダ
3. HTMLタグなど見た目の処理をするビューフアイルを置く、fuel/app/views フォルダ
4. データベースアクセスなどモデルファイルを置く、fuel/app/classes/model フォルダ
普段のコーディングだとこれくらいです。
動作例1 単一ファイルでそのまま表示
簡単なページの表示であれば、publicフォルダに直接書くだけで動作します。
public/show_file.php
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
<?php
echo "Hello Word!";
?>
</body>
</html>
動作例2 コントローラクラスのみで動作
MVCを使った表示が当然できるのですが、それも、最低コントローラのみで表示できます。
conrollerのみでページを表示 fuel/app/classes/controller/hello1.php
<?php
class Controller_Hello1 extends Controller
{
public function action_index()
{
//文字列を返す
return 'Hello World';
}
}
動作例3 モデルなしでも動作
コントローラとビューだけ使った表示
fuel/app/classes/controller/hello2.php
<?php
class Controller_Hello2 extends Controller
{
public function action_index()
{
//viewオブジェクトを返す
return View::forge('hello');
}
}
fuel/app/views/hello.php
<!doctype html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>Hello World!</title>
</head>
<body>
<p>Hello World!</p>
<p><?php echo 1+1; ?></p>
</body>
</html>
という至極自由な表現ができてしまうのがFuelPHPの素敵なところです。
個人的にとても素敵な、Restコントローラ
配列にデータを用意するだけで、出力をJSON、XMLやCSVに整形して出力してくれるもの。{とか数えながらecho文の中に書いてた私にとってはまさに感動的
fuel/app/classes/controller/weather.php
<?php
class Controller_weather extends Controller_Rest
{
public function get_today()
{
//クエリ文字列から地名を代入
$location = Input::get('loc');
//本来はモデルから地名の今日の天気を検索して代入
$weather = 'fine';
//レスポンスを返す
$this->response(array(
'location' => $location,
'weather' => $weather,
));
}
}
んで、結果がこちら。
http://localhost/fuelphp/weather/today.json?loc=nagoya
{"location":"nagoya","weather":"fine"}
http://localhost/fuelphp/weather/today.xml?loc=nagoya
<?xml version="1.0" encoding="utf-8"?> <xml><location>nagoya</location><weather>fine</weather></xml>
localhost/fuelphp/weather/today.csv?loc=nagoya
"location","weather" "nagoya","fine"
スマホアプリのバックエンドサーバーとか、即効でできちゃいます。もう文字のコロンとかセミコロンとか中カッコとかダブルクオーテーションとかチェックしないでいい感じになります。どうです?熱いでしょ?
まだ始めたところなので、ここでまとめ。
おおよそwebサービスで自分がしたいことが自分の表現イメージ通り出来そうかな〜という、明るい未来を感じさせてくれるPHPフレームワーク。それが私のFuelPHPに対する今の印象です。機会があれば勉強会とかに参加して、使っている方の事例など聞いてみたいと思います。
FuelPHPには意外な副産物もあります。
それは・・・
PHP5.3以降を対象にして作成されていますので、うかつにPHP4なコーディングしても動いてしまうという危険性がバッサリ切り捨てられるのも魅力です。気持も新たにお勉強し直し出来てスッキリしそうです。
文献
最後に文中のソースコードはすべて、『はじめてのフレームワークとしてのFuelPHP 第2版』 の書籍の中から引用させていただきました。この本いいと思います。いまのところ電子版だけですがFuelPHP始めるんだったら手元において使うとココロ踊るウェブ開発ができると思います。
Author Profile
- おととしくらいまで、このままのほほんと人生を過ごせるかと嫁ともくろんでいましたが、どうもそうは行かない経験をしました。もうちょっと勉強できて、もうちょっと人様のお役に立てて、もうちょっと娘に好かれる自分を手に入れられたらなと考えています。
Latest entries
2014.06.20Web技術ココロ踊るフレームワーク FuelPHP 導入してみます
2014.05.04TipsPhotoshop活用術!2ステップでモアレ補正をする方法
2014.04.23WP-E 雑記タイムマネジメントは大人の身だしなみ。時間管理してますか?
2014.04.02WordPressWordBench東京3月: 春のデザイナー祭り!にいってきました。
FuelPHP導入検討!