Rails 使いが FuelPHP(1.6) を使ってみた1 プロジェクト作成編

前回 fuelphp 1.5 を触ってから随分と間が開いてしまい、1.6 がリリースされ、composer などが統合されたとのこともあり、再度やり直してみました。

前回のトライはこちら。

(Rails 使いとかいいながら最近全然 rails の仕事も無いし、作ってもいないし、ドヤ顔できるほどのユーザーでは無いのです…涙。Rails で仕事したい…)

まずはプロジェクト作成からおさらいし、Scaffold から scaffold なしの実装あたりまで進めたいと思います。

それくらい抑えておけば後は応用、考えてるネタを形に出来そうです。

FuelPHP インストール

何はともあれ導入から。今回はアーカイブの展開でセットアップしたいと思います。

トップページの「Download v1.6.1 now!」でアーカイブをダウンロードして、適当なところに展開しました。

以降、カレントはアーカイブを展開したディレクトリ(fuelphp-1.6.1)とします。

開発用サーバ立ち上げ

さて、面倒な開発環境の構築ですが、vagrant をつかって済ませたいと思います。

(Vagrant の設定が面倒…という方は apache の設定をお願いします)

LAMP 環境のレシピをつくったので、これをカレントに置いて vagrant up します。

  • yukku0423/vagrant-lamp-env

(見よう見まねでつくったのでレシピにツッコミがあるかもしれませんが…一応動くので。開発用なので多目に)

カレント内の public/ ディレクトリをゲストマシン内ではドキュメントルートにしているので、192.168.40.10 でアクセスすると fuelphp を動作させることができます。

ちなみに、oil server という、rails server っぽいコマンドも用意されているようですが、php 5.4 以上でないと使えない(というか php5.4 でビルドインサーバが実装された)ので、今回はパスです。

Composer でパッケージをインストール

アクセスしたところ、エラーメッセージが表示されました。

Composer is not installed. Please run “php composer.phar update” in the root to install Composer

1.6 から composer という、rube でいう bundler のようなパッケージ管理が導入されたとのことです。

メッセージ通り、php composer.phar update を実行すると、fuelphp で必要なパッケージが fuel/vendor に導入されます。

composer の設定は composer.json に記述されています。

インストールされたらアクセスしなおすとデフォルトの画面が表示されました。

fuel16-1-01

ルートの確認

この画面がどのように表示されているのかルーティングを確認しましょう。

{Rails.root}/config/routes.rb に当たるルーティングは fuel/app/config/routes.php で定義されています。

ファイルを開くと、雰囲気でそれっぽいルートがあります。

'_root_'  => 'welcome/index'

ルートパスにアクセスすると、welcome コントローラーの index アクションが実行される、という定義です。

すぐ下に 404 の定義があり、その下には welcome コントローラーの hello アクションの定義があります。

'hello(/:name)?' => array('welcome/hello', 'name' => 'hello'),

パラメータを受け取るように設定されているので、

http://localhost/hello/{任意の文字列}

でアクセスすると、パラメータを使ったデモが確認できます。

fuel16-1-02

oil コマンドをつかった場合でもだいたい同じ感じでしょう。

composer について初めて知ったので、最初 1.5 のようにアーカイブ展開から配置して エラーが出たときには少し驚きました。

しかし composer で bundler っぽく依存コンポーネントを管理できるというのはなかなか便利そうです。

(しかし逆に初心者にはとっつきにくい…気も)

ところで、先日、これくらいなら素のスクリプトでいいだろう、と思い、ガシガシ php を書いていたのですが、あれこれ追加しているウチに、やっぱり FW があるといろいろ面倒見てくれていいなぁと思いました。

FuelPhp は使い慣れていないのでその時はパスしましたが、codeigniter くらいシンプルで php 5 でも動くものが欲しいなぁ

(5.3 って未だにハードル高かったりするのよね…大人の事情的に… このサーバ、php  5.3 いってないじゃないですかー やだー!ってこと、よくありますよね…?)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする