2009-01-01から1年間の記事一覧
Zend_Cacheに限らず、キャッシュの管理では、IDの作成と、タグ付け、効率的なタイミングが必要になりますが、Zend_Cache_Frontend_Pageというまるっとページをキャッシュするページキャッシュは使えればかなり効率がよいもののひとつです。 1点だけ、GETなど…
Zend_Formに定義ファイルでデコレータを流し込む際のハマりどころについてメモしておきます。
文字列を配列として扱うと、第2階層以降ではエラーになるのですが、第1階層だけはスライスしてくれるという仕様で微妙な動作をしているのでメモです。
内部に配列を持たせつつIterator実装しているライブラリでちょっとハマったのですが、配列に対するcurrent関数とArrayIteratorのcurrentメソッドが使うポインタが違うようですね。 seek(2); echo "method:" . $test->current() . "<br />\n"; // 3 echo "func:" . …
Zend FrameworkのMVCでビュースクリプトをレンダリングする際にZend_Formのデコレーター風に実装できないかを検討していたのですが、比較的簡単にできました。ビュースクリプトをZend_Form_Elementの第1デコレーターに指定することで、基本的なMVC構成とビ…
同じ本なのかと思ってたら、違うんですね。 こちらで、入門Gitがべた褒めされているんですが、私は「入門git」(http://www.amazon.co.jp/%E5%85%A5%E9%96%80git-Travis-Swicegood/)の方は既読だったんですが、そんな内容だったかなぁ・・・と思いつつ引用箇…
PHPのプログラムでユーザー入力由来の$_SERVER関係を出力する際、特別な事情がなければ、 URL関係はurlencodeでエンコード、パス中にパス関連の情報を入れるときは、rawurlencodeする 通常は、htmlspecialcharsで第2、第3引数を適切に設定する のが普通だと…
公式ドキュメントとは違う切り口での確認をしておいたらいいかなと。細かいバリエーションについては、気が向いたら追記するかもしれません。 RフラグとPTフラグとaliasの関係 サーバコンテキストとディレクトリコンテキスト ドメイン、サブドメイン、プロト…
Zend FrameworkのMVCで多様化しがちなビューを実現するには、Viewスクリプトは表示用テンプレートではなく、Viewをつかさどるコントローラー的に実装し、表示をフォーマットするためのテンプレートは別に用意したほうがいいのではないか。 多様化するビュー …
さっき、小耳にはさんだのですが、個人的にブックマークしとけばいいだけの話ですが、なんとなくメモ。 Free Zend Framework Screencasts - Zendcasts Zend Frameworkの概略を流してみたいときはいいかもしれません。 たとえば、ZFとUnitTestの実際の動作に…
公式ドキュメントで、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…
mod_rewriteで設定を行ったのですが、意外にはまったので再確認してみます。基本的な書き換えなんですけどね。 やりたかったことは、フレームワーク等でおなじみの処理を少し拡張して、探索対象をドキュメントルート外のユーザーディレクトリも含めるという…
PEAR::HTML_Template_Flexyをいじっていたのですが、 PEAR::HTML_Template_Flexy with Zend_View に関するメモ - noopな日々 phpLex.exeのコンパイル(64bit版vistaの場合) - noopな日々 その勢い余って、PEARから分離して独立したライブラリにしてみました。…
前記事でPEAR::HTML_Template_Flexyについて触れましたが、いろいろやってみると、やはりTokenizerをカスタマイズしてトークンを追加したくなってきました。 phpLex.exeの作成 読み込んだHTMLの解析はTokenizer.phpで行われています。ここの動作を修正しなけ…
PEAR::HTML_Template_FlexyはDOMコンパイル型のシンプルなテンプレートエンジンです。 Zend FrameworkのMVCではZend_ViewのビュースクリプトはPHPで書かれますが、いわゆるテンプレートというよりは、昔風なPHPソースを想起するような書き方になりがちです。…
デフォルトのエラー分類はよくできていて、特にNOTICEにはおいしい情報がたくさんある。 いわば、NOTICEは大人のマナーを注意してくれている。 時には、互換性に関する情報もそっと教えてくれる。 @で抑えてしまうのはもったいない。 そんなところ。
PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok というエントリーを読みました。このエントリー自体は有意義なんで同意なんですが、"@"を使うべきでないなんてコンセンサスができたら残念なので、一応、逆説を提示…
Windows Azure向けのPHP版SDK Windows Azure向けのPHP版SDK、PHPAzureのCTP2がリリースされています。*1 http://phpazure.codeplex.com/ GAE上のPHPはJava実装なのに比べ、AzureのPHP対応はネイティブなSDKになるのでしょうか。Deployment scenariosで説明さ…
モデルについてエントリーを書こうと思っていたら、思わぬPCトラブルでテンションが下がってしまったので、その前にZend_Applicationのプラグインリソースその他についてメモしておきます。
今、2007年モデルのVAIO TypeAを使っています。 製品情報 2年前とはいえ、フラグシップモデルというだけあって、パフォーマンス等はなかなかいいものがあります。購入当時、フルスペックでいいものを全選択していたので、いやらしい話、価格は、52万円ほど。…
Zend_FormはZend Frameworkを特徴付けるコンポーネントの一つです。ZFではモデル実装部分についてはあまり多くが語られず、基本自由というスタンスなんですが、zf-mvcというMLとZF開発者のBenjamin EberleiさんとMatthew Weier O'Phinneyさんのブログで具体…
Zend DevZoneの記事で、PHPでJavaScriptを使う記事が投稿されました。http://devzone.zend.com/article/4704-Using-JavaScript-in-PHP-with-PECL-and-SpiderMonkey 日本では、spidermonkey拡張モジュール - Do You PHP はてブロ、こちらの記事が非常にわかり…
Zend_Formの仕様で、つい忘れがちなのでメモ。 Zend_Configからフォームを育成できるのは便利なんですけど、エレメント間で同じ条件でデコレーターを使うとしたら、ブートストラップ等でデコレーターインスタンスを作って、addDecoratorした方がいい。
このイベントに参加する"CMS Designer"はテンプレートにXSLTを使っているというので、少し興味があります。 XSLTは、埋め込み式のテンプレートよりも柔軟な発想でデザインできて面白いのですが、PHPでテンプレート実装する場合に比べて重箱の隅をつつくのが…
インフラ・タグ仕様の両面からPHPの存在意義が問われているように思えます。 安価なインフラとの親和性、テンプレート志向、その双璧が意味をなさなくなってきそうです。
停止性問題やライスの定理を持ち出して、「バグのないプログラムは存在しない」もしくは「バグのないプログラムを作ることができない」という主張が、数学や論理に長けた人の間でも交わされることがあります。 いやいやそんなことはないよ、という話をするん…
ブログに記事を無断で転載、男性を逮捕 | 著作権侵害事件 | ACCS とのこと。 具体的にどんなことをやっていたのかわかりませんが、記事の無断転載が刑事事件になるのはそれなりに悪質だったということなんでしょうか。 ただ、こういった事件がきっかけとなっ…
wktkな月曜日の朝食だった。 贅沢で上質な朝食といえばフォーティファイブでのヘルシーブレックファーストなどを思いがちだけれど、それは、たまの休日に楽しみで贅沢するようなイメージ。自分が朝食に求めるのは、普通で、日々継続することができ、1日分キ…
hnwさんのエントリーで「見直されるべきPHP5の組み込みイテレータ」というお話がありました。RegexIterator AppendIterator NoRewindIterator SplFileObjectについて説明していただいていました。イテレーターに振る舞いを追加するところが面白いです。
CAP定理というのは、 Consistency Availability Partitions という状態の2つまでしか達成できない。3つすべてを達成することはできないという定理である。例えばConsistency(一貫性)とAvailability(可用性)を同時に満足させるとPartitions(分散)を達成す…