내 앱용 S3 플러그인을 만들고 있습니다. app/Plugin/S3/Controller/Component/S3Component.php
에서 나는이있다 : 내 응용 프로그램의 컨트롤러에서AWS SDK를 CakePHP에로드하는 방법은 무엇입니까?
<?php
App::import('Vendor', 'aws/aws-autoloader');
use Aws\S3\S3Client;
class S3Component extends Component {
public function loadS3() {
$s3 = S3Client::factory(array(
'key' => '',
'secret' => ''
));
return $s3;
}
}
을, 나는 $s3 = $this->S3->loadS3();
그것은 Error: Class 'Aws\S3\S3Client' not found
내가 줄을 추가 시도 오류가 발생합니다 사용하여 전화 : App::uses('Vendor', 'aws/Aws/S3/S3Client');
를 구성 요소 클래스를 제거 use Aws\S3\S3Client;
. 내가 참조하여 S3 객체를로드하고있어 app/Plugin/S3/Vendor/aws
폴더에 Error: Class 'S3Client' not found
AWS SDK를 보여줍니다 http://docs.aws.amazon.com/aws-sdk-php/guide/latest/quick-start.html#factory-method
솔루션 :
내 구성 요소처럼 보이는 방법이있다 지금 @akirk의 도움으로.
<?php
ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'). PATH_SEPARATOR . ROOT .DS . 'app/Plugin/S3/Vendor/aws');
require ROOT . DS . 'app/Plugin/S3/Vendor/aws/aws-autoloader.php';
use Aws\S3\S3Client;
class S3Component extends Component {
public function loadS3() {
$s3 = S3Client::factory(array(
'key' => '',
'secret' => ''
));
return $s3;
}
}
고마워요! 이게 내가 찾고있는거야 :) – decodingpanda
나는 똑같은 문제에 직면 해있다. 위의 솔루션이 나를 위해 작동하지 않습니다 .. 동일한 폴더 구조를 사용하고 있습니다. 그리고 https://github.com/Ali1/cakephp-amazon-aws-sdk 을 따라 다니면 옳은지 아닌지 말할 수 있습니까? – urfusion
버전 문제입니다. SDK V3을 사용 중입니다. – urfusion