Skip to content

2.0.0

Compare
Choose a tag to compare
@github-actions github-actions released this 20 Dec 00:12
· 29 commits to main since this release
aaabf91

Added

  • OpenSoutheners\ByteUnitConverter\MetricSystem enum for decimal or binary metric systems
  • OpenSoutheners\ByteUnitConverter\DataUnit enum for bytes or bits data units
  • In order to support long numbers most-precisive operations now this library requires BCMath PHP extension
  • ByteUnitConverter::toArray method to serialise to array
  • ByteUnitConverter::__toString method to serialise to string with the closest unit appended
  • ByteUnitConverter::__serialize & ByteUnitConverter::__deserialize methods to object serialization and deserialization
  • ByteUnit::lowerThan method to check current unit lower than specified (opposite than already available greaterThan)
  • ByteUnitConverter::new convenience method to create an instance of ByteUnitConverter class
  • ByteUnitConverter::usingBits & ByteUnitConverter::usingBytes to switch data units (using bytes by default)
  • ByteUnitConverter::asRound while precision method only operates during decimal conversions, this method will return a round number with no decimals (defaulted to false). E.g:
(string) ByteUnitConverter::new('1924')->toKiB(); // "1.87 KiB"
(string) ByteUnitConverter::new('1924')->asRound()->toKiB(); // "2 KiB"

Fixed

  • Support to long numbers (floats or integers on PHP must be strings)
  • Working with conversions sometimes returns float numbers when integers were the only allowed
  • Correctness in all conversions and comparisons between different systems (decimal to binary, bytes to bits...)

Changed

  • OpenSoutheners\ByteUnitConverter\DecimalByteUnit & OpenSoutheners\ByteUnitConverter\BinaryByteUnit replaced by OpenSoutheners\ByteUnitConverter\ByteUnit
  • Precision argument to from and toBytesFromUnit methods
  • to* methods (toTB, toGB, toMB, etc...) now returns instance instead of number. Use the following to get it casted to a string:
(string) ByteUnitConverter::new('1024')->toKiB(); // "1.00 KiB"

Removed

  • ByteUnitConverter::conversion static method (simplified to ByteUnitConverter::new()->to...)
  • ByteUnitConverter::toBitsFromUnit static method (we only use bytes as a starter, can switch to bits while having an instance but not before)