2013-06-01 2 views
1

CakePHP에서 Amazon Web Services 용 사용자 정의 데이터 소스를 만들려고합니다. 나의 접근 방식은 다음과 같습니다 서명을 생성CakePHP의 사용자 정의 데이터 소스가 작동하지 않습니다.

  • 자료 AwsDataSource을 만드는 실제 HTTP 요청 등 각 AWS 제품에 대한
  • 다양한 데이터 소스이 클래스를 확장하고 사용하는 엔드 포인트를 지정 (등 즉, S3, SQS) S3Bucket 같은 것들에 대한
  • 모델, SqsQueue, SqsMessage

에서 내 기본 데이터 소스 클래스 (간체) 다음과 같습니다

<?php 
class AwsDataSource extends DataSource { 

    public $config = array(
     'key' => '', 
     'secret' => '', 
     'region' => '' 
    ); 
    public $endpoint; 

    public function signRequest($parameters) { 
     // generates signature 
    } 

    public function makeRequest($parameters = array(), $method = 'get') { 
     // generates signature and makes HTTP request to AWS servers 
    } 
} 

는 그리고 샘플 모델은 다음과 같습니다

<?php 
class SqsQueue extends AwsAppModel { 

    public $name = 'SqsQueue'; 
    public $useTable = false; 
} 

내 문제는 그 다음 내 CakePHP의 응용 프로그램에서 이러한 모델/데이터 소스를 사용하려고 제공됩니다.

나는 the CakePHP cookbook에 따라 내 AWS 데이터 소스에 create(), read(), update()delete()라는 방법을 구현했습니다,하지만 그들은이라고 받고있는 것으로 보이지 않는다. 메시지가있는 데이터 소스에 die() 문을 넣었 기 때문에이 사실을 알 수 있으며 실행이 중지되지 않습니다.

나는 요리 책을 다 써 버렸습니다. 그래서 내 모델이 내 데이터 소스 클래스에서 CRUD 메소드를 호출하는 방법을 보여 주면 가장 감사하게 생각합니다.

답변

0

나쁨. 내 접근법에 결함이 있음이 드러났습니다.

데이터 소스는 데이터베이스 구성에 지정되며 AwsDataSource으로 지정됩니다. 따라서 S3DataSource 또는 SqsDataSource은 결코 사용되지 않습니다. 내 CRUD 메서드를 정의한 곳이기 때문에 내 응용 프로그램이 종료되지 않습니다. CRUD 메서드는 AwsDataSource에 정의되어 있지 않으므로 실제 데이터 소스는 호출되지 않습니다.

그림판으로 돌아온 것 같습니다.

관련 문제