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

トランザクショントークンの続き

いちいちhiddenフィールドを書くのは面倒だし、項目名を間違える可能性があるのでSmartyのpluginを作ってみた。これもMoony 0.8.1で追加予定。使い方はこんな感じ: {moony_token xhtml=true}テンプレートのform内に上記のように記述すると、以下のように展開…

トランザクショントークン

トランザクショントークンの生成/チェック機能を実装してみる。この機能はMoony 0.8.1で追加される予定。Moony_Tokenというクラスを新たに追加、メソッドを2つ用意する。 generate(&$session, &$response) セッションが開始されている場合 ランダムな文字列…

0.8.0リリース

Moony 0.8.0をリリースしました。2件のバグ修正を含みます。また、クラス構造が0.7.xから変更になっているので注意してください。ダウンロードはSourceForge.jpからどうぞ。 変更点は以下のとおり: Moony_DB::rollback、Moony_DB::commitの各メソッドを実行…

Moony_Downloaderクラス

Moony 0.8.0からMoony_Downloaderクラスを追加する予定です。明示的に呼び出して使用することは想定していません。Moony_Controllerの内部で使用されます。 ファイルをダウンロードさせたい場合は: <a href="/index.php/download">ダウンロード</a>上記のようなリンクがある場合、 class Downlo…

Moony_Uploaderクラス

Moony 0.8.0からMoony_Uploaderクラスを追加する予定です。使用例は: <form action="/index.php/upload" enctype="multipart/form-data" method="POST"> <input type="file" name="userfile" /> <input type="submit" value="send" /> </form>上記のようなフォームがある場合、 class UploadAction extends Moony_Action { function execute($request, $respons…

会社の場所を出してみるテスト

http://base.alpslab.jp/を使ってみる。 おお、便利だ。

Firefoxのフォント

少し前から、FirefoxのデフォルトフォントをArisakaに指定。ClearTypeを有効にするとなかなか見やすい感じで気に入っている。ちなみに、見づらいと感じたらClearType Tunerを使うと文字の線の太さが調整できる。

テンプレートエンジン

PHP

個人的にテンプレートエンジンに期待するのは以下の点: テンプレート内の変数に割り当てた値が表示されること 条件分岐を記述するための制御構造を持っていること 繰り返し処理(ループ)を記述するための制御構造を持っていること 他のテンプレートファイル…

0.8.xに向けて

以下のような構造の変更を考えています: Moony_Contextの廃止 Moony_SessionのインスタンスはMoony_Requestが保持 getSession/setSessionメソッドを実装 PATH_INFOを取得するアクセサをMoony_Requestに移動 getPathInfo/setPathInfoメソッドを実装 Moony_Res…

PATH_INFOが取れない場合

PHP

Windows上のlighttpdでCGIとしてPHPを動作させる場合、PATH_INFOがうまく取得できない(昨日の記事)。調べてみると、そもそも$_SERVERにPATH_INFOというキーが存在しないようだ。REQUEST_URIとSCRIPT_NAMEは存在するので、それぞれの差分を取ればPATH_INFO…

0.7.2リリース

Moony 0.7.2をリリースしました。1件のバグ修正を含みます。ダウンロードはSourceForge.jpからどうぞ。 変更点は以下の通り: テンプレートファイルが見つからない場合、httpのステータスで500ではなく404を返すように修正(バグ修正) Moony_Viewにメソッドa…

lighttpdを試してみたけど

PHP

http://b.astronote.jp/log/eid62.htmlを参考にlighttpdをWindowsにインストール。単純なPHPなら動くのだけれど、PATH_INFOが取得できない。FastCGIで動作する場合は設定すれば取得できるようだが、単なるCGIとして動作させた場合は取得できない模様。Window…

データベースアクセスクラス

やっぱりDBアクセス用のライブラリがないと不便なので、簡易的なクラスを作ることに。 次のMoonyのリリースに含める予定、クラス名はMoony_DB。 内部でPEAR::DBを利用 プレースホルダーを含むSQLを実行可能 簡単なトランザクション制御が可能 検索メソッドを…

Feedpathについて

feedの購読にはBloglinesを使っているのだけれど、ふと思いついてFeedpathのアカウントを作ってみた。以下感想: 登録時にエラー発生(メール送信エラーらしい、3回目で登録成功) エラーの原因が書いていないので何のことやら結局わからず feed参照画面がJav…

mb_convert_variables

PHP

mb_convert_variablesっていう関数があることを知った。渡した変数(配列を含む)の文字エンコーディングの変換をしてくれる。 使い方は: mb_convert_variables('UTF-8', 'EUC-JP', &$src);参照渡しで変換したい変数を参照渡しで引数に設定する。今まではこ…

Borland、IDE事業を売却へ

BorlandがIDE事業を売却する予定らしい。そういえば初めて使ったJavaのIDEはJBuilderだったなぁ…とか思いつつ。便利だったけど、それなりに動作は重かった。今ではEclipseがないとJavaのコーディングなんてできないかもしれない。いいような悪いような。

チュートリアルの書き方

チュートリアルを書こうと思ったんだけど、バージョンが変わると有効でなくなってしまう記述が多く含まれてしまう可能性があることに気づいた。定期的に修正を加えるか、あるいはアーカイブとして各バージョン用のチュートリアルを残していくか。いろいろ書…

チュートリアル - フロントコントローラ

Moonyを動作させるためには、フロントコントローラが必要です。フロントコントローラには3つの役割があります。 PATH_INFOを受け取ること Moonyを起動するための設定を行うこと Moonyのインスタンスを生成し、起動させること 例えば、フロントコントローラを…

0.7.1リリース

Moony 0.7.1をリリースしました。バグFixとほんの少し機能追加です。 ダウンロードはSourceForge.jpからどうぞ。変更点は: Moonyクラスでエンコーディングに関する余計な処理を行っていたのを除去(バグ修正) Moony_Config.phpに「リクエストパラメータのエ…

0.7.0リリース

Moony 0.7.0をリリースしました。 今回のバージョンからPEARパッケージ形式でのリリースとなります。インストールする際、 $ pear install /path/to/Moony-0.7.0.tar.gzとすればPEARのディレクトリにインストールされます。ダウンロードはSourceForge.jpのペ…

リダイレクトの方法

PHP

念の入ったリダイレクトの方法が以下のページに記載されている。確かにここまでやれば完璧だろう。 http://www.zend.com/tips/tips.php?id=246&single=1 function forceRedirect($url,$die=true) { if (!headers_sent()) { ob_end_clean(); header("Location…

Moony_View extends Smarty

Moony_ViewからSmartyを操作するメソッドについて考えていたら、突然ものすごく面倒になった。メソッド名とか、機能の取捨選択とか考えているときりがない。そこでMoony_ViewをSmartyのサブクラスとして実装を変更してみた。サブクラスなので、複雑な機能を…

PEARパッケージの作り方

PHP

MoonyをPEARのパッケージにしてみるテスト。 まず、PEAR::PEAR_PackageFileManagerを利用してpackage.xmlを作成する。 まだalphaバージョンの1.6.0a6をインストール。 $ pear config-set preferred-state alpha $ pear install --alldeps PEAR/PEAR_PackageF…