trilations/equatable

A library for an equatable concept

2.0.0 2022-08-19 10:20 UTC

This package is auto-updated.

Last update: 2024-04-19 14:13:48 UTC


README

A library (composer package) for managing the EquatableInterface and EquatableTrait.

Equatable can indicate whether the current object is equal to another object.

Installation

Add it to your composer.json:

{
    "repositories": [
        {
        "type": "vcs",
        "url":  "https://gitlab.com/trilations/equatable.git"
        }
    ],
    "require": {
        "trilations/equatable": "^2.0"
    }
}

And run composer update:

composer update

Usage

use Trilations\Equatable\Interfaces\EquatableInterface;
use Trilations\Equatable\Traits\EquatableTrait;

// Say, we have 2 objects ($a and $b) that we want to compare
// And $a implements EquatableInterface
if ($a instanceof EquatableInterface) {
    $result = $a->equals($b);
    return $result;
}

Contributing

Installation

# make sure you have php 7.4 or higher
php -v

# make sure you have composer installed
composer -v

# clone the repository
git clone git@gitlab.com:trilations/Equatable.git

# cd into the directory
cd Equatable

# install dependencies
composer install

Tests

# running all tests
./vendor/bin/phpunit

# checking the code coverage (requires Xdebug)
./vendor/bin/phpunit --coverage-text
./vendor/bin/phpunit --coverage-html coverage.html # generate html report

# you might need to prefix these commands with XDEBUG_MODE=coverage
XDEBUG_MODE=coverage ./vendor/bin/phpunit --coverage-text

Additionally, you should regularly check for any incompatibilies with our supported PHP versions:

# Runs the sniffer script as defined in composer.json
composer sniffer:php7.4
composer sniffer:php8.0
composer sniffer:php8.1