Azure×EC-CUBEでお手軽ネットショップ構築
第11回 [開発合宿]EC-CUBEへの動画レビュー投稿機能の実装
今回開発したものの概要
狙い, 目的
EC-CUBEの基本機能であるユーザレビューは星の採点とテキストによるコメント投稿の形式だが,
当初想定された技術的な課題は,
使用した技術
- Microsoft Azureの
「Web サイト」 からのEC-CUBE導入 - Microsoft Azureの
「ストレージ」 - Microsoft Azureの
「メディア サービス」
今回開発したものの結果
開発した結果
まず,開発結果をご覧ください。ソース一部抜粋
今回動画エンコードする際に,
// 設定など
define('ENDPOINT_PROTOCOL', 'https');
define('AZURE_BLOB_ACCOUNT_NAME', 'xxxxx');
define('AZURE_BLOB_ACCOUNT_KEY', "xxxxx");
/**
* Azure キューメッセージ送信
*/
function lfSendQueMsg($quename, $msg) {
// コネクション文字列
$connectionString = 'DefaultEndpointsProtocol=' . ENDPOINT_PROTOCOL . ';AccountName=' . AZURE_BLOB_ACCOUNT_NAME . ';AccountKey=' . AZURE_BLOB_ACCOUNT_KEY;
$queueRestProxy = ServicesBuilder::getInstance()->createQueueService($connectionString);
try {
// Create message.
$builder = new ServicesBuilder();
// ここはbase64エンコードが必要
$queueRestProxy->createMessage($quename, base64_encode($msg) );
}
catch(ServiceException $e){
// Handle exception based on error codes and messages.
// Error codes and messages are here:
// http://msdn.microsoft.com/en-us/library/windowsazure/dd179446.aspx
$code = $e->getCode();
$error_message = $e->getMessage();
echo $code.": ".$error_message."
";
}
}
以下のように使用します。
$this->lfSendQueMsg("myqueue", "Hello World!");
今回の開発のポイント
今回の開発ポイント工夫したところ
EC-CUBEとAzureの連携を考えるにあたり,
あとはAzureジョブの方でエンコードを行い,
本サービスの配布・
Microsoft Azure側の設定は,
ハマったところ
キューにメッセージを送信する個所でハマりました。次のAzureのドキュメントを参考にコーディングしました。
// Create message.
$builder = new ServicesBuilder();
$queueRestProxy->createMessage("myqueue", "Hello World!");
上記を実行しますと,
// Create message.
$builder = new ServicesBuilder();
$queueRestProxy->createMessage("myqueue", base64_encode("Hello World!"));
SDKの読み込みについて
EC-CUBEのプラグインで,
以下のSC_
- \data\class_
extends\SC_ ClassAutoloader_ Ex. php
public static function autoload($class) {
$azure_path = DATA_REALDIR . 'downloads/plugin/ReviewMovie/azure-sdk-for-php/WindowsAzure/WindowsAzure.php';
if (file_exists($azure_path)) {
require_once($azure_path);
}
parent::autoload($class);
}
「ReviewMovie」
SDKは以下よりダウンロードしました。
そして,
use WindowsAzure\Common\ServicesBuilder;
use WindowsAzure\Common\ServiceException;
use WindowsAzure\Queue\Models\CreateQueueOptions;
use WindowsAzure\Queue\Models\CreateMessageOptions;
Azure側からの非同期の情報をEC-CUBEに伝える方法としてEC-CUBEネイティブのAPI活用は開発効率を高めると再認識しました。
今回開発しての感想 (尾島)
Microsoft AzureのSDKを読み込むとAzureとの連携が容易になるメリットを感じた一方で,
EC-CUBE×Azureの組み合わせに関しての感想
今までLAMP環境での導入ばかりだったEC-CUBEですが,
今回開発しての感想 (沼田)
EC-CUBEとの連携にあたり,
今回は,
バックナンバー
Azure×EC-CUBEでお手軽ネットショップ構築
- 第11回 [開発合宿]EC-CUBEへの動画レビュー投稿機能の実装
- 第10回 [開発合宿]Microsoft Azure ADのアカウント機能を使用した,複数サイトへのシングルサインオン
- 第9回 [開発合宿]Microsoft AzureのADを利用し,EC-CUBE/ポータルサイトでシングルサインオンを実現
- 第8回 [開発合宿]半日でAzure上にネットショップを作ってみた
- 第7回 [開発合宿]Azure+EC-CUBEでマルチサイト構成を組んでみた
- 第6回 [開発合宿]EC-CUBEとMicrosoft Dynamics CRMの連携
- 第5回 [開発合宿]Microsoft Azure WebサイトにおけるEC-CUBEの最適化
- 第4回 [開発合宿]EC-CUBE 2.13をSQL Databaseに対応させる
- 第3回 [開発合宿]EC-CUBE×Microsoft Azure用LinuxサーバをAzureに作ってみた
- 第2回 EC-CUBE×Microsoft Azure開発合宿レポート~ECの未来へ