ログ日記

作業ログと日記とメモ

HTML_Template_Flexy

loop機構を追加したものを上げた

http://github.com/nishimura/Fly自分で書いてるコードは全てforeachじゃなくてloopになってるから、取り敢えずloop追加だけやった。 loopはFlexyの前に使っていたPHP4 テンプレートクラスライブラリ改 - tmpl2.class.phpに影響されてる。 変数が少なくてコ…

JavaScript連携できたのね & PEAR依存なしのFlexy

もう3、4年Flexyを使っているが、ベータ版の頃からJavaScript連携はできたらしい。 JavaScriptにPHPの変数を入れたいけどFlexyだとスクリプトタグの中は見てくれないんだよなーと思っていたところ。 Release date: 2003-12-19 21:52 UTC Release state: beta…

FlexyのtemplateDirは複数指定できる

templateDirを複数指定したい場合はどうすればいいのか…独自にfile_existsで調べていってファイルが存在したディレクトリをtemplateDirに指定すればいいのか…とか色々考えてたけど、ソースを見たら元々複数指定できるようになっていることに気付いた。なんて…

flexy改造動画

巷では1000人スピーカプロジェクトというのが流行ってるらしい。 そっち方面のことはあまり知らなかったんだけど、flexyの話が出るということなのでちょっと調べてみた。 もう3回目になるんだね。 http://ja.doukaku.org/wiki/index.php/1000speakers phpLex…

久しぶりにflexyキーワードを見てみると・・

何気なく HTML_Template_Flexy のキーワードを見ていたら、パーサを解析している人を発見した!http://d.hatena.ne.jp/maru_cc/20080316/1205690507 どうやら2005年からTokenizer.lexをいじる日本人は増えていない模様。 私の場合はloop作ってid属性の動作変…

チェックボックスの操作でsetValue(true)としてはいけない

勘違いしてた。 setValue(true); でチェックがオンになるんじゃないんだな。動いてたのは偶然。 flexy内部では attribute['value'] == $value){ $this->attribute['checked'] = true; } という操作が行われている。 どういうことかと言うと、idでエレメント…

toHtmlnoClose()は遅い

メモ。 フォームが数個なら問題ないが、テーブルの一行に一個のフォームがある形式だとフォームタグに flexy:ignore を入れるとだいぶ早くなる。

テンプレートにスコープ解決演算子が欲しい

例えばこんなの。 get('item'); $item = $itemDao->getVo($this->itemId); $this->oldItem = clone $item; // $item->itemValue = 'old value'; if (!ItemChanger::change…

チェックボックスを配列で扱う場合

<input type="checkbox" name="checkA[]" value="A1"> <input type="checkbox" name="checkA[]" value="A2"> <input type="checkbox" name="checkB[]" id="check1" value="B1"> <input type="checkbox" name="checkB[]" id="check2" value="B2"> こういう場合。 flexyではname属性値の最後二文字が[]の場合、setValue()の引数が配列でなかったら何も処理が行われない。 例えi…

idとname属性を両方有効にした場合に同じ値を設定できるようにした

なんでHTML_Template_Flexyでid属性を読み取るように改造したのか忘れてしまった。 当時日記に書いてたよなーと思って検索してみるとやっぱり書いてた。 こういうとき日記に自分用メモがあると考え方が分かって便利。 ○○前のコードは他人のコード。と同じよ…

ループ中のフォーム操作

せっかくフォームを操作できるflexyを使っているのに、ループ中だと使えないのが困る。 foreach中で {loop:forms} <tr> <td><input type="text" name="foo" value="{foo}"></td> <td> <select name="bar"> {loop:bar} <option value="{valueKey}">{valueText}</option> {endloop:} </select> </td> </tr> {endloop:} とかやらなくちゃいけない。 # {loop:var}は独自拡張なので{foreach:key…

キーワード

HTML_Template_Flexyのキーワードを作ろうとしたけどちょっと迷った。 「site:d.hatena.ne.jp HTML_Template_Flexy」で検索したら自分の日記出過ぎorz あまり需要ないんかな・・。 まぁ作ってみるか。。 〜〜〜〜ということで作った。 日本語がおかしいよう…

Flexyの使い方

http://pc8.2ch.net/test/read.cgi/php/1118799352/126-127 freeze()は使わない方が良い、と。 http://pc8.2ch.net/test/read.cgi/php/1118799352/656-664 scriptタグも厳しいよ、と。 [Maple-user: 207] Re: Flexyの使い方について {foreach:action.getBran…

フォームのタグの制御構造

inputタグにflexy:ifと書いたら、flexy:ignoreをつけろと怒られる。 flexy:ignoreをつけるってことはタグが解析されないんじゃないだろうか。。 でもvalue属性はちゃんと代入されている。 うーん謎だ。 ここを素通りすると後でハマりそうな予感・・。

CPU100%の原因が判明した

プロファイラを使ってやっと分かった。 Flexyでは@(エラー制御演算子)を使っている箇所がある。 で自分のフレームワークでは標準エラーを書き換えてるんだけど、エラーが発生するたびにdebug_backtrace()を呼び出している。 @がついているから表示はされな…