ログ日記

作業ログと日記とメモ

フレームワーク

PHPの開発環境とライブラリと振り返りと近況

昔のコードを触る機会があった。 PHPの自作フレームワーク現状まとめ - ログ日記 この辺のやつ。 もう7年も前か…。当時はテンプレートエンジンに変数を渡す場合、アクションコントローラーでメソッドを呼び出すのが流行っていた。 set('foo', 1); } } や foo…

プログラムの分け方とディレクトリ構造

最近、プログラムのディレクトリレイアウトというかファイルを置く場所を変えようと試みている。 旧来のMVC的な構造だと、ControllerやModelのディレクトリを分ける、レイヤーごとにまとめる、という感じになると思う。 商品情報表示画面、その管理画面、CSV…

ぼんやり振り返り

顧客は本当に欲しいものは知らない、と言うけれど同じような症状だ。 かゆいところに手が届かない。 自作フレームワークがつぎはぎになってきたのでカッとなって作ったやつ。 PHPの小規模用テンプレートエンジンを作った - より良い環境を求めて なんかアノ…

PHPの自作フレームワーク現状まとめ

https://github.com/nishimura/laiz2 基本方針 DB設計最優先 HTML構造優先 コード量を少なく 大抵の処理はPage(Action)クラスに書く。いわゆるAction肥大化。もし「この二つのテーブルは大抵joinして取得している」という状況になったらModelを作っても良い…

PHPのフレームワークを作った

ソースはここ: https://github.com/nishimura/laiz2composerの使い方を見るのも兼ねてサンプルアプリを置いたのですぐにインストールできるはず。 https://github.com/nishimura/laiz-sample-task composer.phar create-project laiz/laiz-sample-task laiz-…

PHPのフレームワーク再考

PHPのフレームワークを考えている。 2006年からLaizを作り始めたわけだけれど、普通に利用する機能と実験的機能がごちゃ混ぜでフレームワークが肥大化している。 特に、PHP5.3用に変更したときにPHP4のコードをそのまま持ってきたり新しい仕組みを取り入れた…

PHPの小規模用テンプレートエンジンを作った

今までPHPで何かを作るときはLaizを使っていたわけだけれども、レンタルサーバー的な構成だと使いづらい。 数ページのフォームとかだとPATH_INFOに対応するためにApache設定ファイルにAliasMatchを書いたりフレームワーク設定ファイルを書いたりするのが面倒…

バリデーターあれこれ

今更ながら。 バリデーターを書く場所について悩んでいる。 バリデーター(or フィルター) アクション ビジネスロジック という階層があるとき、ビジネスロジックで何らかのエラーがあった場合はエラー画面を出したい。 具体的には、 +----------+ |ユーザ…

タイプヒンティングからオブジェクトの配列をインジェクションするためにネームスペースを使って動的にクラスを生成する

オートロード関数を登録する。 動的にネームスペースを生成してクラスを定義してオブジェクトを生成する。

オレオレフレームワークのメモ

Maple再起動で振り返る国内PHPフレームワーク戦争の歴史 – この先生きのこるには ここにフレームワークの歴史が。 今もここの第3世代のまま進んでる感じなんだろうか。もう何年も前の記事だけれども。 xFrameworkPX コアの開発は一人だったような…たしか。 h…

PHP5.3をインストールしたついでにlithiumのコードを読む

lennyにパッケージでインストールするには、sources.listに以下の行を追加すればいいらしい。 deb http://php53.dotdeb.org lenny all deb-src http://php53.dotdeb.org lenny all それから、PHP5.3の新機能を使ってコードを書くにはマニュアルや解説記事を…

PHPのフレームワーク作りたい熱がまた出てきた

Laizを軽く修正したらいけるかなーと思ったけど既存システムがそのまま動くように変更するのは無理だった。それならいっそのことゼロから作り変えてしまおうかと…。 最近のフレームワーク事情はさっぱり分からなくなってしまった。symfonyが流行ってるのかね…

ふと思ったこと

フレームワークを作っていくのに適しているのは、大きいプロジェクト一つとがっちり結びつくよりも小さいプロジェクトと大量に関わることではないか。 百数十ページあるサイトを作った後に数ページのサイトを作ってて、何となく思った。 # でもきっとまとま…

クラスの定義方法メモ

アクションクラスに関しては、何やらsymfonyのアクションクラスが良さそうな雰囲気。 マニュアル眺めただけで使ったことないけど。 バリデータは大抵のフレームワークで1バリデータ1ファイルになってる気がする。 個人的には数行の処理のためにファイル作る…

自作フレームワークの機能を書いてみる

実際に使用する事を考えると少し考慮しないといけない部分がある。PHP5でのタイプヒンティングはプリミティブ型には対応していない事。array型はPHP5.1で導入されたけどオブジェクトのみが対象なので、文字列等を使われないようにする必要がある。あと、例に…

Rhacoのimport関数が気になる

svn co https://rhaco.svn.sourceforge.net/svnroot/rhaco/trunk rhacoとしてRhaco::import()の中を見る。特別なことはやってない感じ。 あぁ・・そうか、納得した。

momijiを使ってみる

続き。 pear install momiji/Momiji_generator-alphaコマンドを使えるようにして、適当なプロジェクトディレクトリを作る。 cd public_html mkdir momiji cd momiji momiji webappsmartyは入れていないので--smartyオプションは無しでやってみる。 cd webapp…

mapleぽいフレームワーク

id:reverielaby さんが公開しているのに気付いた。 http://www.momiji-project.org/ こういう色んなセンスが欲しい・・。 取り敢えずインストール pear discover-channel pear.momiji-project.org pear install momiji/Momiji-alpha http://www.momiji-proje…

Zend Framework

消えたorz書いてる途中にブラウザが落ちた・・。 がんがって思い出して書こうorz コメントを貰ったからZend FrameworkをDLしてみた。 バージョン1.0.0が出てるのを知らなかったorz 前にちょこっと読んでいて手元にあるやつは0.1.3だから中身は全然違うようだ…

maple式フィルタチェーンをやめた理由

なぜmapleを参考にしていたのにフィルタで全てを構成するようにしなかったのだろう・・あまり考えたことないな。 たぶん初めはguesswork的な軽いものを作ろうと思っていたからだろう。 しかし改良を重ねていくうちに設定が増える増える・・。 現在では class…

mapleな人を発見した

かなりmapleいじってるぽい。 http://d.hatena.ne.jp/reverielaby/20070514#1179157604 これは良いな。 [filter] loginRequired = LoginRequiredと書いてフィルタを作るよりも便利な気がする。 あぁー・・mapleだと[SessionValidate]の設定はSessionValidate…

引き続きPiece Frameworkについて

昨日書いたPiece Frameworkの作者は iteman's blog ここの人だったのか。 そんでNet_UserAgent_Mobileの作者だったのか。そういえば何ヶ月か前に知り合いがPieceの作者と話したとか言ってた。めっちゃ聞き流してしまった。気さくな人だったとか。 前は画面遷…

kaedeソース探索

迷ったあげくフレームワーク基本設定の読み込みクラスを作ることにした。 その前に、kaedeは定数を使わないようにするというのを思い出して、参考に眺めてみる。ディレクトリ構成 Core DI Reflection Util data tests非常にすっきりしている。Coreではなくて…

アクションクラスは使い捨て?

URLとディレクトリ階層のマッピングが気になって進まない。このまま進めていいものかどうか。 Webメールなんかは /WebMail /Members/Webmail /Members/Premium/Webmailなどサイトごとに色々なパスが考えられ、独自にカスタマイズする部分も多くない。 ビジネ…

URLと実際のファイルのマッピング

PATH_INFOなどを利用するフレームワークを使った場合、URLとテンプレートファイル名の関連性が薄くなる。 今の環境ではこれが問題になることが多い。 例えば「ログイン後のHTMLを修正したいけどそのファイルはどこ?」と聞かれたり「htmlをアップしたけど反…

kaedeについてメモ

以前のエントリに反応をもらいました。 http://blog.hawklab.jp/item-111.html PEAR_ErrorStackならpushメソッドで配列が使える他に、ContextCallbackを使うことでエラー発生元とは無関係な情報を持ってくることもできる。フレームワークで言うと、エラー発…

kaedeの全貌が!?

[Maple-dev: 256] Kaede(仮称)プロジェクト長いけど引用 クラスの命名規則をPEAR準拠に エラー処理の標準化(PEAR_ErrorStack) メッセージリソースの外部化 単体テスト実施の徹底 フレームワーク設定の非定数化 DIContainerの機能強化 Scarletのサブセッ…

O/RマッパーとビューをトリガにしたイテレータでDB接続

$map = array('voPropertyName' => 'tableColumnName', ... ); という配列があるとき $bind = array(); // $stmt = PDOStatement foreach ($map as $key => $value){ $binds[$key] = $$key = null; $stmt->bindColumn($value, $binds[$key]); } このようにbi…

アクション名、階層

Foo_BarとFoo_Bar_Baz(Foo/Bar.phpとFoo/Bar/Baz.php)を同時に使う状況。# 読みにくいな・・ Members.php Members.ini Members/default.ini Members/Top.php Members/Top.ini Members/Menu.php Members/Menu.iniここでMembersアクションはMembers_Topに転…

PHPのフレームワークはやっぱり自作がいいと思った

[Maple-user: 405] 3.1と3.2の互換性について ユーザが多いと改良改善が大変ですねぇ・・。 PHPのフレームワークは何十個もあるかもしれないけれど、それはそれでいいと思ってきた。 本当の初心者は困るかもしれないが、フレームワークの動作がある程度分か…