zf2.2 translator周りの変更点

※2.2の変更履歴にありました。 デフォルトのトランスレータを設定するのに、 get('translator'); \Zend\Validator\AbstractValidator::setDefaultTranslator($translator); としているケースがありますが、古い設定のままだと、 Argument 1 passed to Zend\V…

zf2のモジュールコンフィグのキャッシュ

zf2のアプリケーション、サービス、Diやモジュール用設定は毎回、ほぼ同じ設定を読み込みます。複数のファイルへ毎回アクセスしてマージするのももったいないので、簡単にキャッシュする方法が用意されています。(※ベンチを取るならせめてこのくらいのことは…

無名関数とvar_export

有名な話なのかもしれませんが、メモ 設定配列などを読み込んでマージした後にキャッシュ目的でvar_exportする、といったことはあると思いますが、 function(){return new StdClass;}, ); //エクスポートされた内容を確認 echo var_export($foo, true) . ';…

ZF2のDi関連で Zend\Db\Adapter\AdapterとProfilerAwareInterfaceについて ZF2.1でZend\Db\AdapterにProfilerAwareInterfaceが追加されました。 使い方にもよりますが、Zend\Di\Diで自動化している場合、2.0系の設定でそのまま使うと、 'Invalid instantiato…

ZF2のEventManagerの特徴

EventManagerとSharedEventManager zf2でのEventManagerはイベント供給元オブジェクトにつき一つのスコープとして使います。(もちろん、自由なので複数のオブジェクトを跨ぐことも、オブジェクト以外のスコープで作成することもできますが) EventManager M…

Symfony2のドキュメントを見ながら比較しつつ共通項を見る

Symfony2はすばらしいフレームワークで、ドキュメントも充実していていいですね。ここでは、Symfony2のドキュメントを参照しながら共通項を探ってみたいと思います。基本的にはこちら。文中、このドキュメントからの引用とzf2を比較していきます。 http://do…

EventManagerの詳細

ZendFramework2を使うメリットの一つに新しいEventManagerがあります。ZF2の特徴的部分としては、インターフェース単位でイベントを管理したり、対象メソッドをリスナーとして並列化したり、リスナーの型変換ルールを規定したりと、なかなか公式ドキュメント…

Zend\Mailで日本語(ISO-2022-JP)メールを送る

ZendFramework2.0でメール送信を行いました。 公式ドキュメントに加えて、下記ブログは参考になります。私はこの通りにはしませんが、ひとつの方法として参考にしました。 http://www.michaelgallego.fr/blog/?p=208 日本語メールは? テストした環境はmb_st…

ZendFramework 2.0でバリデータのバリデーションメッセージをカスタマイズするメモ

translatorで翻訳する translatorのテキストドメインを使う 個別のメッセージを設定する Zend\Formで使う translatorで翻訳する。 デフォルトのバリデーションメッセージを翻訳してみます。 http://framework.zend.com/manual/2.0/en/modules/zend.validator…

Apache CouchDBとCouchbase Server2.0は別のプロダクトへ

先日CouchDBとPHPについて下記のようなメモを残しました。 http://d.hatena.ne.jp/noopable/20111013/1318490214Couchbaseは、CouchDBの商用ディストリというイメージを持っていたのですが、Apache CouchDBからDamien Katz氏が離脱し、今後、Couchbase Serve…

Zend Framework 2.0 beta2でquick startしてみた。

beta2でskeletonアプリが出てきました。早速、skeletonのquick startを試してみました。 いずれは、コマンドで基本構造やモジュール・コントローラーを作成できるようになるだろうと思いますが、とりあえずskeletonだけでもありがたいです。なるべく依存する…

「Zend Framework2 beta2 を触ってみる。 (featuring EventManager)」

この記事は"Zend Framework 日めくり Calendar 2012"の「Zend Framework2 beta2 を触ってみる。 (featuring EventManager)」として書きました。Zend Framework 2.0もbeta2がリリースされ、近くRCそして今春には正式リリースになるそうです。 個人的な印象で…

PHPとCouchDB

ドキュメント志向データベースだとMongoDBが盛り上がっていますが、CouchDBもまだまだ要チェックだと思っています。PHPと共に使う場合、MongoDBへはPHPの標準ライブラリ経由でいいと思いますが、CouchDBにはRESTでアクセスします。この点、余計なHttp接続コ…

ZF2についてのちょいメモ

ZF2

"Zend Framework 2.0"はどうなんでしょうか。サラッとリストアップしてみようと思います。 その他、何かいいリソースがありましたら、教えていただけると助かります! 最新情報の入手 Zend Frameworkの開発ブログがあります。私はたまに気になった時に見てい…

ZF勉強会#2フォローアップ Zend Frameworkでモデルを始める前に理解しておきたいこと

Zend Framework勉強会#2 はGMOペパボ株式会社様の協力もあって、盛況でしたが、どうもZend_Dbに関して誤解があるような気がしているので(私も含めて)一通り確認してみようというフォローアップ記事です。 Zend Frameworkで対応しているモデル構成は、ドメイ…

モデルもしくはサービスレイヤーに関する補足

http://events.php.gr.jp/events/show/91での発表Zend_Aclの探究の中で、サービスレイヤーについて少し触れました。 id:m_noriiさん、感想ありがとうございます。 サービスレイヤーについては、発表内容とは全然違うけど、今設計的に悩んでる部分があって、…

Zend Framework勉強会#2 で使用した資料他

http://events.php.gr.jp/events/show/91 昨日はお疲れさまでした。懇親会は・・・*1 ベストコンディションで挑むことができず、来ていただいた皆様に申し訳なく思っております。体調はベストではなかったですが、自分としてはベストを尽くしたつもりです(…

PHP製DIコンテナ"yadif"をZend_Applicationと共に使う

Zend_Applicationはフレームワークの設定と主要インスタンスの管理に使いますが、今のところモデル用のリソースがありません。 PHP製のシンプルなDIコンテナ"yadif"は設定によるオブジェクトの生成と管理が可能で、モデルの管理にも適します。ここでは、yadi…

Zend_Tool_Frameworkが便利 with Doctrine_Cliなど

Zend_Tool_Framework でManifestとProviderを書いてDoctrine_CliへZend_Applicationで書いたDoctrineリソースを流して自作Doctrine_Taskを実行ってのをやってます。Provider便利! http://twitter.com/noopable/status/7699696818 こんなことをつぶやいてし…

Zend_Cache_Frontend_Pageで、ほんの少しだけ無駄を省く

Zend_Cacheに限らず、キャッシュの管理では、IDの作成と、タグ付け、効率的なタイミングが必要になりますが、Zend_Cache_Frontend_Pageというまるっとページをキャッシュするページキャッシュは使えればかなり効率がよいもののひとつです。 1点だけ、GETなど…

Zend_FormのデコレータとZend_Config_Xmlに関する困ったメモ

Zend_Formに定義ファイルでデコレータを流し込む際のハマりどころについてメモしておきます。

文字列を配列扱いするとisset+配列記法はtrueを返す

PHP

文字列を配列として扱うと、第2階層以降ではエラーになるのですが、第1階層だけはスライスしてくれるという仕様で微妙な動作をしているのでメモです。

ArrayIteratorの内部ポインタ

PHP

内部に配列を持たせつつIterator実装しているライブラリでちょっとハマったのですが、配列に対するcurrent関数とArrayIteratorのcurrentメソッドが使うポインタが違うようですね。 seek(2); echo "method:" . $test->current() . "<br />\n"; // 3 echo "func:" . …

ビューのレンダリングにZend_Formのデコレーターを使うための基本的な考え方に関するメモ

Zend FrameworkのMVCでビュースクリプトをレンダリングする際にZend_Formのデコレーター風に実装できないかを検討していたのですが、比較的簡単にできました。ビュースクリプトをZend_Form_Elementの第1デコレーターに指定することで、基本的なMVC構成とビ…

入門Gitと入門git

git

同じ本なのかと思ってたら、違うんですね。 こちらで、入門Gitがべた褒めされているんですが、私は「入門git」(http://www.amazon.co.jp/%E5%85%A5%E9%96%80git-Travis-Swicegood/)の方は既読だったんですが、そんな内容だったかなぁ・・・と思いつつ引用箇…

$_SERVER['REQUEST_URI']を誤解していた

PHP

PHPのプログラムでユーザー入力由来の$_SERVER関係を出力する際、特別な事情がなければ、 URL関係はurlencodeでエンコード、パス中にパス関連の情報を入れるときは、rawurlencodeする 通常は、htmlspecialcharsで第2、第3引数を適切に設定する のが普通だと…

mod_rewriteの基本(サブドメイン、RフラグPTフラグ、コンテキスト)

公式ドキュメントとは違う切り口での確認をしておいたらいいかなと。細かいバリエーションについては、気が向いたら追記するかもしれません。 RフラグとPTフラグとaliasの関係 サーバコンテキストとディレクトリコンテキスト ドメイン、サブドメイン、プロト…

MVCでのビューの多様性について少し考えてみた(たとえばZFで)

Zend FrameworkのMVCで多様化しがちなビューを実現するには、Viewスクリプトは表示用テンプレートではなく、Viewをつかさどるコントローラー的に実装し、表示をフォーマットするためのテンプレートは別に用意したほうがいいのではないか。 多様化するビュー …

Zend Frameworkをscreencastで見たい

さっき、小耳にはさんだのですが、個人的にブックマークしとけばいいだけの話ですが、なんとなくメモ。 Free Zend Framework Screencasts - Zendcasts Zend Frameworkの概略を流してみたいときはいいかもしれません。 たとえば、ZFとUnitTestの実際の動作に…

mod_rewriteの無限ループでIS_SUBREQ REQUEST_FILENAME LA-U:REQUEST_FILENAME ENVの変化を追ってみた

公式ドキュメントで、rewriteの技術で最もトリッキーでありながら、最初に理解しておくべきことが解説されています。 The internal processing of this module is very complex but needs to be explained once even to the average user to avoid common mi…