2006-10-01から1ヶ月間の記事一覧

Moony 0.11.1リリース

というわけで、Moony 0.11.1をリリースしました。ダウンロードはSourceForge.jpからどうぞ。 詳しくはプロジェクトホームページを見るか、ソースを参照してください ;-)

アクションベース

Moony 0.11.0では全ての処理をMoony_Controllerを継承して作るようになっているけど、コントローラという名前が紛らわしい。Moony_ControllerをMoony_Actionに改名して、アクションベースのフレームワークとして方向性を修正しようかと思う。処理内容が変わ…

プログラミング用のフォント

最近、プログラミングするときは小夏フォントを使っている。きれいにアンチエイリアスされるフリーの日本語フォントがWindowsにはあまりないのよね。「$」がすこしつぶれた感じがする以外はなかなかいいかも。

Moony 0.11.0リリース

Moony 0.11.0をリリースしました。ダウンロードはSourceForge.jpからどうぞ。全面的に処理方式が変更になっています。詳しくはプロジェクトホームページを見るか、ソースを参照してください ;-)

連想配列のキーチェック

PHPで連想配列のキーの存在有無を確認する場合、その値がnullである可能性を考える必要がある。 $array = array('foo' => 'a', 'bar' => null); var_dump(isset($array['foo'])); // true var_dump(isset($array['bar'])); // false var_dump(array_key_exis…

なんかトラックバックスパムが多いんだけど

気のせい? とりあえずドメイン指定で拒否設定した。

validation結果の処理

方式を変更、Moony_Controller::displayOnError()を新規実装。コードも実装もすっきり: class Foo extends Moony_Controller { var $name; /** * @param object $v Moony_Validator */ function validate(&$v) { // 必須チェック $v->validateRequired($this…

グローバル変数

Moony_Registryというレジストリクラスを作って使っているんだけど、どう考えてもグローバル変数($GLOBAL)を使った方がパフォーマンスがいい。なるべくグローバル領域は汚染したくないので仕方ないけど。

simpletest

simpletestが自宅のPCにインストールされていないことに気がついて、ダウンロードしようとしたらPEAR installableなパッケージが本家に見当たらない。前はあったような気がしたのだが…。探したらpearified.comのchannelにあったよ! http://www.lastcraft.co…

WAF - web application firewall

竹迫さんのわっふるモジュールに期待。プレゼン資料公開されないかな。 Apache わっふるモジュールで SQL injection 対策 (竹迫良範)昨今の脆弱性報告ブームにより、Webアプリケーションの脆弱性対策に頭を悩ましている人も多いと思います。本来あるべき論の…

JSONを扱う

Jsphonがincludeされていた場合、以下のようにJSONを扱えるようにしてみる。 class Foo extends Moony_Controller { function execute() { // 値の割り当て $this->assign('name', 'hiro_y'); $this->assign('foo', array('bar' => 'baz')); // JSONフォーマ…

PHPのオブジェクト

こんなふうに書けるんだな。 // test.php $obj = new stdClass; $obj->name = 'hiro_y'; $obj->sex = 'male'; $obj->birthday = '1978-07-16'; foreach ($obj as $name => $value) { echo $name, ':', $value, "\n"; }実行してみるとこうなる。 php -q test.…

自動生成ツールのスクリプトの名前

CakePHPの自動生成スクリプトの名前は、bake.php。 Moonyで真似するとしたら、brew.phpとか。ケーキを焼くのと密造酒を醸造するのでは大分違う。

Smartyのサポート

とりあえず、Moonyの0.11.0ではサポートしないことに決定。リリースしてからまた考える。

validatorクラスのメソッド命名

validatorクラスのメソッド名で悩む。最終的にvalidateメソッドで全ての検証結果を取得するので、個々のメソッドの戻り値はない。必須入力チェックの場合: setRequired testRequired validateRequired いくらなんでもvalidateRequiredは長すぎる(入力が面倒…

デバッグ方法、他に

Zend FrameworkのZend::dump()を使うのもよさげ。 Zend::dump() は、式の内容を表示したり返したりします。 このメソッドは、PHP の関数 var_dump() のラッパーです。出力は (X)HTML の <pre> タグで囲まれ、 オプションでラベルを指定できます。</pre>

PHPのデバッグ方法

「http://labs.unoh.net/2006/10/php_print_debug.html」につられて書いてみる。開発時はxdebugをPHP環境に組み込んでいるので、特別なことをしなくても下記のように記述するだけでvar_dumpの結果を整形して表示してくれる。とても便利。 var_dump($this->ge…

コンポーネント指向

「フレームワーク - ログ日記」を読んで。実はMoonyを全面的にコンポーネント指向で書き直そうとしてました(0.11.x開発版/非公開)。ただ、やっているうちに「それどこのZend Framework?」な状態になってしまい、意味がないと判断してその作業は中断。小さ…

PEARのPHP5化

http://pear.php.net/package/HTML_TagCloud/ http://catbot.net/blog/2006/10/html_tagcloud011beta.html HTML_TagCloudリリース。どこかで使おう。PEARもPHP5以上が前提になりつつあるかも。

Loggerどうしよう

LoggerはもうPEAR::Logでいいかなと思ったけど、factoryとかsingletonとか面倒くさい。staticにコールしたい感じ。でも独自実装する価値があるかというと微妙なところ。log4phpはlog4jとほぼ同じ設定/記述ができるのでlog4jに慣れていれば使いやすそう。

UTF-8のひらがな/カタカナの正規表現(PHP)

php

preg_matchで使える感じで: /^(\xe3(\x81[\x81-\xbf]|\x82[\x80-\x93]|\x83\xbc))*$/ (ひらがな) /^(\xe3(\x82[\xa1-\xbf]|\x83[\x80-\xb6]|\x83\xbc))*$/ (カタカナ) 長音ってひらがな/カタカナ共通でいいんだよね…?(参考: http://ash.jp/code/unitbl…