我正在尝试在CakePHP中为Amazon Web Services创建自定义数据源。我的方法如下:
AwsDataSource
,发出实际的HTTP请求等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 :(得分:0)
我的坏。事实证明我的方法存在缺陷。
数据源在数据库配置中指定,并指定为AwsDataSource
。因此,永远不会使用S3DataSource
或SqsDataSource
,即使我已经定义了我的CRUD方法,因此我的应用程序永远不会退出(因为CRUD方法未在AwsDataSource
中定义,被调用的实际数据源。)
看起来它又回到了绘图板。