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

エンコーディングの扱い

エンコーディングを扱うユーティリティクラスを作って、エンコーディング関係の処理は任せてみようかと。mbstringモジュールがあればmb*関数で処理を行い、iconvモジュールがあればiconv*関数で処理を行うイメージ。処理の優先順位はmbstring > iconv。 Moon…

PEAR::DB 1.7.8

PEAR::DB 1.7.8がリリースされた。PostgreSQL使用時の文字列エスケープの挙動が改善され、pg_escape_string関数を使用するようになった模様。なんだかんだ言って使い慣れてるから、PEAR::MDB2になかなか移行できない。

validate機能

よくよく考えたら、検証機能をvalidateメソッド内で完結させる必要なんてないことに気づいた。validateメソッド内では検証のための設定だけ行って、その結果による処理はexecuteメソッド内で書けばいい。 setRequired($this->name, '名前は必須入力'); $v->s…

どうやって開発しているか

フレームワークをどうやって開発しているか、書いてみる。とりあえず、どうやって利用されるかの視点から開発を進めることが多い。その場合、下記のようなプロトタイプを作成してインタフェースを考える。そして、あーでもないこーでもないと悩みながらそれ…

フィルタ機能あれこれ

Moony_Filter::filterAlpha()というメソッドを作ってみたが、「入力値をアルファベットだけにする機能」なんて使わないことに気付く。入力値のサニタイズはMoony側では行わず、validationでエラーにするような感じでいいんじゃないか。となると、Moony_Filte…

プリフィルタ

Moony_Filterクラスを作ろうか、と考えた。作るかも。 フィルタ filterAlpha(アルファベット以外の文字を除去)とか 変換 toHiragana(ひらがなに変換)とか 使い方 アクションクラスでfilterメソッドを用意しておく 実行時に引数としてMoony_Filterのイン…

思ったまま、書いておく

「発掘!あるある大事典II」のデータ捏造問題について、苦情が大量に寄せられているらしい。気持ちはわからなくはないが、騙されていたことに対する自らの至らなさ、反省を感じることはないのだろうか。相手が正しくなかったからといって、それは自分が正し…

Zend Framework 0.7.0

Zend Framework 0.7.0をダウンロードしたら、incubatorにvalidationのためのクラスがたくさん入っていた。結構いいかも。localeに対応したのは結構ポイント高い。

アクションクラスの整理

アクションクラスのメソッドを以下のように整理しようかと。 メソッド名 機能 現行名 render テンプレート描画 render redirect 指定URLにリダイレクト redirect forward 指定アクションにリダイレクト redirectAction どうだろね。単にredirectActionって長…

テスト容易性

テストの容易性とかも少しずつ考慮していきたい。Moony自体のテストもそうだし、Moonyを利用したアプリのテストも同様。「手っ取り早い」仕組みを提供していきたい。

きれいなvalidation

んー、もうちょっとvalidationまわりをきれいに書けるようにしたい。validateメソッドとMoony_Validatorクラスに手を入れるしかないかなぁ。 validateRequired('name', '名前は必ず入力してください'); $v->render('common/error.php'); } } ?> 上記のように…

NHKの限界

NHKスペシャルの「グーグル革命の衝撃」、観た。「今さら何を言っているんだ」的な内容が続くのだけれど、番組自体のターゲットがwebに日常的に触れていない層だったのだろう。このあたりがNHKの限界なのかもしれない、と番組を観ながら何度も思った。

Moonyのロードマップ

とりあえず、0.14.xをベースにメジャーリリース(1.0.x)したい。できれば春ごろ。

フレームワークの簡略化

Moonyとは別にページコントローラタイプの簡単なフレームワークを試作していたら、動作がguesswork classicに似てきてしまった…。

Moony 0.14.0リリース

Moony 0.14.0をリリースしました。ダウンロードはSourceForge.jpからどうぞ。変更点は以下の通り: moonyコマンドの修正 実行時のinclude_pathにPEARディレクトリを指定するように修正 viewコンポーネントの導入 クラス追加: Moony_View ヘルパー関数の定義を…

MySQLのツール探し

MySQL向けのPSqlEditみたいな補完機能がついたSQL実行ツール、ないのかな。項目名とかテーブル名を入力するのが激しく面倒くさい…。追記その1: とりあえずMySQL AB謹製のMySQL Query Browserを使ってみることに。でもこれだとホストにログインして操作するの…

Javaアプリ

急にJavaアプリに興味が出てきた。PC上で動くアプリも作りたいなぁ。Eclipseで作るか、NetBeansで作るか。とりあえず使い慣れたEclipseでフォト蔵のクライアントアプリでも作ってみようかな。SWTを利用する感じで。Javaで作ればWindowsでもMacでも動くものが…

初ラボブログ

会社の方のblogに記事を書きました。

初開発合宿

土曜日、日曜日と会社の開発合宿に行ってきた。しかもテレビ局の取材付き。急だったのでテーマを絞り込めず、今度行くときはやりたいことを明確にしてから行けたらいいと思う。携帯電話向けのJavaアプリとか面白そうだなぁ。あと、個人的にはFlex2とかいじっ…

プロパティ

インスタンス固有の変数について、「プロパティ」と呼ぶのが妥当ではないかとid:elfさんと話をする。理由は、PHPの関数として「property_exists」が存在するから。確かに、PHPマニュアルに「member properties」と書かれているので、プロパティでいいのだろ…

割り切ったview

viewコンポーネントはPHPテンプレートを扱う1つだけでよいような気がしてきた。単純にMoony_Viewクラスを用意して、テンプレートの処理とviewヘルパー関数の定義を実装しておけばいいだけ。その方がMoonyっぽい。割り切ってしまっていいと思う。

普通に仕事していたら

ノートPCの筐体に腕が触れた。走る静電気。着ているセーターがいけないのか。

Moony_Cacheの今後

勢いで作ってしまったキャッシュモジュール。単にデータをserializeしてファイルに保存するだけ。PEAR::Cache_Liteの方が高機能だし使いやすい。それなのになぜ作ったかというと、レンタルサーバで使用する場合、PEARのモジュールを用意するのが面倒だから。…

viewコンポーネントの作りこみ?

viewコンポーネントを差し替え可能にして、好きなテンプレートエンジンと組み合わせられるようにしようか。 Moony_View Moony_View_Php extends Moony_View Moony_View_Smarty extends Moony_View とか。設定に応じて切り替えられるようにすればいいよね。ど…

コメントを何語で書くか

コメントを全部英語化するというのはどうだろう。エンコーディングの変換など、日本語を強く意識したフレームワークでそれが必要か、意味のあることなのか。

インスタンス変数が多いのは格好悪いような気がする

調子に乗って追加していたら、Moony_Actionクラスのインスタンス変数増えすぎ。 変数名 説明 $moony Moonyのインスタンス、動作設定 $request Moony_Requestのインスタンス $session Moony_Sessionのインスタンス $view Moony_Viewのインスタンス $cache Moo…

インスタンス変数?

無意識に「メンバ変数」と言っているが、「インスタンス変数」の方がPHPの場合通りがいいのかな? Javaの場合は「メンバ変数」ということが多い気がする。どうでもいいけど。

viewコンポーネント試作

viewコンポーネントを試しに作ってみている。テンプレートファイルの処理結果を取得する部分と、ヘルパー関数の定義をMoony_Actionクラスから移動。割としっくりくるような感じがしてきた。viewコンポーネント、きちんと作ろうかな。

reSizer

Windows上でウィンドウをキーボードで操作することができるソフト、reSizerをインストールしてみた。Windowsキー + 矢印キーでウィンドウを移動させることができるのだが、デュアルディスプレイの場合、ディスプレイをまたいだ移動をすることができない。残…

ヘルパーメソッド

テンプレートで使用するヘルパーに関しては、アクションクラスのメソッドとして実装してしまおうか。メソッドのプリフィックスに「h」("h"elper)でも付ければいいんじゃないか。 hInclude('common.php'); ?> hErrors(); ?> hHasError()): ?> いまいち格好…