CakePHP中的自定义数据源不起作用



我正在尝试为CakePHP中的Amazon Web Services创建一个自定义数据源。我的方法如下:

  • 基本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应用程序中使用这些模型/数据源。

我已经实现了方法命名为create(), read(), update()delete()在我的AWS数据源按照CakePHP食谱,但他们似乎没有被调用。我知道这一点,因为我已经将die()语句与消息一起放在我的数据源中,并且执行从未停止。

我已经用尽了烹饪书,所以如果有人能告诉我如何让我的模型调用我的数据源类中的CRUD方法,那么我将非常感激。

我的错。原来我的方法是有缺陷的。

数据源在数据库配置中指定,指定为AwsDataSource。因此,从未使用过S3DataSourceSqsDataSource,尽管我在那里定义了CRUD方法,因此我的应用程序从未退出(因为CRUD方法没有在AwsDataSource中定义,即调用的实际数据源)。

看起来又要从头开始了