ec-cube
2012年10月04日
EclipseでEC-CUBEのカスタマイズがやりやすくなる
EC-CUBEとの付き合いは長いけれどカスタマイズはプログラマー任せ。だけど今は個人事業主として一人でやっているので、ちょっとしたこと位は自分で出来ないと話にならない。
という訳で本を買ってお勉強なのですが、EC-CUBEというCMSの事も理解しながら、PHPの学習、そしてEclipseという開発環境の使い方にも慣れなくてはなりません。
もちろん実務だけやってればOKってわけでは無く、代表職も、営業職も、経理もやらなくてはならないので、サラリーマンと比べると個人事業はマジでなんでも屋です。全て自分の甲斐性の範囲でやるので限度はありますけどね。
この本でPHPの開発(カスタマイズ)勉強を始めました。書籍に掲載のソースコードに不具合があって最初の課題から苦戦しましたが、時間をかけて自力で解決させた分理解も深まってきた気がします。こちらのブログにはファイルがアップロード出来ないので、私の自前のサーバーで運営しているブログに修正したソースファイルをアップしておきます。もし誰かの参考(お助け)になれば幸いです。
しかし、まだまだ先は長そうです。ただ、Eclipseの使い方を覚えてくると、EC-CUBEだけでなく、WordPress等の動きも調べられるので、もしかしたらプラグインの作り方なんかも今後は勉強出来るかも知れません。
EC-CUBE 実践カスタマイズ
著者:株式会社クオーレ
技術評論社(2011-12-27)
販売元:Amazon.co.jp
クチコミを見る
2010年12月15日
EC-CUBE+PostgreSQLで快適な件
先日記した、EC-CUBE+MySQLで劇遅な件、やっぱレコード数が増えると遅くなるのはどうしようもないという結論に至り、自分の力量ではどもならんと判断した。素直にPostgreSQLを使ってみた。
結論から記すと、全然問題なく使用できる様になった!!
こんなに違うとは驚きだ。
まず同様に10000件の商品(ダミー)データをCSVで流し込んでみた。数分で10000件のインポート終了。この時点でMySQLとは大違いだと言うことが判明した。
PostgreSQLの場合、インポート処理中はキャッシュで処理しているらしく、phpPgAdminで確認してもレコード数が増えない。MySQLの場合はphpMyAdminで確認したらレコード数が徐々に増えていくのを確認していた。ここで既にデータベースシステムの構造からして違うなと言うのが分かったわけだ。インポートが終了したら初めてレコード数が増えてデータベースに反映される。
更に10000件のデータを流し込んでみる。MySQLの場合はこの時点でかなりパフォーマンスが低下してフリーズしかかりの状態になっていた。表現を変えれば息も絶え絶えに動いているという印象だった。その点、PostgreSQLは順調に読み込んでいると言う印象で、驚いた事にインポート中に、EC-CUBEを操作してみたら普通に使えてしまった。(MySQLの時はEC-CUBE(Webブラウザ)がフリーズしてナニも出来なくなった)
オマケにもう10000件流し込んで30000件のレコードを登録してみたが普通に使える!!(*´∇`*)
ネットで調べた通り、EC-CUBEで多くのレコード(商品)を扱う場合は、PostgreSQLにするのが正解の様だ。もちろんMySQLの性能が悪いとか言うのではなく、EC-CUBEのコードでSQLに対するリクエストやらの処理が最適化されているかいないかの違いだと思われる。想像するにEC-CUBEの開発に携わっている人がPostgreSQLの方が得意なんだろうと思う次第である。
なお、1000レコード程度ならMySQLでも問題なく動いたので、商品数が多くないのであれば気にする必要は無いかも知れない。私の場合はEC-CUBEというCMSを流用して(ショッピングカートとかは使わない)ちょっとしたカタログっぽい事をやりたくて、大量のデータをCSVで流し込む必要があるのだ。故にPostgreSQLを使うのが正解という結論に至った。
しかし実際に検証してみたら本当に凄い差で驚いた・・・
2010年12月01日
EC-CUBE+MySQLで激遅な件
ちょっとやりたい事があって、EC-CUBEを検証中。手軽に構築出来るのでSQLはMySQL+phpMyAdminでやってみた。
やりたいのは手元で作っておいたFilemakerからCSVでエクスポートしたファイルを、EC-CUBEに流し込んでページを一気に更新したい訳だが、Filemakerで管理している「管理ID」をEC-CUBE側の「商品ID」と一致させたい。条件はこれだけで「管理ID」に該当する「商品ID」の情報のCSVを読み込ませてCSVファイルで一気に更新をかけるだけ。
しかしそこで問題に遭遇。EC-CUBEは仕様上商品IDが自動採番になっているので、Filemakerの管理IDと一致させる為には、まずダミーデータを流し込んで、EC-CUBEでその管理ID(商品ID)が存在する状態にしなくてはならない。つまり新規の登録はCSVファイルで行えない(自動採番ならもちろん可能だが求めている条件を満たさない)。
そこで最低限EC-CUBEが必要とする必須項目以外は省略した非表示フラグを立てたCSVデータを10000件流し込んでみた。そうすれば当該商品IDのCSVファイルを流し込めば更新OKという算段だ。
ところがダミーデータのインポートですらめっさ時間食う・・・・途方もない時間が過ぎていく。10000件って言っても最低限のデータだよ~
一応EC-CUBEとMySQLの組み合わせにおいては、規格やカテゴリーが増えた場合のパフォーマンス低下が問題視されている事は事前に分かっていたが、カテゴリーは一つしか無いし、規格も使ってないダミーデータ10000件でもう悲鳴を上げている。
DBがMySQL環境では件数が多い場合EC-CUBEは使えないってことだ・・・
EC-CUBEのSQL構文はPostgreSQLには結構チューニングされているらしいので、PostgreSQLなら快適に10000件でもこなしそうだがまさかここまで酷いとは思わなかった。完全に想定外である。EC-CUBEの表示部分のみ使い、smartyで見た目をカスタマイズするつもりでいたが、こんだけ遅いと話にならない。
WordPressにした方がいいのかな・・・MovableTypeという手もあるな。
EC-CUBEのチューニング(カスタマイズ)についてこういう情報も見つけたが、現行の2.4.4ではこの修正は反映されているって事だよね?それでもこのパフォーマンスか。やはり登録件数(商品数)が1000件を越えたらもうダメだってことね。PostgreSQLは使いづらいからイヤなんだよなぁ・・トホホ
オープンソースECサイト構築ソフトEC‐CUBE(Ver2.4.0対応)公式ガイドブック カスタマイズ編
著者:オレンジ 岸本
秀和システム(2009-07)
販売元:Amazon.co.jp
クチコミを見る
EC‐CUBE「Ver2対応」公式ガイドブック―オープンソースECサイト構築ソフト
著者:中川 仁
秀和システム(2008-01)
販売元:Amazon.co.jp
クチコミを見る
Smarty入門‾PHP+テンプレート・エンジンでつくるMVCアプリケーション‾
著者:山田 祥寛
翔泳社(2005-03-15)
販売元:Amazon.co.jp
クチコミを見る
2009年12月07日
EC-CUBE:新着情報でHTMLタグを有効化する
ネタ元はこちら
EC-CUBEのデフォルトでは、新着情報入力時にHTMLタグを入力してもタグとして認識されず、そのまま表示されてします。そのカスタマイズ方法が上記に記されている。なくなると困るので転記させていただきます。
対象ファイル:data/Smarty/templates/テンプレート名/bloc/news.tpl
<!--{$arrNews[data].news_comment|escape|nl2br}-->
これを
<!--{$arrNews[data].news_comment|nl2br}-->
これはSmartyの機能らしい。
Smarty|escape修正子:HTMLタグなどをエスケープ処理する