フレームワーク
昔のコードを触る機会があった。 PHPの自作フレームワーク現状まとめ - ログ日記 この辺のやつ。 もう7年も前か…。当時はテンプレートエンジンに変数を渡す場合、アクションコントローラーでメソッドを呼び出すのが流行っていた。 set('foo', 1); } } や foo…
最近、プログラムのディレクトリレイアウトというかファイルを置く場所を変えようと試みている。 旧来のMVC的な構造だと、ControllerやModelのディレクトリを分ける、レイヤーごとにまとめる、という感じになると思う。 商品情報表示画面、その管理画面、CSV…
顧客は本当に欲しいものは知らない、と言うけれど同じような症状だ。 かゆいところに手が届かない。 自作フレームワークがつぎはぎになってきたのでカッとなって作ったやつ。 PHPの小規模用テンプレートエンジンを作った - より良い環境を求めて なんかアノ…
https://github.com/nishimura/laiz2 基本方針 DB設計最優先 HTML構造優先 コード量を少なく 大抵の処理はPage(Action)クラスに書く。いわゆるAction肥大化。もし「この二つのテーブルは大抵joinして取得している」という状況になったらModelを作っても良い…
ソースはここ: https://github.com/nishimura/laiz2composerの使い方を見るのも兼ねてサンプルアプリを置いたのですぐにインストールできるはず。 https://github.com/nishimura/laiz-sample-task composer.phar create-project laiz/laiz-sample-task laiz-…
PHPのフレームワークを考えている。 2006年からLaizを作り始めたわけだけれど、普通に利用する機能と実験的機能がごちゃ混ぜでフレームワークが肥大化している。 特に、PHP5.3用に変更したときにPHP4のコードをそのまま持ってきたり新しい仕組みを取り入れた…
今までPHPで何かを作るときはLaizを使っていたわけだけれども、レンタルサーバー的な構成だと使いづらい。 数ページのフォームとかだとPATH_INFOに対応するためにApache設定ファイルにAliasMatchを書いたりフレームワーク設定ファイルを書いたりするのが面倒…
今更ながら。 バリデーターを書く場所について悩んでいる。 バリデーター(or フィルター) アクション ビジネスロジック という階層があるとき、ビジネスロジックで何らかのエラーがあった場合はエラー画面を出したい。 具体的には、 +----------+ |ユーザ…
オートロード関数を登録する。 動的にネームスペースを生成してクラスを定義してオブジェクトを生成する。
Maple再起動で振り返る国内PHPフレームワーク戦争の歴史 – この先生きのこるには ここにフレームワークの歴史が。 今もここの第3世代のまま進んでる感じなんだろうか。もう何年も前の記事だけれども。 xFrameworkPX コアの開発は一人だったような…たしか。 h…
lennyにパッケージでインストールするには、sources.listに以下の行を追加すればいいらしい。 deb http://php53.dotdeb.org lenny all deb-src http://php53.dotdeb.org lenny all それから、PHP5.3の新機能を使ってコードを書くにはマニュアルや解説記事を…
Laizを軽く修正したらいけるかなーと思ったけど既存システムがそのまま動くように変更するのは無理だった。それならいっそのことゼロから作り変えてしまおうかと…。 最近のフレームワーク事情はさっぱり分からなくなってしまった。symfonyが流行ってるのかね…
フレームワークを作っていくのに適しているのは、大きいプロジェクト一つとがっちり結びつくよりも小さいプロジェクトと大量に関わることではないか。 百数十ページあるサイトを作った後に数ページのサイトを作ってて、何となく思った。 # でもきっとまとま…
アクションクラスに関しては、何やらsymfonyのアクションクラスが良さそうな雰囲気。 マニュアル眺めただけで使ったことないけど。 バリデータは大抵のフレームワークで1バリデータ1ファイルになってる気がする。 個人的には数行の処理のためにファイル作る…
実際に使用する事を考えると少し考慮しないといけない部分がある。PHP5でのタイプヒンティングはプリミティブ型には対応していない事。array型はPHP5.1で導入されたけどオブジェクトのみが対象なので、文字列等を使われないようにする必要がある。あと、例に…
svn co https://rhaco.svn.sourceforge.net/svnroot/rhaco/trunk rhacoとしてRhaco::import()の中を見る。特別なことはやってない感じ。 あぁ・・そうか、納得した。
続き。 pear install momiji/Momiji_generator-alphaコマンドを使えるようにして、適当なプロジェクトディレクトリを作る。 cd public_html mkdir momiji cd momiji momiji webappsmartyは入れていないので--smartyオプションは無しでやってみる。 cd webapp…
id:reverielaby さんが公開しているのに気付いた。 http://www.momiji-project.org/ こういう色んなセンスが欲しい・・。 取り敢えずインストール pear discover-channel pear.momiji-project.org pear install momiji/Momiji-alpha http://www.momiji-proje…
消えたorz書いてる途中にブラウザが落ちた・・。 がんがって思い出して書こうorz コメントを貰ったからZend FrameworkをDLしてみた。 バージョン1.0.0が出てるのを知らなかったorz 前にちょこっと読んでいて手元にあるやつは0.1.3だから中身は全然違うようだ…
なぜmapleを参考にしていたのにフィルタで全てを構成するようにしなかったのだろう・・あまり考えたことないな。 たぶん初めはguesswork的な軽いものを作ろうと思っていたからだろう。 しかし改良を重ねていくうちに設定が増える増える・・。 現在では class…
かなりmapleいじってるぽい。 http://d.hatena.ne.jp/reverielaby/20070514#1179157604 これは良いな。 [filter] loginRequired = LoginRequiredと書いてフィルタを作るよりも便利な気がする。 あぁー・・mapleだと[SessionValidate]の設定はSessionValidate…
昨日書いたPiece Frameworkの作者は iteman's blog ここの人だったのか。 そんでNet_UserAgent_Mobileの作者だったのか。そういえば何ヶ月か前に知り合いがPieceの作者と話したとか言ってた。めっちゃ聞き流してしまった。気さくな人だったとか。 前は画面遷…
迷ったあげくフレームワーク基本設定の読み込みクラスを作ることにした。 その前に、kaedeは定数を使わないようにするというのを思い出して、参考に眺めてみる。ディレクトリ構成 Core DI Reflection Util data tests非常にすっきりしている。Coreではなくて…
URLとディレクトリ階層のマッピングが気になって進まない。このまま進めていいものかどうか。 Webメールなんかは /WebMail /Members/Webmail /Members/Premium/Webmailなどサイトごとに色々なパスが考えられ、独自にカスタマイズする部分も多くない。 ビジネ…
PATH_INFOなどを利用するフレームワークを使った場合、URLとテンプレートファイル名の関連性が薄くなる。 今の環境ではこれが問題になることが多い。 例えば「ログイン後のHTMLを修正したいけどそのファイルはどこ?」と聞かれたり「htmlをアップしたけど反…
以前のエントリに反応をもらいました。 http://blog.hawklab.jp/item-111.html PEAR_ErrorStackならpushメソッドで配列が使える他に、ContextCallbackを使うことでエラー発生元とは無関係な情報を持ってくることもできる。フレームワークで言うと、エラー発…
[Maple-dev: 256] Kaede(仮称)プロジェクト長いけど引用 クラスの命名規則をPEAR準拠に エラー処理の標準化(PEAR_ErrorStack) メッセージリソースの外部化 単体テスト実施の徹底 フレームワーク設定の非定数化 DIContainerの機能強化 Scarletのサブセッ…
$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に転…
[Maple-user: 405] 3.1と3.2の互換性について ユーザが多いと改良改善が大変ですねぇ・・。 PHPのフレームワークは何十個もあるかもしれないけれど、それはそれでいいと思ってきた。 本当の初心者は困るかもしれないが、フレームワークの動作がある程度分か…