OUIを検索するFuelPHP用のパッケージを作ったよ post

OUIを検索するFuelPHP用のパッケージを作ったよってことで、、、誰得なんでしょうか?

何が出来るかというと、IEEE-SA - Registration Authority OUI Public Listingで 公開されているOUI(Organizationally Unique Identifier)のリストを使いOUIから組織名の取得、あるいは、その逆を行います。

ソース→sharkpp/fuel-ouisearch - GitHub Travis CI→fuel-ouisearch Build Status

まあ、誰得かは置いておいて、今回は、

  • 単体テストを実装
  • プラグインでタスクを実装
  • プラグインでマイグレーションを実装
  • Travis CI使ってみたよ

の、4本です。

パッケージは誰得だとしても、その過程は有用だ!と信じたい、、、、

単体テストを実装

今回のパッケージはサンプル作るのもあれなのでテストで代用って側面もありテスト書きながら実装していきました。

テストカバレッジレポートとか見ながら作るとなんだか楽しいです。

参考ページ

XDebugがないとテストカバレッジレポートが作成できない

あ、テストカバレッジレポートを出力するにはXDebugが必要っぽいです。 インストールされていなかったので "The Xdebug extension is not loaded. No code coverage will be generated." って怒られちゃいました。

テストカバレッジレポートをHTMLで出力する場合はファイルパスの指定ではなくディレクトリの指定になります。

php oil t --coverage-html=coverage

見たいな感じ。 HTML出力のみディレクトリ指定なので間違えないようにしませう。

プラグインでタスクを実装

これは、そんなに大変ではなかった、というか、以前に同じようなことをしていて簡単だった。

しいて言えば、最初はORMパッケージを使う実装にしていて色々やっていたけど、 よく考えると他のパッケージに依存するほどでもないのでそのあたりをばっさり削除して作り直しています。

より詳しく書くと、ORMで設定からテーブル名を指定しようとしていたけど、設定をテーブル名に反映するタイミングが 最初は見つからず右往左往していたけど、結局はClasses - General - FuelPHP Documentationに書いてあった。

プラグインでマイグレーションを実装

これが以外と難儀だった。 ソースを追うと、パッケージやモジュールに対してもマイグレーション処理が 動作するっぽかったので意気揚々と実装していったのだけれども、、、

設定をしないと動作しない

パッケージを app/config/config.php の always_load.packages に登録する必要はもちろんあるのだけれど、それだけではだめでした。 package_paths に PKGPATH を追加しないとやっぱり動作しない。 これはなんかバグくさい気がする。

コマンド打っても反応しない

php oil r migrate

と単純にコマンドを打っても反応しない! で、ソースを追っていったら、何もしないとパッケージなどはマイグレーションの対象外になる模様。 なので、

php oil r migrate --all

などとやるのが正解。

Travis CI 使ってみたよ

簡単、CIサービス Travis CI を使ってみました。

参考ページ

ドキュメントに嘘付かれた(´・ω・`)

Build Lifecycleは間違っているっぽいです。 before_install の後で clone したディレクトリに移動するって書いてありますが、cloneした直後に移動していました。 途中で仕様が変わったんでしょうか?

なんだかんだで出来た

という、アイデアを頂きつつ、やっぱり単体でテストできるのがかっこいいので頑張りました。

Travis CI

最終的に完成した .travis.yml は、fuel-ouisearch/.travis.yml at master ? sharkpp/fuel-ouisearch ? GitHub です。 中身はたいしたことをやっていなくて

  1. git clone で FuelPHP を取得
  2. packages にリンクを張る
  3. 設定を上書き
  4. MySQLにデーターベースを作成(user:root pass:なし)
  5. テスト実行

ってことをつらつらと書いているだけです。

とりあえず、Travis CI のテンプレが出来たのはいい感じです。


 /  変更履歴  /  Permalink  /  このエントリーをはてなブックマークに追加
カテゴリ: ブログ  /  タグ: php, Develop, FuelPHP