PHP HACKS
2006/07/13 木曜日 - 11:40:10 by webmaster誰かに「こう書きなさい」って教わったわけじゃないから、どうしても自己流コーディングになりがちなんだけど、この本は今まで知らなかったことが結構あって面白い。
PHPはまだまだ奥が深い。
デザインパターンのお勉強をきちんとしましょう
誰かに「こう書きなさい」って教わったわけじゃないから、どうしても自己流コーディングになりがちなんだけど、この本は今まで知らなかったことが結構あって面白い。
PHPはまだまだ奥が深い。
デザインパターンのお勉強をきちんとしましょう
ActionClassのPerformメソッドとかで遷移名を指定するんだけれど、例えば、こんな場合。
function perform()
{
if ( $this->af->validate() == 0) {
return 'hogehoge'
}
return 'hoge';
}
アクションフォームのValidate()でエラーが無い場合、次に処理されるのはhogehogeのActionClassだと思ってたら、
hogehogeのViewClassなのね。
飛び先のActionClassから処理をさせる場合の処理を考えてあげないといけないかも知れない。
このまま使うと自分とこの環境だと文字化けしちゃう。
ちょっと修正してみる。
Ethna_MailSender.phpの198行目から3行追加
function _parse($mail)
{
+ if (!is_null($this->config->get('MailSender_internal_encoding'))) {
+ mb_internal_encoding($this->config->get('MailSender_internal_encoding'));
+ }
list($header_line, $body) = preg_split('/\r?\n\r?\n/', $mail, 2);
$header_line .= "\n";
Ethna_CsMailSenderとでもして保存しておけば、あとはproject-ini.phpの$configに
'MailSender_internal_encoding' => 'euc-jp',
を追加するだけで大丈夫(なはず)。文字コードは環境にあわせて変更して下さい。
setOptionを使う方法も試してみたけれど、こっちのほうが使うときに簡単。
最終調整かな?(笑)
Dreamweaver8.0.1には対策パッチが当たって自動書き換えをやってくれるのだけれど 、これに触発されて前のバージョンを修正してみた。
変換対象タグを<noscript>でマスクするんなら、その中身を読み出して処理すればいいんじゃないの、という発想。HTMLコーディングルールに抵触するかもしれないけれど、結果的に問題なかったので、公開。
この修正で外部スクリプトファイルが固定され、同じフォルダにjsファイルが溢れません。以前のバージョンはdivタグを追加してた関係で文書構造が変わり、デザインが狂う場合があったが、それも解決。
コメントアウトした対象タグに反応してスクリプトエラー起こしてたのも、解決。さらに、処理済のファイルに変換対象オブジェクトを追加したものを再処理可能に。
これで最後かな。
http://mikke-mon.com/tagconverter_v5.php
文字化けは解消したけれど、ファイルを添付するとダメだ。
根本的に書き直さなきゃいけなさそう。 ⇒ あとでヒマなときにやる?
指定アドレスへのメールを記事として取り込む機能があったから使ってみたけど、ダメだ。文字化けする。
これからソースチェックしてみます。
フォーム処理縲怎fータベース登録までの処理をこなせるように汎用クラスを書いてみてる。
最初のバージョンは、送信されたデータをセッション変数に保持して複数ページ間でもデータを使いまわせるようにしてみたんだけど、Smarty使ってロジックとビューの分離が出来ればあえてロジック側で複数ページの対応は必要ないってことに今日気がついた。
認証用クラスの処理とバッティングしてたんだけど、これで多分解決できそう。