sfDocTestPlugin 0.2.8をリリースしました

sfDocTestPlugin 0.2.8をリリースしました。最近、大掛かりなプロジェクトでみんなでそれぞれテストを書いているのですが、お互いのテストが干渉して失敗する事が多くなりました。人のせいでテストが通らないと腹が立つので人間関係も悪くなります。今回のリリースでは、各テストの独立性を向上する事でテスト間の干渉がなくなり、円滑にプロジェクトを進めるのに役立つ機能を追加しました。

この投稿の続きを読む »sfDocTestPlugin 0.2.8をリリースしました

スキーマの変更にデータベースを追随させるsfPropelSqlDiffPlugin

データベースを用いたアプリケーションでは、開発途中に仕様変更などでデータベースを変更したい事があります。 通常は、ALTER等のSQLを駆使して差分のSQLを作成し、適用しますが、意外と面倒です。 propel-build-sqlタスクでは、CREATE TABLE文は作成してくれますが、既存のテーブル構造をかえる為のでALTER文は生成しません。 この作業を自動化してくれるのが、sfPropelSqlDiffPluginです。 sfPropelSqlDiffPluginは現在のconfig/schema.ymlとデータベースを比較して、差分のALTER文を生成するプラグインします。以下の図が概要になります。

この投稿の続きを読む »スキーマの変更にデータベースを追随させるsfPropelSqlDiffPlugin

sfDocTestPlugin 0.2.4をリリース

symfonyでDocTestを実現するsfDocTestの最新版(0.2.4)を本家のプラグインリポジトリにリリースしました。

以前こちらの「symfonyで開発日記」で紹介したときには0.0.1でした。その後の修正をまとめると以下のようになります。

この投稿の続きを読む »sfDocTestPlugin 0.2.4をリリース

sfFormtasticPluginの可能性

前回のsymfony1.1使いに役立つかもしれないsfFormについての知識の補足エントリです。 前回のエントリに対してはてなブックマークにて以下のような意見をいただきました。

自動生成なら propel:build-form がやってくれるし、それで対応できないフォームは sfForm の派生クラスでガリガリ書いちゃえるし。。。
後者のベースになるものを作るって理解で良いのだろうか。現状必要ないが覚えておく。
引用元

この点について、前回のエントリで不足していた「sfFormtasticPluginをどう使うのか」という部分に触れてみます。 この投稿の続きを読む »sfFormtasticPluginの可能性

symfony1.1使いに役立つかもしれないsfFormについての知識

みなさんsymfony 1.1を使ってますか?symfony 1.1ではFormとvalidateの仕組みがsfFormクラスに変更されました。

sfFormは「自称もっとも美しいPHPのFormフレームワーク」と言うだけあって良くできています。symfony1.0の頃にあった「Actionクラスに内包されているがゆえの気持ち悪さ」はありません。ただ、使っているとどうも「validationをYAMLで書きたい」という話を多く聞きます。確かにsfFormを使っているとsfFormから派生したFormクラスにフォームの定義やオプション、validateの内容など同じようなことを何度も書かなければならず、スマートとは言い難いです。

そこで今回紹介するのは、「sfFormって面倒じゃない?」問題を解決するsfFormtasticPluginです。

この投稿の続きを読む »symfony1.1使いに役立つかもしれないsfFormについての知識

PropelBehavior使ってますか?

symfonyは標準的にpropelというO/Rマッパライブラリを使用しています。このpropelに対して独自の処理を付け加える機構がsfPropelBehaviorです。

この機構を使うことで、たとえば『saveしたときに自動的に更新者のIPアドレスを保存する』などといった透過的処理を、簡単に追加することができます。

本日記では、そのPropelBehaviorの使い方を説明します。実装の際に便利そうなテンプレートも用意しましたので、もしよければ使ってみてください。なお、本稿ではこのテンプレートを使用しています。

この投稿の続きを読む »PropelBehavior使ってますか?

DocTestを使ってテスト駆動開発

symfonyには、testの機構が備わっていて、symfony test-allなどで簡単にテストを実行できます。しかしながら、実際にテスト駆動開発(TDD)を行おうと思うと実際書いているソースコードの他にテストを実装しなくてはならず手間が掛かりテストの記述がおろそかになりがちです。

少し困っていたところ、最近になり”/** 〜 */”の中にテストを書くMapleDocTestというのを教えてもらって3日位使ってみたところ、すぐにその簡単さに衝撃を受け、テストの大好きになりました。

しかしながら、PHPでUnitTestのクラスを作成するクラス指向のテスティングに疑問を持ったので独自に関数指向のテストに実装(車輪の再発明!)しなおしてsfDocTestPluginを作成しました。

この投稿の続きを読む »DocTestを使ってテスト駆動開発

モバイル端末の情報を取得するプラグイン

私は仕事柄お客様の様々なプロジェクトに関わっています。そのうち3分の1はモバイルの案件です。 先日端末情報やIP接続の情報の管理にうんざりしていたところ、キャリアのウェブからスクレイピングして端末情報を持ってくるWWW::MobileCarrierJPというperlのライブラリを教えてもらいこれを使って楽をする事にしました。

この投稿の続きを読む »モバイル端末の情報を取得するプラグイン

sfPageFlowプラグイン公開しました

sfPageFlowプラグインを本家wikiに投稿しました。sfPageFlowプラグインはYAMLで定義した有限オートマトンによってページ遷移を制御するプラグインです。これにより複雑なフォーム遷移の実装が簡単になります。

実装にあたってはPiece Frameworkを参考にさせていただきました。

本日はざっと概要だけ説明させていただきます。

この投稿の続きを読む »sfPageFlowプラグイン公開しました

ライブドア認証を試してみる

ちょっと前にライブドア認証サービスが開始されました。私はlivedoor Readerlivedoor Clip!を普段利用しているのでライブドアのIDでいろんなサービスを利用できると非常にありがたかったりします。

そこで、ライブドア認証symfonyで簡単に使うプラグインを書いてみました。

pluginsディレクトリの下にチェックアウトして利用をしてみてください。

svn co http://svn.tracfort.jp/svn/dino-symfony/plugins/sfLivedoorAuthPlugin

利用方法は以下の通りです。

この投稿の続きを読む »ライブドア認証を試してみる