lenius/basket

购物篮软件包

v5.0.1 2023-07-31 23:36 UTC

README

Latest Stable Version Basket Code Coverage Scrutinizer Code Quality Total Downloads License

Lenius 购物篮 Composer 包使得将购物篮集成到您的应用程序中变得容易,并使用提供的众多数据存储之一来存储篮子数据。如果您希望将篮子数据存储在其他地方,您还可以注入自己的数据存储。

安装

使用 composer

$ composer require lenius/basket:^4.0 (PHP7.4)
$ composer require lenius/basket:^5.0 (PHP8.x)

用法

以下是此软件包的基本用法指南。

实例化购物篮

在开始之前,您需要知道您将要使用哪种存储和标识方法。标识符是用来存储哪个购物篮属于该用户的。所以如果您的购物篮存储在数据库中,那么您需要一个cookie(或其他存储标识符的方式)以便我们可以将用户与存储的购物篮关联起来。

在本例中,我们将使用cookie标识符和会话进行存储。

use Lenius\Basket\Basket;
use Lenius\Basket\Storage\Session;
use Lenius\Basket\Identifier\Cookie;

$basket = new Basket(new Session, new Cookie);

将项目插入购物篮

将项目插入购物篮非常简单。所需的键是id、name、price、weight和quantity,尽管您可以传递任何您喜欢的自定义数据。

$basket->insert(new Item([
    'id'       => 'foo',
    'name'     => 'bar',
    'price'    => 100,
    'quantity' => 2,
    'weight'   => 300
]));

将具有选项的项目插入购物篮

将项目插入购物篮非常简单。所需的键是id、name、price和quantity,尽管您可以传递任何您喜欢的自定义数据。如果选项项目包含价格或重量,则这些值将添加到产品的总重量/价格中。

$basket->insert(new Item([
    'id'         => 'foo',
    'name'       => 'bar',
    'price'      => 100,
    'quantity'   => 2,
    'weight'     => 300,
    'options'    => [
       [
        'name'   => 'Size',
        'value'  => 'L',
        'weight' => 50,
        'price'  => 10
       ],
     ],
]));

设置项目的税率

您可以传递给您的插入方法的另一个键是'tax'。这是一个百分比,您希望将其添加到项目的价格上。

在下面的示例中,我们将使用25%的税率。

$basket->insert(new Item([
    'id'       => 'mouseid',
    'name'     => 'Mouse',
    'price'    => 100,
    'quantity' => 1,
    'tax'      => 25,
    'weight'   => 200
]));

更新购物篮中的项目

您可以通过更新购物篮项上的任何属性来更新您的购物篮中的项目。例如,如果您在购物篮循环中,则可以使用以下示例更新特定的项目。

foreach ($basket->contents() as $item) {
    $item->name = 'Foo';
    $item->quantity = 1;
}

销毁/清空购物篮

您可以通过使用destroy()方法完全清空/销毁购物篮。

$basket->destroy()

检索购物篮内容

您可以通过以下方法循环购物篮内容

$basket->contents();

您还可以通过将第一个参数传递为true来将购物篮项作为数组返回

$basket->contents(true);

检索购物篮中的项目总数

$basket->totalItems();

检索购物篮总额

$basket->total();

默认情况下,total()方法将返回购物篮的总值作为一个float,这将包括任何项目税。如果您想检索不包含税的购物篮总额,您可以传递false给total()方法。

$basket->total(false);

检查购物篮中是否有项目

$basket->has($itemIdentifier);

从购物篮中删除项目

$basket->remove($identifier)

通过标识符检索项目对象

$basket->item($itemIdentifier);

购物篮项目

购物篮项目具有一些特性,可能在集成购物篮时也有帮助。

检查项目是否有选项

您可以使用hasOptions()方法检查购物篮项目是否有选项。

foreach ($basket->contents() as $item) {
    if ($item->hasOptions()) {
        // We have options
    }
}

您还可以获取单个项目的总重量

$item->weight();

以数组的形式输出项目数据

$item->toArray();

测试

使用以下命令运行测试

composer psalm
composer stan
composer test

贡献

请参阅CONTRIBUTING以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过info@lenius.dk发送电子邮件,而不是使用问题跟踪器。

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。