Laiz

グローバル関数

ネームスペース代わりのクラス、例えば if (!LaizUtils::file_exists($path)) return false;みたいにやった方がいいのかな。 関数が増えてきたら標準関数拡張用クラスを作ってみようか。。

include_path

開発中のmapleを参考にしてinclude_pathを柔軟にしてみる。 mapleのディレクトリ構成だと webapp/core でコアを書き換える。Laizの場合はコアもwebappも共用(?)したいのでこの方法がうまくいかなさそう。 なのでディレクトリ構成を laiz/core laiz/webapp…

リファクタリングメモ

放っておくと事態は悪化するので、重い腰を上げて直すことにした。 まずはファイル名の変更。 Hoge.class.php を Hoge.php にする。 そしてテストコードを書きながら気になった部分をリファクタリング。mapleみたいにコアを差し替えたりするわけじゃないので…

コンテナ

何だか違和感が無くならない。 普通のコンテナを使ったことがないのにDIコンテナを使おうとしたからだろうか。 どうもグローバル変数的に乱用してる気がする。 これに最初に気付いたのは後からテストコードを書くときで、一つのクラスをテストするのに何個も…

リファクタリングしたい・・

クラス名とファイル名を書き換えたい衝動に駆られる。 しかしテストコードが少ししかない・・。 ファイル名を書き換えるならテストコードがあったとしてもそれも書き換えないとダメか。 hoge.class.php => hoge.php DIContainer => SimpleContainer or LaizC…

エラー制御

今日のハマりどころ。 フレームワークのエラー制御と標準のエラーハンドラを統合するところで気が付きにくいポイントがあった。 set_error_handler()でユーザ指定の関数を登録すると、@(エラー制御演算子)がついてる場合でもエラーが表示されてしまう。標…

受け入れテスト+アップロード

simpletestでグリーンのバーが表示されたら、アップロードボタンを表示するようにした。 それを押したらrsyncで本番用にアップロードが開始される。 デメリットは、例えば一文字変更しただけでも全てのテストが終わるのを待たないといけないところ。 PHPの手…

確認画面

フォームの要素が何十個もあったら、すこぶる面倒だ。 フレームワークを使って設定ファイルに変数を羅列するだけで済んでいるんだけれど、それでも面倒だ。 現在たった2画面での受け入れテストのassert()が400個・・・手動でテストコード書いてたらやる気な…

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

mixiにレスしながら思った。 トランザクショントークンで使った変数は破棄すべきか?破棄するとしたらそのタイミングは? トランザクショントークンを破棄してその後DBにデータを登録しようとしているときに、二重クリックされたら・・。 mixiではセッション…

リファクタリング。。。

http://k-holy.sakura.ne.jp/fp/index.php?id=06070002 こちらで紹介されていたので、自分のコードを見直してみると・・・自分のコードが読みにくい。。。Viewは長い間見てなかったからすっかり忘れてしまった。 そして意味のないコードを何カ所か発見。。 V…

テストの位置付け

フレームワークにテスト機能を組み込んだ方がいいんだろうか。 アクションの一つで実装した方がさっぱりするような気がしてきた。 http://www.example.com/Test/FooActionみたいな感じで。 そうすると他のWebサイトのテストも出来るんだよね。 それならもう…

Todo

メモ ユニットテスト - 学生サーバ管理者メモ アクションのテストと全体のテストを出来た方がいいなーと思いつつ全く手つかず。ずっとKernelソースとにらめっこしてましたよ。。 しかし夏から大きめのシステムを作るかもしれないので、それまでにはテストも…

データ構造

アクションクラスは、リクエストを格納しておく構造体のようなもの。 なのに少なからず処理が入っている。 本当はデータと処理を分けた方がいいんだろう。 そういう意味で(最近のは見てないが)Mojaviのやり方は理にかなっている。 アクションにメンバ変数…

コンバータ完成

やっと一通りの機能が揃った。 で、簡単なページほどフレームワークを使うメリットがあるかもしれない。 単純なチェックと表示ならPHPコードを書く必要がなくなった。 郵便番号入力フォーム作成 http://blog.bmedianode.com/2005/04/zend_certificat.html こ…

自動設定強化

アクションクラスが無くてもテンプレート変数を設定できるようにしてみた。 コンテナのクラス名はDIContainerにしてたけど、もうインジェクションでもないな。。 これでフォームの入力画面のためにいちいちクラスを作ったりしなくても、適切にエラーメッセー…

バリデーションの設定ファイル

今更ながら、Apacheの設定ファイルって良くできてるって思う。 XMLのいいとこ取りだ。 でもあそこまでするほどじゃないので [validator] error = InputAction varName:validator[:stopper[:varNameOfErrorMessage] = "エラーメッセージ"っていう形式がいいか…

コードジェネレータ

下の日経SYSTEMSの記事でも、Rails以後のフレームワークとしてコードジェネレータが備えられているっていう項目が挙げられてたんだけどさ。 必要なのかな。 それが当たり前になってくるとコードジェネレータを使えない環境のことが考慮されなくなるような。 …

設定ファイルの書式

今までini形式で問題なかったんだけど、バリデーションをしようと思ったら急に不便に感じてきた・・。 mapleの書式も慣れたら早そうだけど一見何が何だか分からないもんなぁ。 yaml見てたら良さそうなんだけど、こっちはyaml自体の書式を覚えないといけない…

アクション転送によるフィルタの繰り返し

今は グローバルアクションフィルタ アクションフィルタ アクション という順番で処理が行われている。 ここにアクション転送が入ると グローバルアクションフィルタ アクションフィルタ1 アクション1(アクション2に転送) グローバルアクションフィルタ ア…

アップしてみる

Laizフレームワーク http://www.n314.com/Laiz/pukiwiki/ 今更フレームワークを公開してどうするって感じもありますが・・。 まぁ特に広めるつもりもなく、内部で使う用ですね。。 某N○T系の手伝いに来た人のためにもマニュアルあった方がいいかなーと思って…