2009/6/29 月曜日

ZendFrameworkで作る『イマドキ』のWebアプリケーション:第5回 Zend Framework 1.8と新しいZend_Tool|gihyo.jp … 技術評論社

Filed under: Zend Framework — ne-zu @ 13:28:55 このエントリをはてなブックマークに追加

PHPImage via Wikipedia

ZendFrameworkで作る『イマドキ』のWebアプリケーション:第5回 Zend Framework 1.8と新しいZend_Tool|gihyo.jp … 技術評論社

1.8のzfコマンドでプロジェクトを作成した場合,UNITテスト用のディレクトリが作成されたり,基本的なエラー処理を行うエラーコントローラやビューが用意されるようになりました。プロジェクトを生成して自動的に作成されるデフォルトページも,テキストだけだったものがグラフィックを含んだページに更新されています。

うーむ。Zend Frameworkの進化はやりおる。自分の知識が1.0以前ぐらいで止まってる。
ここらで勉強しなおさないとなぁ。
勉強って言っても、自分が楽をするためにやるんだけどね。
100の苦労を取り除くために99頑張る。

Reblog this post [with Zemanta]

2009/6/27 土曜日

さくらインターネットMySQLを自動バックアップしてgmailに送る

Filed under: MySQL, さくらインターネット, Zend Framework — ne-zu @ 10:12:04 このエントリをはてなブックマークに追加

さくらインターネットで MySQL のバージョンを 4 から 5 に移行: PHPの種 ブログ
↑なんて感じでさくらインターネットでのMySQLを5に変えたのですが、これでmysqldumpが(文字コード的に)安定したということで、前諦めた自動バックアップを設定しておこうと思いました。

mysqldumpしてメールで送るうんぬんは今までも色んなところでやられていると思いますが、今回困った点としては

  • uuencodeの添付ファイルだとgmailでうまく扱えない

です。


~ | uuencode attached.file | mail -s attached.file hoge@gmail.com

なんてお手軽にしたかったんですが、どうもダメみたい。

で、普通に添付メールとして送れるコマンドを探していたらmuttやらemailやらあるものの、どうにもさくらインターネットのレン鯖に素直に入れられそうになかったので、phpでさくっと作ってみました。とりあえずZend Frameworkで。

このぐらいはワンライナーで作れそうですが、敢えて?のZend Frameworkで。Pear_Mailとかもきっとあるに違いないけど全く調べて無いです。きっとある。

PHP:
  1. <?php
  2.     PATH_SEPARATOR . '[PATH TO ZENDFRAMEWORK]'
  3. );
  4.  
  5. require_once 'Zend/Loader/Autoloader.php';
  6. $autoloader = Zend_Loader_Autoloader::getInstance();
  7.  
  8. $opts = new Zend_Console_Getopt('m:');
  9. if (!$address = $opts->getOption('m')) {
  10.         echo('How to : mailto.php -m [mailaddress]');exit;
  11. }
  12.  
  13. $mail = new Zend_Mail();
  14. $mail->setBodyText('This is the text of the mail.');
  15. $mail->setFrom('somebody@example.com', 'Some Sender');
  16. $mail->addTo($address, 'Some Recipient');
  17. $mail->setSubject('MYSQL DUMP');
  18. $mail->createAttachment(file_get_contents("php://stdin"));
  19. $mail->send();

何も考えずにモジュールを持ってくるだけで簡単に作れますね。

Zend_Mail部分はZend Frameworkマニュアルそのまんまなので、本文や差出人とか、自由に変更してくださいね。添付ファイルに名前をつけたい場合は、マニュアルを参考に。

このスクリプトに標準入力からdumpを流し込みます。
スクリプトはmailto.phpと名付けてホームディレクトリに保存しました。

/usr/local/bin/mysqldump --opt -c -h [MySQL SERVER] -u [USERNAME] --password=[PASSWORD] [DB NAME] | gzip | /usr/local/bin/php ~/mailto.php -m [MAILADDRESS]

無事dumpしたgzファイルが添付されましたでしょうか。

上のコマンドが無事成功したなら、さくらコンパネからcronで登録しておきましょう!

ちなみに私はgmail宛に送信して、すぐにゴミ箱に行くようにフィルタリングしています。これなら30日は保存されますし、gmailの容量も食わないですしね。

2009/6/23 火曜日

さくらインターネットで MySQL のバージョンを 4 から 5 に移行

Filed under: DB, さくらインターネット — ne-zu @ 18:56:42 このエントリをはてなブックマークに追加

さくらインターネットで MySQL のバージョンを 4 から 5 に移行 - 転校生@Hatena

もう、まんま↑で私もMySQL4からMySQL5に移行しました。元々のデータがUTF-8で、mysqldump4をした際に出力されたSQLのエンコードがかな~り怪しかったですが、特に問題なくインポートできましたヨ。(たぶん)
かなりドキドキしましたが(^-^;

Zend_Loader::registerAutoloadは廃止

Filed under: Zend Framework — ne-zu @ 18:24:08 このエントリをはてなブックマークに追加

PHPの種 ブログ » require_onceでなくautoloadなんて記事を書いてましたが、Zend Framework 1.8.3でZend_Loader::registerAutoloadを使っていたら、

Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /home/php-seed/lib/php/zendframework/1.8.3/Zend/Loader.php on line 207

なんて言われてしまいました。registerAutoloadは廃止されるので、Zend_Loader_Autoloader使って!とのことです。

というわけで、さくっと

PHP:
  1. require_once 'Zend/Loader/Autoloader.php';
  2. $autoloader = Zend_Loader_Autoloader::getInstance();

変えておきました。とりあえずinclude_pathへのautoloadだけなら問題なし。詳しい使い方はマニュアルで!

Powered by PHP-SeeD and WordPress ME