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

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…

Logger

ログ出力クラスを途中まで作ってたんだけど、どう考えてもPEAR::Logとかlog4phpの方が便利。Moonyの一部として実装する必要性があまり感じられなくなってきた。

レジストリクラス

ふと思い立って、レジストリクラスを作る。global変数でもいいんだけど、なんか格好悪い。全部staticメソッドね。 class Moony_Registry { var $registries = array(); function set($name, $value) { $registry = Moony_Registry::_getInstance(); $registr…

実行速度

xdebug で Moony 0.11.0 開発版の実行速度を測っていると、require_once に一番時間がかかっていることが判明。これは縮めようがないよなぁ。なるべく1つのファイルに詰め込めばよいのだろうけど、それでメンテナンス性が下がったら意味ないし。

恋に落ちた悪魔

恋におちた悪魔----世界の終わりの魔法使いII (九龍コミックス)作者: 西島大介出版社/メーカー: 河出書房新社発売日: 2006/08/21メディア: 単行本(ソフトカバー)購入: 9人 クリック: 24回この商品を含むブログ (68件) を見る読んだ。「世界の終わりの魔法…

『若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来』

若者はなぜ3年で辞めるのか? 年功序列が奪う日本の未来 (光文社新書)作者: 城繁幸出版社/メーカー: 光文社発売日: 2006/09/15メディア: 新書購入: 17人 クリック: 447回この商品を含むブログ (613件) を見る読んでる。読んでるけど、20代/30代の若者が読むよ…

フレームワークの方向性

一级A做爰片 看黄a大片 色妹妹 偷拍久久国产视频 「世界最軽量のPHP用MVCフレームワーク」らしい。MySQL用の簡単なmodel機能も。

テンプレートの指定方法

現状、描画時に使用するテンプレートを指定する場合には $this->res->render('Foo/Bar.php');のようにテンプレートディレクトリからのパスで指定しなければならないのだが、ひょっとして $this->res->render('Foo_Bar');のように記述できた方が便利ではなか…

自動生成ツールの配置

結局、以下のような構成に。 Moony_Generator Moony_Generator_Skeleton Moony_Generator_Utils Moony_Generatorがフロントエンドとなるスクリプト&クラスで、CLIから実行される部分。

自動生成ツール

generatorスクリプト、どこに配置しよう…? moonyコマンドを作ってもいいけど。PEARでインストールすることを前提に。

Vox

自分ではじめて作ったサイトの掲示板のタイトルが、「声の交差点」だったことを思い出した。 ラテン語で「声」を表わす言葉で、市民の声といった意味を持っています。 シックス・アパートが仕掛ける「ブログ+SNS」の新サービス「Vox」

システム構成図

書く必要に迫られたので: Google Image: システム + 構成図 Google Image: system architecture

コンテナその後

コンテナ機能は、結局「フィールドインジェクションできる簡易DIコンテナ」に。 [*] db = Foo_DB, user, pass, host [Hoge] bar = Foo_Bar dto = stdClass例えば、設定ファイルで上記のように記述すると、次のような意味になる。 対象アクション フィールド …

あー

ビルコレさん、新色のニンテンドーDS Lite欲しい!

すいとう

Re:S vol.1作者: パークエディティング出版社/メーカー: リトルモア発売日: 2006/07/15メディア: 大型本購入: 1人 クリック: 9回この商品を含むブログ (24件) を見る仕事場に水筒を持っていくようになって、2、3年になるのかな。水筒を特集している雑誌があ…

メジャーリリース?

Moony、0.11.xの次はメジャーリリースかなぁ。そろそろ実案件に投入してもいいかも。

リリース延期

Moony 0.11.0のリリース、今月中には無理そうです…。 ソースはほぼできたけど、ドキュメントがまだ手付かずの状態。もうしばらくお待ちくださいませ。

初期化するメソッド

メソッド名で悩む。 init initialize 慣用的に「init」で通用すると思うけど、他で省略していないのでなんだか気持ち悪い。

Smarty

テンプレートエンジンとしてSmartyも使えるように。 フロントコントローラで以下のように記述: require_once '/path/to/Moony.php'; require_once '/path/to/Smarty.class.php'; $moony = new Moony; $moony->useSmarty(array( 'compile_dir' => 'templates_…