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

退職

2006年12月28日付けで勤めていた会社(人材派遣会社のシステム開発部門)を退職しました。会社の方向性(SI的な仕事中心)と自分の志向(webサービス系)が乖離しつつあるのを感じていたので、仕方ない選択だったと思います。会社の環境は決してよくはなかっ…

viewヘルパー

今の実装だとviewヘルパーをグローバルな関数として定義しているんだけど(moony_errorsとか)、何かのコンポーネントクラスのメソッドとして実装されるべきなのか迷う。そうするとviewコンポーネントを導入する意味が出てくることになるが、そのためだけに…

Viewコンポーネントについて

Moonyの特徴として、Viewコンポーネントが存在しないということがある。テンプレートの処理は全てMoony_Actionクラスのfetchメソッドで行われる。なぜ実装を分離しなかったのかというと、PHP自体がテンプレート言語としての性格を持ち合わせているため、必要…

「割り切った」フレームワーク

Moony_Routerクラスの機能をMoony_Processorクラスに移してみた(_routeメソッド)。大分クラス数が減ってきて見通しがよくなってきている。これを0.13.1としてリリースしてよいものか考え中。基本的な機能の変更はないのだが、オプション的な機能の削減がか…

WEB+DB PRESS vol.36

WEB+DB PRESS Vol.36作者: WEB+DB PRESS編集部出版社/メーカー: 技術評論社発売日: 2006/12/22メディア: 大型本購入: 2人 クリック: 65回この商品を含むブログ (39件) を見る昼休み、三省堂まで行って買ってきた。今年はなぜかSeasarとの接点が多かった。春…

feedリーダー

feedリーダーを利用する場合、統一的な外観でしか情報を閲覧できない。文体によって読みやすいレイアウトというのがあると思うのだが、それはfeed経由では実現できない。そういう場合、元のサイトのページを直接閲覧することが多い。その方が文体に合ったデ…

機能の整理

Moony 0.13.0をリリースしたが、マイナーバージョンを上げるときは機能を多めに実装してしまう傾向がある。なんだか肥大化しているような気がするので余分な機能をなくしてしまいたい。どうしたものか。 Moony_Registryクラスは必要か $GLOBALSに値を格納す…

Moonyのプロジェクトホームページも更新

Moonyのプロジェクトホームページを、0.13.0のリリースに合わせてwiki化しました(Pukiwikiを利用)。まだまだドキュメントが揃っていないので、順次記述を追加していく予定。wikiだと思い立ったときに記述を追加/変更できるからいいですね。

Moony 0.13.0リリース

Moony 0.13.0をリリースしました。ダウンロードはSourceForge.jpからどうぞ。変更点は以下の通り: ルーティングルールの変更 PATH_INFOが/foo/barの場合、以下のようにルーティングされるように アクションクラス: Foo_Bar アクションクラス: Foo テンプレー…

プロジェクトの名前

Mapleから分岐するhawkさんの新しいプロジェクトの名前は「Kaede」になるらしい。日本語の名前もなかなかいいと思った。そういえば、namazuとかgonzuiとかも日本語だ。

メソッドインジェクション

アクションクラスのexecuteメソッドでメソッドインジェクションしたい。引数が「$foo_bar」の場合、以下のような処理が行われるのが理想。 「/path/to/components/Foo/Bar.php」をロード コンポーネント用のディレクトリは前もって設定しておく 「Foo_Bar」…

メソッドの引数の名前を取得したい

メモ。 0) { $param_str = $matches[1][0]; if (trim($param_str) !== '') { foreach (explode(',', $param_str) as $param) { $params[] …

読んでる

ヒューマン2.0―web新時代の働き方(かもしれない) (朝日新書)作者: 渡辺千賀出版社/メーカー: 朝日新聞社発売日: 2006/12/08メディア: 新書購入: 9人 クリック: 143回この商品を含むブログ (218件) を見るかなり面白い。会社に依存しないということ。当たり前…

レジストリクラスの復活

やっぱりレジストリクラスを使うことにしたよ。ただし共有オブジェクトの格納専用。値の設定/取得は常に参照で行われるので、その点だけ注意。 レジストリクラスは廃止したり復活させたり使うかどうか悩んでいたんだけど、これで確定するはず、たぶん。

動作設定の妥当性検証

Moonyの動作設定を行う際、いくつかディレクトリを指定する必要がある。その設定の妥当性をどこでチェックすればいいのか考えてみたが、どうにもまとまらない。動作中にその設定が使用される場所において、おかしな設定が行われていたらPHPのエラーとして扱…

レジストリクラスの廃止

やっぱりMoony_Registryクラスを廃止することにした。Moonyクラスのインスタンス(Moonyの動作設定を保持している)をグローバル変数に登録してしまうことに。 template_dir; ?>

Kaede?

Mapleの正統な後継を作るということは、そうしたもの全部を引き継ぐことになる。それは、自分の興味のためにしか動けない私には重すぎる。だって、無理なのだ。困るのだ。Mapleは分裂してこれで国内ではEthnaが云々と言われても(笑)、私にはどうしようもな…

設定をどう保持するか

現在のMoonyでは、動作設定をMoonyクラスのインスタンスに格納している。そしてそのインスタンスをMoony_Registryに格納、どのクラスからも参照できるようにしている。そのため、動作設定を取得するためには以下のように記述する必要がある。 template_dir; …

買った本

昼休み、日本特価書籍で買ってきた。まとめて読もう。ネットvs.リアルの衝突―誰がウェブ2.0を制するか (文春新書)作者: 佐々木俊尚出版社/メーカー: 文藝春秋発売日: 2006/12メディア: 新書 クリック: 66回この商品を含むブログ (102件) を見るウェブ人間論 …

Mapleの今後とか

Mapleのよさは、PHPらしさと簡易DIコンテナを上手に組み合わせたことだと思う。ただ、最近開発が滞っている印象が強い。もたついている間に、徐々にEthnaがユーザを増やしているような気がする。hawkさんがMapleの今後について悩まれているようだけれど、haw…

SourceForge.jpのCVS利用方法

今までCygwinのssh.exeを使用していたが、PuTTYで作成した鍵を利用するように変更。TortoiseCVSのオプション設定で、以下のようにする(SSH1の場合): SSH application: PuTTYのplink.exe SSH parameters: -i "(秘密鍵ppkファイルのパス)" -1 -l "%u" "%h"

出力バッファリング、仕切り直し

あらためてMoony_Action::setObHandlerメソッドを実装した。このメソッドで出力バッファリングハンドラを設定すると、アクションクラスの実行時に行われる出力バッファリングをフックすることができる。 setObHandler('z2h'); } } function z2h($tmp) { // …

アクションクラスのメソッド、実行順序

Moonyのアクションクラスのメソッドは以下のような順序で実行される。 prepare(): void 処理を実行する前準備が必要な場合に実装する convert(Moony_Converter $c): void リクエストパラメータの変換処理が必要な場合に実装する 引数としてMoony_Converterの…

Operaサポートは?

はてなのサイトをOperaで見ると、必要な情報が表示されない場合が多い。はてなブックマークでタグが補完されなかったり、はてなダイアリーの編集画面でプレビュータブが表示されなかったり。Operaは軽いしコンテキストメニューのカスタマイズが簡単にできる…

出力バッファリング

Moony::setObHandlerメソッドを新規追加、出力バッファリングのハンドラを登録できるように。アクションクラスでもMoonyの一部動作を変更できるようにしたので、以下のように登録すればアクションごとにハンドラを設定できるようになる。 class Foo extends …

クローじゃ

「クロージャ」と書こうとしたら「クローじゃ」と変換されてなんか萎えた。

ページクラスでいいかも

Moonyの場合、アクションクラスというよりページクラス そもそもURL(PATH_INFO)駆動のフレームワークだし ページベースで考えられていると言った方がしっくりくる 定義してみると ルーティング処理によって実行されるページクラスが決定される ページクラ…

出力キャッシュ、続きの続き

やっぱりPEAR::Cache_Lite_OutputのAPIに合わせることにした。その方がすっきりするような気がしてきたので。結局最初の実装に戻ったことになるのか。こういうAPI設計はいつも悩む。 Moony_Cache::outputStart($id, $lifetime = 3600): bool キャッシュの出…

出力キャッシュ、続き

結局戻り値を逆にしてメソッド名も変更した。 Moony_Cache::outputStart($id, $lifetime = 3600): bool 指定されたIDのキャッシュが存在する場合、キャッシュの内容を出力してfalseを返す 指定されたIDのキャッシュが存在しない場合、出力キャッシュを開始し…

違和感

Moony_Cacheの動作はPEAR::Cache_Liteに合わせてあるんだけど、出力キャッシュに関してはstartメソッドの戻り値は逆の方がわかりやすいような気がしてきた。つまり、以下のような考えでいいのではないか: 出力キャッシュの開始が成功した = まだキャッシュさ…