Я использую AWS PHP SDK V2.8 в своем cakephp. Я работаю над машиной AWS ec2 ubuntu.
Я использую zip-файлы, а не любой композитор.
Я получаю следующую ошибку.
Class 'Aws\Common\Aws' not found
Я создаю настраиваемый компонент для доступа ко всем функциям SDK. со ссылкой https://github.com/Ali1/cakephp-amazon-aws-sdk
Структура моей папки следующая.
Вот мой AmazonComponent.php
<?php App::uses('Component', 'Controller'); use Aws\Common\Aws; /** * AmazonComponent * * Provides an entry point into the Amazon SDK. */ class AmazonComponent extends Component { /** * Constructor * saves the controller reference for later use * @param ComponentCollection $collection A ComponentCollection this component can use to lazy load its components * @param array $settings Array of configuration settings. */ public function __construct(ComponentCollection $collection, $settings = array()) { $this->_controller = $collection->getController(); parent::__construct($collection, $settings); } /** * Initialization method. Triggered before the controller's `beforeFilfer` * method but after the model instantiation. * * @param Controller $controller * @param array $settings * @return null * @access public */ public function initialize(Controller $controller) { // Handle loading our library firstly... $this->Aws = Aws::factory(Configure::read('Amazonsdk.credentials')); } /** * PHP magic method for satisfying requests for undefined variables. We * will attempt to determine the service that the user is requesting and * start it up for them. * * @var string $variable * @return mixed * @access public */ public function __get($variable) { $this->$variable = $this->Aws->get($variable); return $this->$variable; } }
Я добавляю эти две строки сверху в файл со ссылкой на этот вопрос. Как загрузить AWS SDK в CakePHP?
ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'). PATH_SEPARATOR . ROOT .DS . 'app/Plugin/Amazonsdk/Vendor/aws'); require ROOT . DS . 'app/Plugin/Amazonsdk/Vendor/aws/aws-autoloader.php';
Где я ошибаюсь и как я могу это исправить?
@urfusion Не могли бы вы переместить папку AWS SDK из app/Plugin
в app/Vendor
In Side приложение / поставщик, а затем попытайтесь импортировать aws-sdk AmazonComponent
с функцией initialize
функции.
Я использую AWS PHP SDK V3
// Обрабатываем сначала нашу библиотеку …
App::import('Vendor','aws-autoloader',array('file'=>'aws'.DS.'aws-autoloader.php'));