lenius / basket
购物篮软件包
Requires
- php: ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.4
- php-coveralls/php-coveralls: 2.5.2
- phpstan/phpstan: ^1.7
- phpunit/phpunit: ^9.0
- squizlabs/php_codesniffer: 3.6.2
- vimeo/psalm: ^5.0
README
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)。请参阅许可证文件以获取更多信息。