プログラムに書くinclude_pathの追加
set_include_path(get_include_path() .PATH_SEPARATOR. '/path/to/something');
これで現在のinclude_pathを消すことなく追加できる。
勝手にクオートがエスケープされてる
フォームからこんな情報渡すと
I say "Hello" || phpに渡って来たとき(?)に >|| $greeting = $_GET['message']; echo $greeting; // I say \"Hello\";
とか勝手にクオートをエスケープするためにバックスラッシュが足されてる。
何でそんなことしてんの。
ということでstripslashes()を使って妙なバックスラッシュを削除。
$greeting = stripslashes( $_GET['message'] ); echo $greeting; // I say "Hello"
stripslashes()だと自分で書いたクオートの前のバックスラッシュは削除されてなかった。
例えば以下はそのままバックスラッシュ付きで表示された。
I say \"Hello"
よし。
getParams()優先順位
zendframeworkのgetParams()の優先順位メモ。
- GET
- POST
- COOKIE
- SERVER
- ENV
つまりENVの情報はGETで書けば上書きされる、ってことね。
その辺はちゃんとgetEnv()やらで取った方がいいということか。
fetchRow
以下のようには出来ない。
$res = $db->select() ->from('user') ->limit(1,0) ->query() ->fetchRow();
こう↓書くらしい。
$sql = $db->select() ->from('user') ->limit(1,0); $res = $db->fetchRow($sql->__toString());
なんで?メソッドチェーンでそのまま繋げた方がいいんじゃないの?
もしかしてみんな素のSQL文書いてる?
$res = $db->fetchRow('select * from user limit 0,1');
まあそっちの方が好きだからいいんだけど。
ところでfetchRowの場合でも、limitかけないとテーブル全データ取得するんだろうか。
なんか怖いからlimitかけてる。
モジュールごとにErrorControllerを分ける方法が分からん
どうやるんだ。
つーかできるよね?
ErrorControllerの方で判断勝手にしようと思ったけど
if ( $this->getRequest()->getModuleName() == 'module1' ) { }
$this->getRequest()->getModuleName()には'default'が入ってた。
まあそりゃそうなるのか。呼び出されてるのは/modules/default/controllers/ErrorController.phpやからね。
もうしょうがないからとりあえず各モジュールから自分のモジュール名をmodulenameとかセットして、それを見てErrorControllerの方で判断してる。
他に干渉しないように、というのがモジュールのコンセプトなのに良くないな、とは思いますよ。