FuelPHP & heroku でWeb開発メモ

友人からの依頼でWebアプリのプロトタイプの開発を始めた。あくまでプロトタイプ開発が目的であって、将来に渡ってWebアプリを保守・開発していくことは考えていない。PHPに触ることもWeb開発することもかなり久々だったので備忘録を残しておく。

使うもの

WindowsLinuxのコマンドが使えない場合は、GowCygwinを入れるか、適宜読み変えるよう注意。

事前準備

まずは以下が動く環境を作る。

PHP, Apache, MySQL

Webアプリ開発から遠ざかっていて全部入ってなくて面倒だったのでXampp 1.8.3 を入れた。

https://www.apachefriends.org/jp/index.html

Composer

https://getcomposer.org/

FuelPHP

http://fuelphp.jp/

FuelPHPは以前興味があったので試しに使ってみる。チュートリアルは他のサイトに任せる。

Heroku Toolbelt

https://toolbelt.heroku.com/

これらすべてのインストールが終わったら適宜パスを通す。

その他

普段Web開発と関係なく使っているもの。

環境構築

FuelPHPrailsの影響を受けたフレームワークのようでActiveRecordライクなORMとScaffoldを使って開発することが出来る。

heroku app作成

ブラウザ上でHerokuApp作成してgit clone

$ git clone git@heroku.com:AppId.git

MySQL用のアドオン ClearDBもWeb上で追加しておく。

FuelPHPプロジェクト作成

$ php oil create プロジェクト
$ cd プロジェクト
$ rm -fr .git . gitmodules
$ rm *.md
$ rm -fr docs/

.gitignore追加

$ touch .gitignore
$ notepad .gitignore

.gitignoreの中身

fuel/app/logs///*

fuel/app/cache//

その他にNetBeansを使ってるので /nbproject/*を個人的に追記している。

mb_stringを有効にする

デフォルトではmb_substrなどが使えないので composer.json を編集して対応させる。

    "require": {
        "php": ">=5.3.3",
        "monolog/monolog": "1.5.*",
        "fuelphp/upload": "2.0.1",
        "ext-mbstring": "*"
    },

上のようにrequire に "ext-mbstring": "*"を追記。

$ git add .
$ git commit -m "init"

herokuのPHP用buildpackをインストール

$ heroku create --buildpack https://github.com/winglian/heroku-buildpack-php -s cedar

デプロイ

$ git push heroku master

開発Tips

Scaffold

既存のテーブルからmigrationファイル & CRUD関連コード自動生成。

$ php oil r fromdb:scaffold テーブル名 -f

DB migration

up

$ php oil r migrate:up --default

down

$ php oil r migrate:down --default

allオプション

$ php oil r migrate:down --default -all

DB定義の更新

テーブルにカラム追加をするときなどはmigration ファイルを新しく作って migrate:up ?

まだやってない。

その他

FuelPHP built-in ローカルサーバの起動

$ php -S localhost:8000 -t public

ClearDBのDB接続情報の調べ方

$ heroku config --app AppId

出力結果

CLEARDB_DATABASE_URL: mysql://ユーザ名:パスワード@サーバ名/データベース?reconnect=true

参考