【问题标题】:Custom datasource in CakePHP not workingCakePHP 中的自定义数据源不起作用
【发布时间】:2013-06-01 20:43:22
【问题描述】:

我正在尝试在 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 应用程序中使用这些模型/数据源。

我已经按照 the CakePHP cookbook 在我的 AWS 数据源中实现了名为 create()read()update()delete() 的方法,但它们似乎没有被调用。我知道这一点是因为我已将 die() 语句与消息一起放入我的数据源中,并且执行永远不会停止。

我已经用完了这本食谱,所以如果有人能告诉我如何让我的模型在我的数据源类中调用 CRUD 方法,我将不胜感激。

【问题讨论】:

    标签: cakephp model datasource


    【解决方案1】:

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

    数据源在数据库配置中指定并指定为AwsDataSource。因此,S3DataSourceSqsDataSource 从未使用过,即使那是我定义我的 CRUD 方法的地方,因此我的应用程序永远不会退出(因为 CRUD 方法未在 AwsDataSource 中定义,实际数据源被调用) .

    看起来又回到了绘图板上。

    【讨论】:

      猜你喜欢
      • 2014-08-08
      • 2015-05-31
      • 1970-01-01
      • 2015-06-07
      • 2023-03-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-02
      相关资源
      最近更新 更多