ファイルの保存に使用するKnpGaufretteBundleを構成しようとしGoogle Cloud Storage
ています。これは設定です:
## definition of the GCS service
app.google_cloud_storage.service:
class: \Google_Service_Storage
factory_class: Knp\Bundle\GaufretteBundle\DependencyInjection\Factory\GoogleCloudStorageAdapterFactory
factory_method: 'create'
arguments:
- "123@developer.gserviceaccount.com"
- "http://localhost/file.p12"
- "pwd"
## config of knp_gaufrette
knp_gaufrette:
stream_wrapper: ~
adapters:
gcs_minn_images:
google_cloud_storage:
service_id: 'app.google_cloud_storage.service'
bucket_name: 'minn-images'
filesystems:
gcs_minn_images_fs:
adapter: gcs_minn_images
私が得たエラーメッセージは次のとおりです。
GoogleCloudStorageAdapterFactory.php 行 16 の ContextErrorException: キャッチ可能な致命的なエラー: Knp\Bundle\GaufretteBundle\DependencyInjection\Factory\GoogleCloudStorageAdapterFactory::create() に渡される引数 1 は、Symfony\Component\DependencyInjection\ContainerBuilder のインスタンスである必要があります。 /home/amine/NetBeansProjects/tuto/app/cache/dev/appDevDebugProjectContainer.php 行 724 で定義済み
エラーメッセージによると、ContainerBuilder の代わりに文字列を指定しました。すごい!次のように、ContainerBuilder を引数に追加しましょう。
## definition of the GCS service
app.google_cloud_storage.service:
class: \Google_Service_Storage
factory_class: Knp\Bundle\GaufretteBundle\DependencyInjection\Factory\GoogleCloudStorageAdapterFactory
factory_method: 'create'
arguments:
- @service_container
- "123@developer.gserviceaccount.com"
- "http://localhost/file.p12"
- "pwd"
結果は再びエラーになります。
キャッチ可能な致命的なエラー: Knp\Bundle\GaufretteBundle\DependencyInjection\Factory\GoogleCloudStorageAdapterFactory::create() に渡される引数 1 は、Symfony\Component\DependencyInjection\ContainerBuilder のインスタンスである必要があります。指定された appDevDebugProjectContainer のインスタンスは、/home/amine/NetBeansProjects で呼び出されます/tuto/app/cache/dev/appDevDebugProjectContainer.php の 724 行で定義済み
そのため、エラーは、ContainerBuilder の代わりに appDevDebugProjectContainer のインスタンスを提供していることを示しています!!
/home/amine/NetBeansProjects/tuto/app/cache/dev/appDevDebugProjectContainer.php
では、 724 行目を見てみましょう...
class appDevDebugProjectContainer extends Container{
// ...
/**
* Gets the 'app.google_cloud_storage.service' service.
*
* This service is shared.
* This method always returns the same instance of the service.
*
* @return \Google_Service_Storage A Google_Service_Storage instance.
*/
protected function getApp_GoogleCloudStorage_ServiceService()
{
return $this->services['app.google_cloud_storage.service'] =\Knp\Bundle\GaufretteBundle\DependencyInjection\Factory\GoogleCloudStorageAdapterFactory::create($this, '123@developer.gserviceaccount.com', 'http://localhost/file.p12', 'pwd');
}
私は本当に迷っています...では、Googleクラウドストレージを構成するための完全な例はありますか?