Commit Graph

344 Commits

Author SHA1 Message Date
Ben Ramsey 19f01c7985 No longer set variant/version bits inside the time generator 2020-01-21 16:38:07 -06:00
Ben Ramsey bf237a1962 Change UuidBuilderInterface::build() to accept bytes instead of fields 2020-01-21 15:49:18 -06:00
Ben Ramsey 13aaa217fa Add specific validator for RFC 4122 variant UUIDs 2020-01-20 21:06:37 -06:00
Ben Ramsey 7ea7e4282e Validate fields passed to specific UUID version classes 2020-01-20 21:05:06 -06:00
Ben Ramsey a5c7314f8d Fix string passed to DateTimeImmutable 2020-01-20 21:04:26 -06:00
Ben Ramsey a8d52100de Support microtime in returned DateTimeInterface instances
Fixes #90 and supersedes #93.
2020-01-19 23:21:48 -06:00
Ben Ramsey 124e267553 Remove UnsatisfiedDependencyException 2020-01-18 18:45:00 -06:00
Ben Ramsey 3c975dd194 Add v2() convenience function for version 2 UUIDs 2020-01-18 18:45:00 -06:00
Ben Ramsey 59dc5bf06d Move deprecated methods to DeprecatedUuidMethodsTrait 2020-01-18 14:57:05 -06:00
Ben Ramsey 9c4f45e5c1 Move deprecated interface methods to DeprecatedUuidInterface 2020-01-18 14:27:17 -06:00
Ben Ramsey 268e66aad8 Add static Uuid::uuid2() method 2020-01-18 14:14:47 -06:00
Ben Ramsey 72a2312f62 Support generation of version 2 (DCE Security) UUIDs 2020-01-18 12:14:01 -06:00
Ben Ramsey b52fff6b52 Build number and time converters when setting calculator 2020-01-18 12:14:01 -06:00
Ben Ramsey 8202946225 Add NilUuid concrete class to represent nil UUIDs 2020-01-18 12:14:01 -06:00
Ben Ramsey 0cfd017034 Mark more methods on UuidInterface and Uuid for deprecation 2020-01-18 12:14:01 -06:00
Ben Ramsey 0b64d6d995 Optimize how OrderedTimeCodec rearranges bytes and validates instances 2020-01-18 12:14:01 -06:00
Ben Ramsey 12a2b0680d Add individual concrete classes for each version of RFC 4122 UUID 2020-01-18 12:14:01 -06:00
Ben Ramsey 5d1f106882 Rename Validator\Validator to Validator\GenericValidator 2020-01-18 12:14:00 -06:00
Ben Ramsey 2ad77d9ca7 Remove CalculatorInterface as a Uuid constructor parameter 2020-01-18 12:14:00 -06:00
Ben Ramsey 52f764c284 Change first constructor param in Uuid to Rfc4122\FieldsInterface 2020-01-18 12:14:00 -06:00
Ben Ramsey 360261d617 Deprecate all the fields methods on UuidInterface and Uuid 2020-01-18 12:14:00 -06:00
Ben Ramsey 10624f64a1 Change return type of Uuid::getFields() to FieldsInterface 2020-01-18 12:14:00 -06:00
Ben Ramsey c11c023796 Address static analysis issues and add additional tests 2020-01-18 12:13:59 -06:00
Ben Ramsey 37f72746a7 Remove checks that are no longer necessary 2020-01-18 12:13:59 -06:00
Ben Ramsey c80ad2606f Deprecate degraded UUIDs; they are no longer necessary 2020-01-18 12:13:59 -06:00
Ben Ramsey d543895369 Return string integers instead of int integers 2020-01-18 12:13:58 -06:00
Ben Ramsey 4125885862 Add getTime() to TimeProviderInterface and mark currentTime() deprecated 2020-01-18 12:13:58 -06:00
Ben Ramsey 1e26916bf6 Add getTimestamp() and getClockSeq() to FieldsInterface 2020-01-18 12:13:58 -06:00
Ben Ramsey d665ec8e88 Provide a fallback time converter in case of integers too big 2020-01-18 12:13:58 -06:00
Ben Ramsey 63942c393d Remove Gmp converters; the generic converters are preferred 2020-01-18 12:13:58 -06:00
Ben Ramsey 3546a86f7d Deprecate BigNumberConverter and BigNumberTimeConverter 2020-01-18 12:13:58 -06:00
Ben Ramsey 9b2c93c5b5 Add generic converters for numbers and time 2020-01-18 12:13:58 -06:00
Ben Ramsey cd03f39e9c Depend on brick/math for arbitrary-precision math 2020-01-18 12:13:58 -06:00
Ben Ramsey 07fc6b8f6f Add Hexadecimal, IntegerValue, and Time types 2020-01-18 12:13:57 -06:00
Massimiliano Arione 776e472808 add typehints and return types 2020-01-18 12:13:57 -06:00
Ben Ramsey 668b6ab9a2 Use the codec to encode to binary when using Uuid::getBytes() 2020-01-18 12:13:57 -06:00
Ben Ramsey 4d1db4d090 Clean up class naming conventions 2020-01-18 12:13:57 -06:00
Ben Ramsey ebaa04a6b2 Improve coverage and unit tests for fields, GUIDs, and nonstandard UUIDs 2020-01-18 12:13:57 -06:00
Ben Ramsey 70eace9086 Introduce separate classes to handle nonstandard UUIDs 2020-01-18 12:13:57 -06:00
Ben Ramsey d6ed9b3832 Introduce separate class support for GUIDs 2020-01-18 12:13:57 -06:00
Ben Ramsey d4dd45e908 Apply fields functionality to Uuid class 2020-01-18 12:13:57 -06:00
Ben Ramsey 24311f2925 Introduce FieldsInterface and base classes for fields support 2020-01-18 12:13:56 -06:00
Ben Ramsey ef999c2b2c Update coding style to include PSR-12, among other options
This also includes heavy use of slevomat/coding-standard to apply
various checks to the code, based on maintainer (me) preference.
2020-01-18 12:13:56 -06:00
Massimiliano Arione 0e7cdfe620 add typehints and return types 2020-01-18 12:13:56 -06:00
Ben Ramsey 3e81dad348 Fix static analysis issues with tests 2020-01-18 12:13:56 -06:00
Ben Ramsey 8e79ff851a Address Psalm errors 2020-01-18 12:13:56 -06:00
Ben Ramsey c0a2ef7d15 Use correct phpcs configuration when running from Travis CI 2020-01-18 12:13:56 -06:00
Ben Ramsey ffc400e009 Change UuidInterface::getInteger() to always return a string value 2020-01-18 12:13:56 -06:00
Ben Ramsey b7f9dc5010 Check for RFC 4122, version 1 UUIDs with OrderedTimeCodec 2020-01-18 12:13:56 -06:00
Barney Laurance bdc9170edc Run Psalm on src as well as Static Analysis Fixture (#282)
* Run Psalm on src as well as Static Analysis Fixture

Psalm baselining feature is used to prevent immediate build failures -
psalm will just cause failures for errors caused by future changes to
the code.

See https://psalm.dev/docs/running_psalm/dealing_with_code_issues/#using-a-baseline-file

* Fix MixedArgument issues in OrderedTimeCodec

Potentially unpack should be documented as returning string[] instead of
array to make this unecassary.

* Fix Psalm PossiblyNullPropertyAssignmentValue issues

* Add psalm-immutable annotation to Uuid class

* Fix Psalm MixedArgument issues

* Fix MissingImmutableAnnotation psalm issue

* Fix Psalm MixedAssignment issue

* Fix Psalm InvalidReturnStatement / InvalidReturnType issue

* Add ImpureMethodCall issues to baseline.

Fixing these in one place just moves them somewhere else.

* Exclude psalm-baseline.xml from exported git archives
2020-01-18 12:13:56 -06:00