以前は、fopenして、fgetsとかfwriteばかりを使っていたけど、
以下のメソッドを頻繁に使うようになりました。
・file_get_contents
・file_put_contents
ファイルの書き込み、上書きに関しては、全部 file_put_contents。
読み込むファイルがすごく大きいときのみ、fgetsで1行ずつ読むようにしてます。
ファイルポインタの記述がないだけで、だいぶすっきりした気分になります。
以前は、fopenして、fgetsとかfwriteばかりを使っていたけど、
以下のメソッドを頻繁に使うようになりました。
・file_get_contents
・file_put_contents
ファイルの書き込み、上書きに関しては、全部 file_put_contents。
読み込むファイルがすごく大きいときのみ、fgetsで1行ずつ読むようにしてます。
ファイルポインタの記述がないだけで、だいぶすっきりした気分になります。
ZendFrameworkを使うようになってからよく利用するメソッド
・method_exists
・call_user_func_array
modelの中にメソッドがない場合に、中で利用しているオブジェクトの中を
method_existsで調べて、メソッドが存在したら、call_user_func_arrayで呼び出す。
こういう使い方をして、controllerからdaoのメソッドを呼び出しています。
エラー処理も大体パターン化してきたので、近いうちにのせようと思っています。
いろんな指摘をもらえて、よりいいものにできたらと考えています。
まだよくわかっていないけど、ドキュメントも英語だったので余計に。(英語苦手です)
wsdlファイルをパラメタに渡して、対象のメソッドをパラメタ渡して実行したら、
とりあえず通信はできたという状況。
使ったのはZend_Soap_Clientだけだから、Server側を作ってみないと、
全体像は見えてこないのかもしれない。
それに加えて、Soapがあまりわかってないから余計に理解が遅い。
XML_RPCとの通信手段としての長所、短所とか後で検索してみようと思う。
このブログはhetemlで運営していて、
ZendFrameworkの実験もhetemlでやることが多いのです。
以前、hetemlでZendFrameworkが動かないっていう記事を見つけたので、
動きますよーとコメントさせていただいたところ、後日動いたそうなのです!
http://h2o-space.jp/blog/archives/337/comment-page-1
しかも、記事の中に僕の名前まで書いてくださっていました。とてもうれしかった!!
Viewテーブルについてはこちら
http://dev.mysql.com/doc/refman/5.1/ja/create-view.html
これ使うと、left joinを使っている部分がレコード数が多くなって、
取得が遅くなっている現象を回避できるんじゃないかと思ったのです。
利用しているMySQLが4系なので、5系にバージョンアップしてから。
そうしたら、ストアドプロシージャも試してみたい。
http://www.atmarkit.co.jp/flinux/special/mysql5/mysql5d.html
以前、Oracleを使ってたときは、性能改善でSQLをストアドプロシージャ化する
ってことをやる担当の人もいたけど、MySQLではどうなんだろうか。
Web上のリサイズをかけれて、画質もきれいらしいので、メモ
http://www.ideaxidea.com/archives/2009/01/resize_image.html
このPHPライブラリは、使えそうなのでメモ
http://phpspot.org/blog/archives/2008/02/phpclassimageph.html
このリサイズプログラムも使えそうなのでメモ
http://www.ideaxidea.com/archives/2008/03/urlphpsmart_image_resizer.html
タイトルの通り、MTからWPへ移行しました。
データ移行の際に参考にさせてもらったのは以下のサイト。
http://blog.studio-fu.com/archives/2009/01/wxr_rmovable_type.php
カテゴリもタグも、全部持って来れていると思います。
プラグインを使って、ソースコードの部分を見やすくできました。
これからも便利なプラグインを見つけて試していきます。
短い件名だと問題なかったんですが、長くなると後半が化けてしまいました。
ので、今まで通り、Zend/Mail.phpのsetFromとsetSubjectを修正。
setSubjectは以下のように修正しました。
//$this->_subject = $this->_encodeHeader($subject);
mb_language('ja');
$lang = mb_internal_encoding();
mb_internal_encoding('ISO-2022-JP');
$this->_subject = mb_encode_mimeheader($subject, 'ISO-2022-JP');
mb_internal_encoding($lang);
setFromも同じ要領で。
ZendFramework1.5.2から現状不足している機能がなかったので、
そのままバージョンアップしてなかったんですが、今回Zend_Dateの日付計算で
不具合が出たので、最新の1.7.5にバージョンアップしました。
嬉しかった点は、Zend/Mail.phpの中身を編集しなくても
文字化けをしないように設定できるようになった部分。
これをやるのがおっくうでバージョンアップしてなかったのもあったので。
こんなふうにsetEncodingOfHeadersでbase64を指定できるようになってました。
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で設定して問題を回避しました。
ソースをちゃんと見たいところですが、今は問題解決が先です。
このサイトに限らず、co-hey.com関連は、hetemlというレンタルサーバで運営してます。
php5も使えるし、ZendFrameworkも動くし、MTやWPもOK。
共用サーバだから、アクセスが集中しすぎるのはまずいだろうけど、
僕のサイトはそんなことにはならいので、快適に使ってます。
今、初期費用無料期間中なので、今までよ4000円くらいお得。
サーバ乗換とか検討しているなら、候補にいれてもいいかもです。
プログラムできるけど、サーバの知識があまりない僕にとっては、
共用サーバはとてもありがたい。専用サーバで、全部管理は無理っぽい。