2009-01-01から1年間の記事一覧

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…

mod_rewriteの基本を再確認

mod_rewriteで設定を行ったのですが、意外にはまったので再確認してみます。基本的な書き換えなんですけどね。 やりたかったことは、フレームワーク等でおなじみの処理を少し拡張して、探索対象をドキュメントルート外のユーザーディレクトリも含めるという…

Flexyでフレキシブルなビューヘルパーを

PEAR::HTML_Template_Flexyをいじっていたのですが、 PEAR::HTML_Template_Flexy with Zend_View に関するメモ - noopな日々 phpLex.exeのコンパイル(64bit版vistaの場合) - noopな日々 その勢い余って、PEARから分離して独立したライブラリにしてみました。…

phpLex.exeのコンパイル(64bit版vistaの場合)

前記事でPEAR::HTML_Template_Flexyについて触れましたが、いろいろやってみると、やはりTokenizerをカスタマイズしてトークンを追加したくなってきました。 phpLex.exeの作成 読み込んだHTMLの解析はTokenizer.phpで行われています。ここの動作を修正しなけ…

PEAR::HTML_Template_Flexy with Zend_View に関するメモ

PEAR::HTML_Template_FlexyはDOMコンパイル型のシンプルなテンプレートエンジンです。 Zend FrameworkのMVCではZend_ViewのビュースクリプトはPHPで書かれますが、いわゆるテンプレートというよりは、昔風なPHPソースを想起するような書き方になりがちです。…

そして僕が、エラー制御演算子@を濫用しない理由

PHP

デフォルトのエラー分類はよくできていて、特にNOTICEにはおいしい情報がたくさんある。 いわば、NOTICEは大人のマナーを注意してくれている。 時には、互換性に関する情報もそっと教えてくれる。 @で抑えてしまうのはもったいない。 そんなところ。

それでも僕が、エラー制御(抑制)演算子"@"を使う理由

PHP

PHP プログラマが "@" を使うべきでない 5 つの理由 - 肉とビールとパンケーキ by @sotarok というエントリーを読みました。このエントリー自体は有意義なんで同意なんですが、"@"を使うべきでないなんてコンセンサスができたら残念なので、一応、逆説を提示…

MS製クラウド Windows Azure向けSDKが、Zend Frameworkに?

Windows Azure向けのPHP版SDK Windows Azure向けのPHP版SDK、PHPAzureのCTP2がリリースされています。*1 http://phpazure.codeplex.com/ GAE上のPHPはJava実装なのに比べ、AzureのPHP対応はネイティブなSDKになるのでしょうか。Deployment scenariosで説明さ…

Zend_Application (5) 実戦的使い方

モデルについてエントリーを書こうと思っていたら、思わぬPCトラブルでテンションが下がってしまったので、その前にZend_Applicationのプラグインリソースその他についてメモしておきます。

お勧めノートPC -- SONY VAIO TypeA --

今、2007年モデルのVAIO TypeAを使っています。 製品情報 2年前とはいえ、フラグシップモデルというだけあって、パフォーマンス等はなかなかいいものがあります。購入当時、フルスペックでいいものを全選択していたので、いやらしい話、価格は、52万円ほど。…

Zend FrameworkでのモデルとZend_Formの王道的使い方(の予告)

Zend_FormはZend Frameworkを特徴付けるコンポーネントの一つです。ZFではモデル実装部分についてはあまり多くが語られず、基本自由というスタンスなんですが、zf-mvcというMLとZF開発者のBenjamin EberleiさんとMatthew Weier O'Phinneyさんのブログで具体…

PHPでJavaScript -- SpiderMonkeyモジュール

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_Formの仕様で、つい忘れがちなのでメモ。 Zend_Configからフォームを育成できるのは便利なんですけど、エレメント間で同じ条件でデコレーターを使うとしたら、ブートストラップ等でデコレーターインスタンスを作って、addDecoratorした方がいい。

CSS Nite LP, Disk 6「CMSリベンジ編」

このイベントに参加する"CMS Designer"はテンプレートにXSLTを使っているというので、少し興味があります。 XSLTは、埋め込み式のテンプレートよりも柔軟な発想でデザインできて面白いのですが、PHPでテンプレート実装する場合に比べて重箱の隅をつつくのが…

クラウドとHTML5にPHPが沈むとき

PHP

インフラ・タグ仕様の両面からPHPの存在意義が問われているように思えます。 安価なインフラとの親和性、テンプレート志向、その双璧が意味をなさなくなってきそうです。

「バグのないプログラム」と「バグのないプログラムは作れない」と停止性問題について

停止性問題やライスの定理を持ち出して、「バグのないプログラムは存在しない」もしくは「バグのないプログラムを作ることができない」という主張が、数学や論理に長けた人の間でも交わされることがあります。 いやいやそんなことはないよ、という話をするん…

ブログに記事を無断で転載、男性を逮捕

ブログに記事を無断で転載、男性を逮捕 | 著作権侵害事件 | ACCS とのこと。 具体的にどんなことをやっていたのかわかりませんが、記事の無断転載が刑事事件になるのはそれなりに悪質だったということなんでしょうか。 ただ、こういった事件がきっかけとなっ…

朝食はブートストラップだ

wktkな月曜日の朝食だった。 贅沢で上質な朝食といえばフォーティファイブでのヘルシーブレックファーストなどを思いがちだけれど、それは、たまの休日に楽しみで贅沢するようなイメージ。自分が朝食に求めるのは、普通で、日々継続することができ、1日分キ…

SPL SplObserverとSplSubjectでオブザーバーパターン

hnwさんのエントリーで「見直されるべきPHP5の組み込みイテレータ」というお話がありました。RegexIterator AppendIterator NoRewindIterator SplFileObjectについて説明していただいていました。イテレーターに振る舞いを追加するところが面白いです。

クラウドの一貫性って

CAP定理というのは、 Consistency Availability Partitions という状態の2つまでしか達成できない。3つすべてを達成することはできないという定理である。例えばConsistency(一貫性)とAvailability(可用性)を同時に満足させるとPartitions(分散)を達成す…