PHP

Zend Framework 勉強会#2

東京で株式会社 paperboy&co. 様主催の Zend Framework 勉強会があったので、関西より参加してきた。 発表するチャンスを得たので喋ってきた。Zend Framework Study@Tokyo #2View more presentations from heavenshell. 特にメッセージ周りの話を中心に話し…

Zend_Validate.php が trunk に仲間入り

忙しい日々が続いております。 そんな中嬉しい事があった。 今日 id:satoruyoshida さんが 自分が翻訳した Zend_Validate.php をコミットして頂けたよう。 http://framework.zend.com/code/browse/Standard_Library/standard/trunk/resources/languages/ja/Z…

Zend_Validate の日本語メッセージ

Zend Framework 1.10 から resources/languages というディレクトリが出来る。 要は言語パックが入る。 1.9x 時代は言語パックがなかったのでそれぞれで翻訳ファイルを持つ必要があったけど、1.10 以降はデフォルトで用意される。 現状日本語の言語パックは…

iconv_strlen() の例外

テストコードを実行したら、以下のような例外が発生した。 iconv_strlen(): Wrong charset, conversion from `'UTF-8'' to `UCS-4LE' is not allowed該当箇所を見ると、Zend_Validate_StringLength の isValid() 内の iconv_strlen() で出てた。 調べてみる…

Db_Fixture をアップデート

Openpear にて公開させて頂いている、Db_Fixture を更新した。 http://openpear.org/package/Db_Fixture 変更点は、以下の通り setPdo() の実装(0.1.4) PDO オブジェクトを外部から渡せるようにした load() 内部の変更(0.1.5) 元々複数の Fixture ファイルを…

Zend_Validate の日本語の翻訳ファイル

Zend_Validate はデフォルト英語のメッセージが表示される。 バリデーションには Zend_Fileter_Input を使っていて、メッセージを自由に設定できる。 array( new Zend_Validate_EmailAddress(), new Zend_Validate_StringLength(1, 255), 'message' => arra…

Zend_Validate のエラーメッセージの翻訳での不具合

Zend_Validate のメッセージの翻訳アダプターに ini を使おうとしたら Zend_Translate で落っこちた。 原因は Zend_Translate_Adapter_Ini が ini ファイルをパースした際に parse_ini_file() が禁止している文字があるから。 Zend Framework1.9.4 では Zend…

Zend_Validate_Db_NoRecordExists は 1.10 で後方互換がなくなる その3

前回の続き。 更に進展があったよう。メンテナよりコメント貰った。 No, this is no BC break. With 1.10 both notations are accepted. So you can use Zend_Config as with 1.10, which is now not possible. It's a new feature, no BC break as the old …

Zend_Validate_Db_NoRecordExists は 1.10 で後方互換がなくなる

昨日報告した奴にたいしてコメントをもらった。 Are you working from trunk? Thomas recently made a change to the validator which means the DB validators now work with an options array, instead of a bunch of parameters. The notation is correct…

Zend_Validate_Db_NoRecordExists で特定の条件で除外する

データベース上に既にデータが登録されているかを Zend_Validate_Db_NoRecordExists を使えば、他のバリデーションと一緒に使用できるので凄く便利。 これが新規登録とかだと、何も考えずに入力された値チェックするように書けば良い。Users テーブルの name…

Stagehand_Testrunner2.70 がリリースされている

PHP

個人的に PHP での開発には必須の Stagehand_Testrunner2.70 がリリースされたので入れた。 # というより、OS を Snow Leopard にしたので、PHP やらなんやら全て入れ直したため必然的にアップグレード。 今回のバージョンより大幅にかわっているので、pear …

Stagehand_Testrunner で Session エラー が出た(解決済み)

PHP

以前書いた PHPUnit と Stagehand_Testrunner を使った場合、セッション関連のエラーが出る件に付いて、Stagehand_Testrunner の作者の久保さん(@iteman)より Twitter でレスを頂いた。itemanこれって不具合っていう形で握りつぶしていいのかな。setUp()で明…

ユニットテストの際は DB のコネクションを明示的に切断する

メモメモ全てのユニットテストを実行したら、 Zend_Db_Adapter_Exception: SQLSTATE[08004] [1040] Too many connectionsとかって怒られた。 通常は、データベースとの接続を閉じる必要はありません。 リクエストの処理が終了した時点で、PHP が自動的にリソ…

PHP カンファレンスに行ってきた

去年に引き続き、今年も行ってきた。 メモはとってたけど、IT イベント史上最速*1のレポートが詳しいのでそちらを是非。 id:riaf++, id:wozozo++ 興味深かったのが、Cake3 ではより Zend Framework みたく外部の FW からコンポーネントとして使用できるとい…

Zend_Validate_Db_NoRecordExists を使ってみた

前回の続き。 Zend_Filter_Input と組み合わせて使ってみた。 array( new Gene_Validate_NotEmpty(), new Zend_Validate_Regex('/^[0-9A-Za-z+\_]*$/ '), new Zend_Validate_Db_NoRecordExists('users', 'name', null, $adapter), 'messages' => array( 0 =…

Zend_Validate_Db_RecordExists

よくユーザ登録とかそういう機能を実装してると、既に登録済みかチェックして、登録済みならエラーというような処理ってよくあると思う。 そんな機能をバリデータでやりたいなーと思って、大分前に作ったあった。 前に作った物だから、PHPSpec でテストコー…

Stagehand_Testrunner で Session エラー が出た

PHP

セッションを絡んだ箇所のテストコードを PHPUnit で書いていると Zend_Session_Exception: Session must be started before any output has been sent to the browser; output started in /usr/local/lib/php/PHPUnit/Util/Printer.php/174というつれないエ…

PHP で和暦変換をするライブラリを作った

openpear がしばらくはてな ID でログインできなかったけど、昨日復活したと中の人が言ってたので復活記念としてリリースw PHP で和暦変換する必要があったので、ライブラリが無いかと思って探したけど無かった。 時間がなくて結局ベタに実装したけど、あっ…

複数の PEAR パッケージのインストールを簡単に行う

PEAR は本家 PEAR リポジトリの他に野良 PEAR があったりするので、新しい PHP の環境を作る際に一からいちいち入れないと行けないのが面倒。 特に自分は PHP のバージョンごとにディレクトリを切って入れているので、新しいバージョンをインストールするた…

Zend_Application を使う(3)

Zend_Application での設定ファイルの読み込み方法が id:noopable さんの所で紹介されている。 クラスリソースで追加読み込みするBootstrapクラス内で_initConfig()みたいなメソッドを定義しておくことで、自由に追加のオプションをロードできると思います。…

Zend_Application を使う(2)

ブートストラップ周りをいじりだしてようやく 1.7x と同じ物が動くようになった。 設定ファイルのお話 サンプルやドキュメントでは application.ini にゴリゴリ view や session の設定を書かれてるのが多い。 デフォルトのブートストラップを使う分には良い…

PHP5.2.10 にしたら PEAR ライブラリが入らなくなった

PHP

PHP5.2.10 を Mac OS 10.5.7 にソースからインストールして、PEAR ライブラリを入れようとしたら、 $ sudo pear install Benchmark pear.php.net is using a unsupported protocal - This should never happen. install failedとかってエラーになった。 チャ…

Zend_Application を使う

Zend_Application は DI コンテナで高度に抽象化された (ry オフィシャルのドキュメントでは設定ファイルに依存するような値を書いて、 Zend_Application を生成する際に設定ファイルを渡してやってる。 ディレクトリ構成は以下のような感じにしたい。 app |…

Zend Framework1.8 で作りかけのアプリを動かしてみた

1.7x で作りかけている Phwittr を動かしてみた。 registerNamespace('Gene_') ->setFallbackAutoloader(false) ->suppressNotFoundWarnings(false); View を生成する箇所でキャッシュを使っていて、そこでエラーになった。 Fatal error: method_exis…

Zend Framework1.8 がリリースされた

とりあえずダウンロードしてインストールして、自分のテストコードを走らせたら… $ specrunner -c -R Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead …

Zend Framework 勉強会@Tokyo に行ってきた

Zend Framework 使いにとっては記念すべき 1 回目の勉強会が開催された。 ZendFramework勉強会@Tokyo - events.php.gr.jp id:wozozo にしゃべれと言われたので、 Phwittr の事なんぞを。 Zend Framework Study@Tokyo vol1View more presentations from heave…

Db_Fixture をアップデートしました

Db_Fixture をアップデートしました。 変更点としては生の SQL をそのままぶん投げられるようになりました。 INSERT INTO `test1` (`test_id`, `test1`, `created_at`) VALUE(1, 'test1', '2009-03-29 18:00:00'); INSERT INTO `test1` (`test_id`, `test1`,…

Db_Fixture をリリースしました

データベース周りのテストを実施するのに、 テストデータを突っ込むのがめんどくさい。 Ruby の Ruby on Rails や Perl の DBIx::Class では fixture という機能があるそうな。 予め用意したテストデータを記述したファイルを読み込んで、データベースに突っ…

Zend Framework 勉強会!

キタ━━━━(゚∀゚)━━━━!! ZendFrameworkの勉強会を行います。20人ほどの会場で、カジュアルな感じの勉強会になると思います勉強会終了後には参加者同士で交流を深めるために懇親会を行います。 参加される方は申込み時に合わせて参加表明をお願いします。 ■概要 日…

Zend_Paginator について

Zend Framework1.5x 以前では ページングは自前で実装するか、 PEAR::Pager を使用すると実現したが*1、1.6 から Zend_Paginator でページングを実現するコンポーネントが追加された。 Zend_Paginator には Adapter がいくつかあって、Zend_Paginator_Adapte…