Я пытаюсь создать собственный источник данных для Amazon Web Services в CakePHP. Мой подход заключается в следующем:Пользовательский источник данных в CakePHP не работает
- Base
AwsDataSource
, который создает подпись, делает фактические запросы HTTP и т.д. - Различные источники данных для каждого продукта AWS (т.е. S3, SQS и т.д.), которые расширяют этот класс и определяют конечную точку для использования
- Модели для таких вещей, как
S3Bucket
,SqsQueue
,SqsMessage
и так далее
Мой базовый класс DataSource выглядит следующим образом (упрощенно):
<?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;
}
Моя проблема приходит пытается использовать эти модели/DataSources в моем CakePHP приложение.
Я реализовал методы, названные create()
, read()
, update()
и delete()
в моем AWS источника данных, как на the CakePHP cookbook, но они, кажется, не вызывался. Я знаю это, потому что я поставил die()
заявления в моем источнике данных с сообщением, и выполнение никогда не останавливается.
Я исчерпал поваренную книгу, поэтому, если кто-нибудь может показать мне, как заставить мои модели называть методы CRUD в моих классах источников данных, я был бы очень благодарен.