ZendFramework 1.7.5へ

ZendFramework1.5.2から現状不足している機能がなかったので、

そのままバージョンアップしてなかったんですが、今回Zend_Dateの日付計算で

不具合が出たので、最新の1.7.5にバージョンアップしました。


嬉しかった点は、Zend/Mail.phpの中身を編集しなくても

文字化けをしないように設定できるようになった部分。

これをやるのがおっくうでバージョンアップしてなかったのもあったので。

こんなふうにsetEncodingOfHeadersでbase64を指定できるようになってました。


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public static function sendInfo($params)
{
  $mail = new Zend_Mail('ISO-2022-JP');
  $mail->setEncodingOfHeaders(Zend_Mime::ENCODING_BASE64);
  $mail->setBodyText(self::_encode(trim($params['body'])), 
            null, 
            Zend_Mime::ENCODING_7BIT)
     ->setSubject(self::_encode($params['subject']))
     ->setFrom('yyyy@yyyy', 'zzzz');
     ->addTo('xxxx@xxxxxx');
     ->send();
}
 
private static function _encode($str)
{
  return mb_convert_encoding($str, 'ISO-2022-JP', 'UTF-8');
}




少しはまったのが、Zend_Date。new Zend_Date(‘xxxx-xx-xx’)とやると

クラスを生成できてたのですが、Localeがうまく取得できなくなっているようでした。

以前、ソースをおったときは、ブラウザから情報を取得していたし、

今回ざっと見た時もそれっぽい部分があったのですが、なぜかLocaleでエラーになります。


Zend_Registryを使って、’Zend_Locale’に’ja_JP’を設定しておけば、

設定したLocaleを利用してくれるので、index.phpで設定して問題を回避しました。

ソースをちゃんと見たいところですが、今は問題解決が先です。



  • ZendFramework 1.7.5へ はコメントを受け付けていません。
コメントは閉じられています。

return top

%d人のブロガーが「いいね」をつけました。