php-extended/php-integer-capacity-object

A library that implements the php-extended/php-integer-capacity-interface package

4.3.0 2022-05-31 06:39 UTC

README

A library that implements the php-extended/php-integer-capacity-interface package

coverage build status

Installation

The installation of this library is made via composer. Download composer.phar from their website. Then add to your composer.json :

	"require": {
		...
		"php-extended/php-integer-capacity-object": "^4",
		...
	}

Then run php composer.phar update to install this library. The autoloading of all classes of this library is made through composer's autoloader.

Basic Usage

This library provides 4 classes to specify integer capacities from different containers.

  • The BitIntegerCapacity class uses bits to count the capacity of integers
  • The ByteIntegerCapacity class uses 8-bits bytes to count the capacity of integers
  • The StringIntegerCapacity class uses decimal digits arranged in a string to count the capacity of integers
  • The HexaIntegerCapacity class uses hexadecimal digits arranged in a string to count the capacity of integers.

All those classes are usable the following way:


use PhpExtended\Model\BitIntegerCapacity;
use PhpExtended\Model\ByteIntegerCapacity;
use PhpExtended\Model\StringIntegerCapacity;

$capacity = new BitIntegerCapacity(32);
// $capacity is now a 32-bit integer capacity

$capacity = new ByteIntegerCapacity($capacity);
// $capacity is now a 4-byte integer capacity

$capacity = new StringIntegerCapacity($capacity);
// $capacity is now a 10-digits integer capacity

$capacity = new BitIntegerCapacity($capacity);
// $capacity is now a 33-bit integer capacity
// note that due to roundings and the ever expanding 
// available maximum value, the number of bits needed to
// encode the same information increases !

All those classes may be built with a positive non-zero integer as capacity, or another instance of the PhpExtended\Model\IntegerCapacityInterface.

A resolver is also provided to unserialize the data given by the __toString() method that may be used with integer capacities.


use PhpExtended\Model\IntegerCapacityResolver;

$resolver = new IntegerCapacityResolver();
$capacity = $resolver->resolveCapacity('8 bits');
// $capacity is now a BitIntegerCapacity with 8 as bit value.

License

MIT (See license file).