HP Object Storage プラグインを Yii プロジェクトに統合する必要があります。http://hpcloud.github.com/HPCloud-PHP/で Hp Object Storage プラグインをダウンロードし、こちらのチュートリアルに従って ください https://blog.hpcloud.com/working-object-storage-php
これが私のプロジェクトの構造です
/..
/YiiBase.php
/index.php
/protected/..
/protected/hpcloud/..
/protected/hpcloud/Bootstrap.php
ファイル /protected/config/main.php には、すでに Bootstrap が含まれています。
spl_autoload_unregister(array('YiiBase','autoload')); //temporary skip yii autoload
$basePath = dirname(__FILE__) . DIRECTORY_SEPARATOR . '..';
require_once $basePath . DIRECTORY_SEPARATOR . 'hpcloud' . DIRECTORY_SEPARATOR . 'Bootstrap.php';
use \HPCloud\Bootstrap;
Bootstrap::useAutoloader();
Bootstrap::useStreamWrappers();
// Provide credentials
$settings = array(
'account' => YOUR_ACCOUNT_NUMBER,
'secret' => YOUR_SECRET_KEY,
'tenantid' => YOUR_TENANT_ID,
'endpoint' => IDENTITY_SERVICES_URL,
);
Bootstrap::setConfiguration($settings);
spl_autoload_register(array('YiiBase','autoload'));
しかし、それは例外をスローしました
Fatal error: Class 'HPCloud\Storage\ObjectStorage\StreamWrapper' not found in D:\wamp\www\myproject\protected\hpcloud\Bootstrap.php on line 182
トラブルシューティングのために Bootstrap.php を開きました
public static function useStreamWrappers() {
$swift = stream_wrapper_register( // error in line 182
\HPCloud\Storage\ObjectStorage\StreamWrapper::DEFAULT_SCHEME,
'\HPCloud\Storage\ObjectStorage\StreamWrapper'
);
$swiftfs = stream_wrapper_register(
\HPCloud\Storage\ObjectStorage\StreamWrapperFS::DEFAULT_SCHEME,
'\HPCloud\Storage\ObjectStorage\StreamWrapperFS'
);
return ($swift && $swiftfs);
}
名前空間とパスはすべて正しいです。エラーの原因がわかりませんでした。構造に従って、単純なファイル index.php だけ (Yii プロジェクト フォルダの外) でプラグインを残すと、正常に機能しました。
\..
\index.php
\hpcloud\Bootstrap.php
Yii プロジェクトにプラグインを入れたときにエラーが発生しました。名前空間に何か問題があると思います。
どんな助けでも大歓迎です。ありがとう