2012-04-10 3 views
1

내 문제 :S3 SDK 속보 내 사이트

require_once '/includes/aws-sdk-1.5.2/sdk.class.php'; 

내 환경 : 은 내가 필요한 모든 클래스를 잡아 __autoload()를 사용하는 꽤 표준 PHP 사이트가 있습니다. 그러나 S3를 통해 파일을 보내려면 SDK를 포함해야하지만, 라이브러리가 전체 앱의 범위를 벗어나므로 뒤 따르는 모든 코드가 손상 될 수 있습니다.

예 : // Save to S3 조각이 활성화 된

// Save to S3 
require_once '/var/www/html/system/aws-sdk-1.5.2/sdk.class.php'; 

$s3 = new AmazonS3(); 

if(! $s3->if_bucket_exists(S3_BUCKET)) 
    throw new Exception('S3 bucket does not exist.'); 


$response = $s3->create_object(S3_BUCKET, $temp_file['s_unique_name'], array(
    'fileUpload' => $_FILES['my_file']['tmp_name'], 
    'acl'  => $s3::ACL_PUBLIC 
)); 

// Save file 
$photo = new vehicle_photo(); 
$photo->i_vehicle = $i_vehicle; 
$photo->s_file = $temp_file['s_url']; 
$photo->s_label = $_FILES['my_file']['name']; 
$photo->save(); 

그래서, 다음 vehicle_photo 클래스가 더 이상이 시점 이후에 사용될 수있는 다른 모든 클래스에 추가하여, 찾을 수 없습니다. 이 기능을 사용하지 않으면 모든 것이 작동합니다.

여기가 어떻게됩니까?

답변

4

자동 로딩 메커니즘과 같은 소리가 충돌합니다. 도움이 될만한 정보는 https://forums.aws.amazon.com/thread.jspa?threadID=85239입니다. 또한 spl_autoload_register은 평범한 이전 __autoload보다 낫습니다. 자동 로더 코드를 마이그레이션하는 것이 좋습니다.