ECサイトをPHPフレームワークで全面リニューアルした。
カレンダーの通販サイト「E-カレンダー.com」をシステムをPHPフレームワークで全面リニューアルした。
以前までは、Javaのサーブレットっぽいフレームワークっぽいものを使っていたのですが、それだといろいろと効率が悪いということで、
全ての処理を見直し、新しいフレームワークでシステムをリニューアルしてみた。
フレームワークはPHPフレームワークで第3位くらいのシェアのZend Framework。
理由は正直、、SymfonyやCakePHPがなんとなく馴染めなかったのと自分にとってカスタマイズが容易だったところ。
選択肢としてCodeIgniterもあったけど、SQLレスなO/Rマッパーも使ってみたかったため、Zend Frameworkを使うことにした。
- [旧システムの簡単な構成]
-
- 1画面=1PHPファイルで構築していたため、画面の数だけPHPファイルが増えて、機能追加やら更新の際、いろいろと煩わしかった。
-
- [新システムの構成]
{include file="parts/iphone/inc_iphone_pager.tpl"} <ul class="itemList"> {foreach name="iLoop" from=$itemList item="value"} {include file="parts/iphone/inc_iphone_item.tpl"} {/foreach} </ul>
-
- SQLをベタ書きしてたmodelを見直してZend_Db_TableクラスのO/Rマッパー機能を使うことにした。
- 多対多のリレーションもSQLレスで書けるので楽になった。ただし、O/Rマッパーは初めてだったので、学習に時間がかかった。
- 中間テーブルクラスも別に定義が必要
- 詳しくはZend_Db_Tableのマニュアルを参照
- 中間テーブルクラスも別に定義が必要
- 多対多のリレーションもSQLレスで書けるので楽になった。ただし、O/Rマッパーは初めてだったので、学習に時間がかかった。
- SQLをベタ書きしてたmodelを見直してZend_Db_TableクラスのO/Rマッパー機能を使うことにした。
<?php /* * 商品テーブル * */ class ItemTable extends Zend_Db_Table_Abstract{ protected $_name=TABLE_ITEM; protected $_primary = "id"; // 中間テーブル protected $_dependentTables = array("CategoryRelationTable","OrderItemTable","ItemRelationTable"); } ?>
- URL構造の変更
- 以前のURLでアクセスしてきた場合はRewriteRouter等で対処
- 301リダイレクトの方法
- 以前のURLでアクセスしてきた場合はRewriteRouter等で対処
<?php /* * 古い商品URL * */ function oldItemAction(){ $id=$this->getParam("id"); $this->_redirect(NEW_URL."{$id}/",array("code"=>301)); } ?>
- パフォーマンス
- Apacheのmod_delateモジュールを有効に
- 主要ブラウザ、携帯電話ブラウザ、iPhone/iPod Touch、PSPで問題無く動作。
- ただし、一部、携帯電話ブラウザではダメという噂も。
- 主要ブラウザ、携帯電話ブラウザ、iPhone/iPod Touch、PSPで問題無く動作。
- 以前、使えなかったeAcceleratorを導入
- Cannot access protected propertyエラーが出ていたが、現在のバージョンでは出ない。
- たぶん、効果は出てる
- Apacheのmod_delateモジュールを有効に
- デザインの変更
-
- [iPhone/iPod Touch用サイト]
- 以前、使っていたiuiは廃止
- iuiは便利だけど、融通が利かないところもあったので..
- 新iPhone用サイトにはjqeryとAdobeSpryを使用
- タブナビゲーションをSpryで。戻るボタンはjquryを使用。
- 戻るボタンはPCサイトでも使ってるパンくずリスト
- 見直す可能性もアリ。
- 戻るボタンはPCサイトでも使ってるパンくずリスト
- タブナビゲーションをSpryで。戻るボタンはjquryを使用。
- 一応、PSPでも閲覧可能。しかし、JavaScriptの仕様上タブと戻るボタンは使えず非表示。
- [iPhone用サイトのムービー]
まだ、追記はありそうですが、この辺で...
カレンダーの通販サイト E-カレンダー.com
http://www.e-cale.com/
PHPフレームワーク入門―CakePHP/Zend Framework/symfony/CodeIgniter対応
- 作者: 掌田津耶乃
- 出版社/メーカー: 秀和システム
- 発売日: 2009/05
- メディア: 単行本
- 購入: 2人 クリック: 90回
- この商品を含むブログ (3件) を見る
PHPフレームワーク Zend Framework入門
posted with amazlet at 08.12.05