[英]Class 'WriteRequestBatch' not found error in Codeigniter - AWS php SDK
抱歉,我是AWS SDK的新手,但是我需要使用WriteRequestBatch将25条记录的批量添加到一个表中。
我正在使用Codeigniter并尝试使用以下代码进行操作:
function new_save($data_set)
{
$tableName = 'my-table';
$dynamodb = $this->aws_sdk->dynamo_db();
$data_to_save = $this->create_dynamo_data($data_set);
$putBatch = WriteRequestBatch::factory($dynamodb);
foreach ($data_to_save as $record)
{
$record = Item::fromArray($item);
$putBatch->add(new PutRequest($record, $tableName));
}
$putBatch->flush();
}
但它因以下错误而停止:
PHP Fatal error: Class 'WriteRequestBatch' not found in (...)
我刚刚开始使用新的SDK,并且能够获取数据和更新表吞吐量设置等,仅此任务对我完全失败:-(
顺便说一句-这是我在这里的第一篇文章,我尝试在Google等上搜索答案,但只找到了我已经使用过的相同示例代码。
我创建了一个像这样的库:
require('/var/www/xx-aslan/aws_sdk_ver2/aws-autoloader.php');
use Aws\Common\Aws;
class Aws_sdk
{
// Create a service locator using a configuration file
private static $aws = array(
'key' => '***********',
'secret' => '******',
'region' => '****'
);
function aws()
{
return Aws::factory(self::$aws);
}
function dynamo_db()
{
$aws = $this->aws();
return $aws->get('DynamoDb');
}
然后将其加载到其中模型new_save()为的模型中:
$this->load->library('aws_sdk');
有人可以帮我吗? 我知道这可能是一个非常新手的问题,对不起:-(
提前致谢! 卡西亚
如果更改无效:
$this->load->library('aws_sdk');
至
$this->load->library('Aws_sdk');
正如我在评论中建议的那样,尝试像这样调用它:
$putBatch = aws_sdk->WriteRequestBatch::factory($dynamodb);
每次使用aws_sdk
库时,都将执行此操作。
希望这可以帮助。
AWS开发工具包或CI都不是问题。 这些类具有名称空间,因此您必须导入它们以使其可用。
在引用它们的同一文件中,在文件顶部/附近(在任何类或函数声明之外)添加use
语句。
<?php
// ...
use Aws\DynamoDb\Model\BatchRequest\PutRequest;
use Aws\DynamoDb\Model\BatchRequest\WriteRequestBatch;
use Aws\DynamoDb\Model\Item;
// ...
function new_save($data_set)
{
// ...
$putBatch = WriteRequestBatch::factory($dynamodb);
// ...
}
// ...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.