scheb/comparator

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

比较值是否相等

v1.0.0 2018-09-02 12:38 UTC

This package is auto-updated.

Last update: 2022-01-11 13:25:31 UTC


README

Build Status Scrutinizer Code Quality Code Coverage Latest Stable Version License

此库用于比较两个值是否相等。

如果您需要添加自己的规则来比较特定值,可以通过扩展库来使用您自己的比较策略。

功能

  • 简单的相等比较(=====
  • 用于您自己的比较规则的策略接口

安装

composer require scheb/comparator

如何使用

$comparator = new \Scheb\Comparator\Comparator(true); // Type-sensive equal (===)
$comparator->isEqual(0, "0"); // Returns false
$comparator->isEqual(0, ""); // Returns false
$comparator->isEqual(0, 0); // Returns true
$comparator->isEqual(0, "foo"); // Returns false

$comparator = new \Scheb\Comparator\Comparator(false); // Type-insensive equal (==)
$comparator->isEqual(0, "0"); // Returns true
$comparator->isEqual(0, ""); // Returns true
$comparator->isEqual(0, 0); // Returns true
$comparator->isEqual(0, "foo"); // Returns false

如何扩展

要添加自己的比较策略,实现 Scheb\Comparator\ValueComparisonStrategyInterface

然后,通过构造函数参数 $customComparisonStrategies 添加该类的实例到 Scheb\Comparator\Comparator

自定义比较策略优先于默认策略。

贡献

您可以通过在问题部分创建拉取请求或功能请求来为此库做出贡献。对于拉取请求,请遵循以下指南

  • Symfony 代码风格
  • PHP7.1 类型提示用于所有内容(包括:返回类型、void、可空类型)
  • 请添加/更新测试用例
  • 测试方法应命名为 [方法]_[场景]_[预期结果]

要运行测试套件,使用 composer install 安装依赖项,然后执行 bin/phpunit

许可

此软件包可在MIT 许可证下获得。