承接 dnkmdg/price-tidy 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

dnkmdg/price-tidy

最新稳定版本:1.0

Composer 安装命令:

composer require dnkmdg/price-tidy

包简介

Seamless price rounding and adjustment

README 文档

README

GitHub Actions Workflow Status GitHub Release GitHub Downloads (all assets, all releases)

PriceTidy is a PHP library for seamless price rounding and adjustment using various rounding strategies.

Installation

To install PriceTidy, you can use Composer:

composer require dnkmdg/price-tidy

Usage

Here's a basic example of how to use PriceTidy:

use Dnkmdg\PriceTidy\PriceTidy;
use Dnkmdg\PriceTidy\Strategies\RoundUpToNearestIntegerStrategy;

$priceTidy = new PriceTidy(10.5, 1.25, new RoundUpToNearestIntegerStrategy());
echo $priceTidy->priceIncVat; // Output: 14

Rounding Strategies

PriceTidy supports multiple rounding strategies:

  • RoundUpToNearestIntegerStrategy: Rounds up to the nearest integer.
  • RoundUpToNearestNineStrategy: Rounds up to the nearest nine.
  • RoundUpToNearestTenStrategy: Rounds up to the nearest ten.
  • RoundUpToNearestHundredStrategy: Rounds up to the nearest hundred.
  • EuroStrategy: Example of a custom rounding strategy.

Example

use Dnkmdg\PriceTidy\PriceTidy;
use Dnkmdg\PriceTidy\Strategies\RoundUpToNearestTenStrategy;

$priceTidy = new PriceTidy(10.5, 1.25, new RoundUpToNearestTenStrategy());
echo $priceTidy->priceIncVat; // Output: 20

Custom Rounding Strategy

You can create your own custom rounding strategy by extending the RoundingStrategy abstract class and implementing the round method.

Here's an example of a custom rounding strategy that rounds to the nearest five:

namespace Dnkmdg\PriceTidy\Strategies;

class RoundToNearestFiveStrategy extends RoundingStrategy
{
    public function round(float $value): float
    {
        return round($value / 5) * 5;
    }
}

To use this custom strategy with PriceTidy:

use Dnkmdg\PriceTidy\PriceTidy;
use Dnkmdg\PriceTidy\Strategies\RoundToNearestFiveStrategy;

$priceTidy = new PriceTidy(10.5, 1.25, new RoundToNearestFiveStrategy());
echo $priceTidy->priceIncVat; // Output will be 15

Running Tests

To run the tests, use PHPUnit:

vendor/bin/pest

License

This project is licensed under the MIT License.

Authors

Contributing

Contributions are welcome! Please open an issue or submit a pull request.

This project is licensed under the MIT License.

统计信息

  • 总下载量: 100
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-11-01

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固