FuelPHP & heroku でWeb開発メモ
友人からの依頼でWebアプリのプロトタイプの開発を始めた。あくまでプロトタイプ開発が目的であって、将来に渡ってWebアプリを保守・開発していくことは考えていない。PHPに触ることもWeb開発することもかなり久々だったので備忘録を残しておく。
使うもの
WindowsでLinuxのコマンドが使えない場合は、GowやCygwinを入れるか、適宜読み変えるよう注意。
事前準備
まずは以下が動く環境を作る。
PHP, Apache, MySQL
Webアプリ開発から遠ざかっていて全部入ってなくて面倒だったのでXampp 1.8.3 を入れた。
https://www.apachefriends.org/jp/index.html
Composer
FuelPHP
FuelPHPは以前興味があったので試しに使ってみる。チュートリアルは他のサイトに任せる。
Heroku Toolbelt
これらすべてのインストールが終わったら適宜パスを通す。
その他
普段Web開発と関係なく使っているもの。
- Git
- NetBeans(PHP用)
- ckw
- Windows PowerShell
- Chocolatey
- Gow
環境構築
FuelPHPはrailsの影響を受けたフレームワークのようで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
参考
- http://fuelphp.jp/docs/1.7/
- http://hirose504.hatenablog.com/entry/2012/11/02/150405
- 別の友人にいまFuelPHPを触っていると言ったところ「テストがしづらい」との意見をもらった。 http://fuelphp.jp/docs/1.7/general/unit_testing.html
- http://sssslide.com/speakerdeck.com/kenjis/10fuelphp-osc2012-nagoya
- http://btt.hatenablog.com/entry/2012/06/16/015506