fei/bid-client

此包已废弃且不再维护。未建议替代包。

Flash 应用性出价 - 客户端组件

安装: 154

依赖者: 1

建议者: 0

安全: 0

星标: 0

关注者: 20

分叉: 0

开放性问题: 0

类型:项目

v2.0.9 2019-01-23 17:23 UTC

This package is auto-updated.

Last update: 2022-01-29 03:00:32 UTC


README

这是您应该用于构建出价会话的客户端。

客户端可以使用两种传输方式发送请求

  • BeanstalkProxyTransport 实现的异步传输
  • BasicTransport 实现的同步传输

BeanstalkProxyTransport 通过将位置属性发送到 Beanstalkd 队列来将 API 消费委托给工作者。

BasicTransport 使用 经典 HTTP 层发送电子邮件。

如果设置了异步传输,它将作为默认传输。当异步传输失败时,同步传输将是后备。

本文档中的所有示例都将仅使用 BasicTransport

安装

将此要求添加到您的 composer.json 中:"fei/bid-client": : "^1.0"

或在您的终端中执行 composer.phar require fei/bid-client

基本用法

出价是出价的容器。因此,如果您想出价,您必须首先创建一个出价会话。

<?php

use Fei\ApiClient\Transport\BasicTransport;
use Fei\Service\Bid\Client\Bidder;
use Fei\Service\Bid\Client\Exception\UniqueConstraintException;
use Fei\Service\Bid\Entity\Auction;

$bidder = new Bidder([Bidder::OPTION_BASEURL => 'https://:8080']);
$bidder->setTransport(new BasicTransport());

$auction = (new Auction())
    ->setKey('a key ' . time())
    ->setStartAt(new \DateTime())
    ->setEndAt(new \DateTime('+1 day'))
    ->setMinimalBid('100')
    ->setBidStep('10')
    ->setBidStepStrategy(Auction::BASIC_STRATEGY);

try {
    $bidder->createAuction($auction);
} catch (UniqueConstraintException $e) {
    echo 'Auction entity is not unique (key already exists)' . PHP_EOL;
    exit();
}

// Do what you want is you new Auction instance...

当您创建出价时,您必须选择一个 步长策略,该策略用于验证请求的出价金额与 出价步长 的值以及当前出价会话中最后授权的出价金额。

  • Auction::BASIC_STRATEGY:验证出价金额大于当前出价会话的最后出价金额加上 出价步长
  • Auction::PERCENT_STRATEGY:验证出价金额大于当前出价会话的最后出价金额加上由 出价步长 定义的一定比例的金额。在此策略中,出价步长 的单位是百分比。

如您在上面示例中所见,方法 Bidder::createAuction 返回一个标识的出价实例,这将允许您发送 Bid 实例

<?php

use Fei\Service\Bid\Client\Bidder;
use Fei\ApiClient\Transport\BasicTransport;
use Fei\Service\Bid\Entity\Bid;

$bidder = new Bidder([Bidder::OPTION_BASEURL => 'https://:8080']);
$bidder->setTransport(new BasicTransport());

// Create a new Auction session...

$bid = $bidder->bid(
    $auction,
    (new Bid())
        ->setBidder('a bidder id')
        ->setAmount(120)
        ->setContext([
            'key1' => 'value1',
            'key2' => 'value2'
        ])
);

Bidder::createAuction 相同的行为,Bidder::bid 返回一个标识的 Bid 实例。

请注意,AuctionBid 都是 可上下文化的。因此,您可以附加各种(或自由)上下文(键/值对)到您的实体,然后使用自由过滤器检索出价。

检索出价和出价

获取出价

您可以使用 Bidder::getAuction($key) 获取出价实例。

示例

<?php

use Fei\ApiClient\Transport\BasicTransport;
use Fei\Service\Bid\Client\Bidder;

$bidder = new Bidder([Bidder::OPTION_BASEURL => 'https://:8080']);
$bidder->setTransport(new BasicTransport());

$auction = $bidder->getAuction('a key');

printf('Auction id=%d, key=`%s`, created_at=`%s`' . PHP_EOL,
    $auction->getId(),
    $auction->getKey(),
    $auction->getCreatedAt()->format(\DateTime::ISO8601)
);

获取出价中的出价

让我们看看如何从出价会话中检索出价。

  • Bidder::getAuctionBids(Auction $auction, array $criteria = []) 返回一个出价实例的集合(更确切地说是一个 EntitySet 实例),该实例附加到响应于标准筛选条件的 Auction 实例(见下文)

出价搜索条件

条件 描述 类型 可能值
Bidder::CRITERIA_CONTEXT_KEY 要搜索的上下文键(与 Bidder::CRITERIA_CONTEXT_OPERATORBidder::CRITERIA_CONTEXT_VALUE 一起使用) 字符串 任何字符串
Bidder::CRITERIA_CONTEXT_OPERATOR Bidder::CRITERIA_CONTEXT_VALUE 搜索操作符(与 Bidder::CRITERIA_CONTEXT_KEYBidder::CRITERIA_CONTEXT_VALUE 一起使用)示例: ['Bidder::CRITERIA_CONTEXT_KEY' => 'a key', 'Bidder::CRITERIA_CONTEXT_OPERATOR' => '=', 'Bidder::CRITERIA_CONTEXT_VALUE' => 'a value'] 字符串 可以是 like=<><>!=& 或 `
Bidder::CRITERIA_CONTEXT_VALUE 要搜索的上下文值(与 Bidder::CRITERIA_CONTEXT_KEYBidder::CRITERIA_CONTEXT_OPERATOR 一起使用) 字符串 任何字符串

示例

<?php

use Fei\ApiClient\Transport\BasicTransport;
use Fei\Service\Bid\Client\Bidder;

$bidder = new Bidder([Bidder::OPTION_BASEURL => 'https://:8080']);
$bidder->setTransport(new BasicTransport());

$auction = $bidder->getAuction('a key');

// Retrieves all bids
$bids = $bidder->getAuctionBids($auction);

foreach ($bids as $bid) {
    print_r($bid->toArray());
}

其他工具

有其他方法可以帮助进行拍卖和竞标管理

  • Bidder::updateAuction(Auction $auction) 更新 Auction 实例
  • Bidder::dropAuction(Auction $auction) 删除 Auction 实例(即永久删除)
  • Bidder::dropBid(Bid $bi) 删除 Bid 实例

客户端选项

以下选项可用于传递给 __construct()setOptions() 方法

选项 描述 类型 可能值 默认
OPTION_BASEURL 这是发送请求的服务器。 字符串 任何 URL,包括协议但排除路径 -
OPTION_HEADER_AUTHORIZATION 用于身份验证的 API 密钥。 字符串 任何字符串值 ''