2013-06-01 80 views
1

我正嘗試在CakePHP中爲Amazon Web Services創建自定義數據源。我的方法如下:CakePHP中的自定義數據源無法正常工作

  • 基地AwsDataSource創建簽名,使得實際的HTTP請求等
  • 每個AWS產品的各種數據源(即S3,SQS等),其擴展此類並指定端點使用
  • 模型之類的東西S3BucketSqsQueueSqsMessage

我的基本數據源類看起來像這樣(簡化):

<?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應用程序中使用這些模型/數據源。

我實現了我的AWS數據源按the CakePHP cookbook命名爲create()read()update()delete()方法,但他們似乎沒有被得到調用。我知道這是因爲我已將die()語句放在我的數據源中並帶有消息,並且執行從未停止。

我已經用盡食譜,所以如果任何人可以告訴我如何讓我的模型調用我的數據源類中的CRUD方法,那麼我將非常感激。

回答

0

我的不好。原來我的做法有缺陷。

數據源在數據庫配置中指定並指定爲AwsDataSource。因此,從未使用過S3DataSourceSqsDataSource,儘管這是我定義我的CRUD方法的地方,因此我的應用程序永遠不會退出(因爲在調用實際數據源AwsDataSource時未定義CRUD方法)。

看起來像是回到了繪圖板。

相關問題