PHP

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

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

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

PHP

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

ArrayIteratorの内部ポインタ

PHP

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

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

PHP

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

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

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で説明さ…

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 はてブロ、こちらの記事が非常にわかり…

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

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

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

PHP

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

Reflectionに対してcall_user_func_arrayは使えない??

PHP

ReflectionFunctionを併用して関数の遅延評価をテストしていたのですが、思わぬ挙動に・・・ ReflectionFunctionの基本動作の確認 invoke('/php/i', 'PHP is the web scripting language of choice.') ); //int(1) 関数を動的に与えるのはちょっとキモイです…