2009/11/5 木曜日

phpのzlibモジュールでコンテンツを圧縮

Filed under: 高速化, モジュール, さくらインターネット — ne-zu @ 19:38:27 このエントリをはてなブックマークに追加

さくらレンタルサーバはmod_deflateモジュールが入ってないので、PHP側でgzipしてうんぬん~というのをやっていたんだけど、これでよかったのだった。

PHPでコンテンツをgzip圧縮する方法 zlib編

gzip でコンテンツを圧縮することにより、ネットワークの負荷を
軽減させることができ、レスポンススピードの向上が期待できます。

しかしながら、mod_deflateが利用できない場合もあります。phpの拡張 zlib を利用することでコンテンツの圧縮をすることが可能になります。
ob_startとgzhandlerを使うのと異なり、ソースコードの変更は必要ありません。

さくらなどのレンタルサーバを借りている場合に有効な手段になります。

PHPの設定ファイル php.iniに下記設定を追加します。
/usr/local/etc/php/your-php.ini

zlib.output_compression=1

さくらのレンタルサーバの場合、$HOME/www/php.ini に書きます。

うーむ。簡単。
今だとさくらコンパネからphp.iniを修正できるので、そちらで書いても良いですね。

2009/11/1 日曜日

Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

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

オデの日記@WEB系: Zend_Db_Table_AbstractでZend_Cacheを利用して負荷軽減

で、このZend_Db_Tableですが、生成する度にdiscribetable()というメソッドが呼ばれテーブル情報を取得します。とても便利なのですが、都度DB接続が行われ非効率すぎるのでZend_Cacheを利用してデータをキャッシュさせておきます。
discribeTable()が走るタイミングは
・insert()
・find()
・info()
を呼んだ時だそうです。

というわけでキャッシュを組み込みましょう。

PHP:
  1. $frontendOptions = array(
  2.         'automatic_serialization' => true
  3.     );
  4.     $backendOptions  = array(
  5.         'cache_dir'                => TMP_PATH
  6.     );
  7.    
  8.     $cache = Zend_Cache::factory(
  9.         'Core',
  10.         'File',
  11.         $frontendOptions,
  12.         $backendOptions
  13.     );
  14.     Zend_Db_Table_Abstract::setDefaultMetadataCache($cache);

2009/10/28 水曜日

Zend Frameworkで多対多のテーブルをMyISAMなどリレーション無しで扱う場合

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

Zend Frameworkで多対多のテーブルをリレーション無しで扱う。:: PHPの種 ブログ

つまり強制MyISAMのさくらレンサバでは。。
$_dependentTablesを指定しましょう。

で、ある程度Zend_Db_Tableで保管ができるので、それを利用させてもらいましょう。

PHP:
  1. class BugsProducts extends Zend_Db_Table_Abstract
  2. {
  3.     protected $_name = 'BugsProducts';
  4.     protected $_referenceMap    = array(
  5.         'Bug' => array(
  6.             'columns'         => 'bug_id',
  7.             'refTableClass'  => 'Bugs',
  8.             'refColumns'        => 'id',
  9.             'onDelete'          => self::CASCADE,
  10.             'onUpdate'          => self::CASCADE
  11.         ),
  12.         'Product' => array(
  13.             'columns'         => 'product_id',
  14.             'refTableClass'  => 'Products',
  15.             'refColumns'        => 'id',
  16.             'onDelete'          => self::CASCADE,
  17.             'onUpdate'          => self::CASCADE
  18.         )
  19.     );
  20. }

んで、リファレンスを貼られたほうのテーブルで

PHP:
  1. class Products extends Zend_Db_Table_Abstract
  2. {
  3.     protected $_name            = 'products';
  4.     protected $_dependentTables = array('BugsProducts');
  5. }

DependetTablesをクラス名で指定しておきます。

これでDeleteがCascadeされたりなど、Zend_Db_Table側でリレーションを保管してくれます。
そもそもInnoDBが使えればいいんですけどねえ。。

2009/10/23 金曜日

Zend Frameworkで多対多のテーブルをリレーション無しで扱う。:

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

Zend Frameworkで多対多のテーブルを簡単に扱う。: PHPの種 ブログ

RDBMS上でリレーションを組んでおけば、Zend_Db_Tableの設定で 親側のテーブルに $_dependentTables を指定しなくてもよいので楽です。

つまり強制MyISAMのさくらレンサバでは。。
$_dependentTablesを指定しましょう。

2009/10/22 木曜日

さくらのレンタルサーバはmagic_quotes_gpcがオンです

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

さくらレンタルサーバで久々にPHPを組んでたら、やられました。
magic_quotes_gpcがデフォルトでオンでした。

というわけで、~/www/php.iniを直接編集するか、さくらインターネットサーバコントロールパネルからPHP設定の編集で

magic_quotes_gpc = off

としてやりましょう。
magic_quotes_gpcはphp6では廃止されるというのに。

2009/10/18 日曜日

Zend Framework 入門に良い書籍は何か

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

0.いくつのバージョンからがっつり使っていたZend Framework。いつのまにやら新機能が出過ぎててちょっとついていけなくなりつつあります。
まあ普通にMVCなフレームワークとして使っている分には問題ないハズなんですが、新しい機能はきっと便利に違いない!と思い、色々と再勉強している最中です。

勉強にはやはり書籍だろう!というわけで、Zend Frameworkの書籍を調べていたら、あるわあるわ。。
こんなに本が出るほどブームなのか?(^_^;

どれを読んでいいのかさっぱりわかりません。

これが最も売れているっぽいし、レビューも評価が高いけど、いかんせん2007年の出版では古いのではないか。
増刷時に加筆されてたりするのかな。

こちらはSmartyとの連携も載っているとか。今Smarty使ってないけど。

レビューに

最後にブログサイト構築ですが、問題なくインストールして試す事が出来ましたし、
ディレクトリ構造表がありますので設置も解かり易い様に思います。実践ソースも参考になります。

とあるのでかなり惹かれる。実際にブログレベルの動くサイトを構築できて、ディレクトリ構造表がついてて理解もしやすくなってるのは素晴らしいです。

これは2009年6月と非常に新しいですね。
目次とか索引だけですがAmazonで中身検索できてよいですね。
こういうのはやはり助かります。

PEARのサンプルも色々ついていて素敵!となるか。まあ実際Zend Frameworkだけでなく、PEARも使ってますからね。
pagerは未だにPEARのを使ってたりします。

と、どれを読んでいいかよくわからないことに。
そのうち読んで使った中身レビューを届けるつもりです。。

2009/10/4 日曜日

WordPressで関連記事を自動挿入するプラグイン「Similar Posts」

Filed under: WordPress — ne-zu @ 22:18:04 このエントリをはてなブックマークに追加

WordPressで関連記事を
自動挿入するプラグイン「Similar Posts」とその具体的な実装例 | きにきじ

ブログによくある、「この記事に関連した他の記事〜」みたいなのを実装したくて、pluginを入れてみました。

Similar Postsです。

Post-Plugin Libraryというpluginも一緒にいれなければいけません。

果たしてどのように動作するのか。。

それはこの記事のタイトルをクリックして単独表示にしていただければ
わかると思いますm(_ _)m

2009/9/23 水曜日

ZendFramework::エラーコントローラをモジュール毎に分ける

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

ZendFrameWorkでエラーコントローラを使おうとした時のお話し。 - 西新宿のプログラマの日記

モジュール毎にErrorControllerを分ける方法が私にもわからんのです。
Default見に行っちゃう。
DefaultのErrorController内で$this->_request->getParam('module')でも見て振り分けるしかないのかな。

2009/9/16 水曜日

file_get_contents VS CURL, what has better performance?

Filed under: 高速化 — ne-zu @ 7:03:51 このエントリをはてなブックマークに追加

file_get_contents VS CURL, what has better performance? - Stack Overflow

file_get_contents と CURL、どちらがパフォーマンスが良いか?という記事なのですが、まあ普通に考えてCURLのほうが早いでしょう。
で、結果もやはりそうでした、という記事。

2009/9/13 日曜日

Zend Framework ではじめる携帯サイト

Filed under: モバイル, Zend Framework — ne-zu @ 18:49:51 このエントリをはてなブックマークに追加

Zend Framework ではじめる携帯サイト - Devel::Bayside

ZFではじめる携帯サイト(PDF)

すばらしいまとめ。参考になります。

« 前のページ次のページ »

Powered by PHP-SeeD and WordPress ME