0

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 プロジェクトにプラグインを入れたときにエラーが発生しました。名前空間に何か問題があると思います。

どんな助けでも大歓迎です。ありがとう

4

1 に答える 1