create-prisma-php-app 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.txt +9 -0
- package/README.md +158 -0
- package/composer.json +23 -0
- package/composer.lock +812 -0
- package/dist/bootstrap.php +4 -0
- package/dist/index.js +2 -0
- package/dist/node_modules/prisma-client-php/index.enc +1 -0
- package/dist/node_modules/prisma-client-php/index.js +2 -0
- package/dist/node_modules/prisma-client-php/key.enc +1 -0
- package/dist/node_modules/prisma-client-php/package.json +7 -0
- package/dist/prisma/schema.prisma +32 -0
- package/dist/prisma/seed.js +68 -0
- package/dist/public/assets/images/prisma-php.png +0 -0
- package/dist/public/css/styles.css +0 -0
- package/dist/public/css/tailwind.css +3 -0
- package/dist/public/favicon.ico +0 -0
- package/dist/public/index.php +64 -0
- package/dist/settings/paths.php +10 -0
- package/dist/settings/project-settings.js +6 -0
- package/dist/src/app/api/api.php +39 -0
- package/dist/src/app/classes/Validator.php +77 -0
- package/dist/src/app/model/IModel.php +22 -0
- package/package.json +35 -0
- package/tsconfig.json +110 -0
- package/vendor/autoload.php +25 -0
- package/vendor/brick/math/.editorconfig +15 -0
- package/vendor/brick/math/.gitattributes +11 -0
- package/vendor/brick/math/.github/FUNDING.yml +1 -0
- package/vendor/brick/math/.github/workflows/ci.yml +80 -0
- package/vendor/brick/math/CHANGELOG.md +445 -0
- package/vendor/brick/math/LICENSE +20 -0
- package/vendor/brick/math/README.md +247 -0
- package/vendor/brick/math/composer.json +34 -0
- package/vendor/brick/math/phpunit.php +51 -0
- package/vendor/brick/math/phpunit.xml +13 -0
- package/vendor/brick/math/psalm.xml +28 -0
- package/vendor/brick/math/random-tests.php +162 -0
- package/vendor/brick/math/src/BigDecimal.php +786 -0
- package/vendor/brick/math/src/BigInteger.php +1079 -0
- package/vendor/brick/math/src/BigNumber.php +512 -0
- package/vendor/brick/math/src/BigRational.php +445 -0
- package/vendor/brick/math/src/Exception/DivisionByZeroException.php +35 -0
- package/vendor/brick/math/src/Exception/IntegerOverflowException.php +23 -0
- package/vendor/brick/math/src/Exception/MathException.php +12 -0
- package/vendor/brick/math/src/Exception/NegativeNumberException.php +12 -0
- package/vendor/brick/math/src/Exception/NumberFormatException.php +33 -0
- package/vendor/brick/math/src/Exception/RoundingNecessaryException.php +19 -0
- package/vendor/brick/math/src/Internal/Calculator/BcMathCalculator.php +75 -0
- package/vendor/brick/math/src/Internal/Calculator/GmpCalculator.php +108 -0
- package/vendor/brick/math/src/Internal/Calculator/NativeCalculator.php +581 -0
- package/vendor/brick/math/src/Internal/Calculator.php +676 -0
- package/vendor/brick/math/src/RoundingMode.php +107 -0
- package/vendor/brick/math/tests/AbstractTestCase.php +86 -0
- package/vendor/brick/math/tests/BigDecimalTest.php +2596 -0
- package/vendor/brick/math/tests/BigIntegerTest.php +3782 -0
- package/vendor/brick/math/tests/BigNumberTest.php +53 -0
- package/vendor/brick/math/tests/BigRationalTest.php +993 -0
- package/vendor/brick/math/tests/CalculatorDetectTest.php +25 -0
- package/vendor/brick/math/tests/Internal/Calculator/NativeCalculatorTest.php +87 -0
- package/vendor/composer/ClassLoader.php +579 -0
- package/vendor/composer/InstalledVersions.php +359 -0
- package/vendor/composer/LICENSE +21 -0
- package/vendor/composer/autoload_classmap.php +15 -0
- package/vendor/composer/autoload_files.php +13 -0
- package/vendor/composer/autoload_namespaces.php +9 -0
- package/vendor/composer/autoload_psr4.php +20 -0
- package/vendor/composer/autoload_real.php +50 -0
- package/vendor/composer/autoload_static.php +122 -0
- package/vendor/composer/installed.json +825 -0
- package/vendor/composer/installed.php +132 -0
- package/vendor/composer/platform_check.php +26 -0
- package/vendor/firebase/php-jwt/.gitattributes +9 -0
- package/vendor/firebase/php-jwt/.github/release-please.yml +3 -0
- package/vendor/firebase/php-jwt/.github/workflows/tests.yml +57 -0
- package/vendor/firebase/php-jwt/.php-cs-fixer.dist.php +24 -0
- package/vendor/firebase/php-jwt/CHANGELOG.md +170 -0
- package/vendor/firebase/php-jwt/LICENSE +30 -0
- package/vendor/firebase/php-jwt/README.md +424 -0
- package/vendor/firebase/php-jwt/composer.json +42 -0
- package/vendor/firebase/php-jwt/phpstan.neon.dist +5 -0
- package/vendor/firebase/php-jwt/phpunit.xml.dist +18 -0
- package/vendor/firebase/php-jwt/src/BeforeValidException.php +18 -0
- package/vendor/firebase/php-jwt/src/CachedKeySet.php +268 -0
- package/vendor/firebase/php-jwt/src/ExpiredException.php +18 -0
- package/vendor/firebase/php-jwt/src/JWK.php +349 -0
- package/vendor/firebase/php-jwt/src/JWT.php +669 -0
- package/vendor/firebase/php-jwt/src/JWTExceptionWithPayloadInterface.php +20 -0
- package/vendor/firebase/php-jwt/src/Key.php +64 -0
- package/vendor/firebase/php-jwt/src/SignatureInvalidException.php +7 -0
- package/vendor/firebase/php-jwt/tests/CachedKeySetTest.php +598 -0
- package/vendor/firebase/php-jwt/tests/JWKTest.php +172 -0
- package/vendor/firebase/php-jwt/tests/JWTTest.php +543 -0
- package/vendor/firebase/php-jwt/tests/data/ec-jwkset.json +40 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa-private.pem +18 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa-public.pem +9 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa256-private.pem +4 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa384-private.pem +6 -0
- package/vendor/firebase/php-jwt/tests/data/ecdsa384-public.pem +5 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-1.pub +1 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-1.sec +1 -0
- package/vendor/firebase/php-jwt/tests/data/ed25519-jwkset.json +11 -0
- package/vendor/firebase/php-jwt/tests/data/rsa-jwkset.json +18 -0
- package/vendor/firebase/php-jwt/tests/data/rsa-with-passphrase.pem +42 -0
- package/vendor/firebase/php-jwt/tests/data/rsa1-private.pem +27 -0
- package/vendor/firebase/php-jwt/tests/data/rsa1-public.pub +9 -0
- package/vendor/firebase/php-jwt/tests/data/rsa2-private.pem +27 -0
- package/vendor/firebase/php-jwt/tests/data/secp256k1-private.pem +5 -0
- package/vendor/firebase/php-jwt/tests/data/secp256k1-public.pem +4 -0
- package/vendor/graham-campbell/result-type/.gitattributes +9 -0
- package/vendor/graham-campbell/result-type/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/graham-campbell/result-type/.github/CONTRIBUTING.md +31 -0
- package/vendor/graham-campbell/result-type/.github/FUNDING.yml +2 -0
- package/vendor/graham-campbell/result-type/.github/SECURITY.md +14 -0
- package/vendor/graham-campbell/result-type/.github/workflows/tests.yml +40 -0
- package/vendor/graham-campbell/result-type/CHANGELOG.md +43 -0
- package/vendor/graham-campbell/result-type/LICENSE +21 -0
- package/vendor/graham-campbell/result-type/README.md +42 -0
- package/vendor/graham-campbell/result-type/composer.json +33 -0
- package/vendor/graham-campbell/result-type/phpunit.xml.dist +13 -0
- package/vendor/graham-campbell/result-type/src/Error.php +121 -0
- package/vendor/graham-campbell/result-type/src/Result.php +69 -0
- package/vendor/graham-campbell/result-type/src/Success.php +120 -0
- package/vendor/graham-campbell/result-type/tests/ResultTest.php +95 -0
- package/vendor/hidehalo/nanoid-php/.editorconfig +15 -0
- package/vendor/hidehalo/nanoid-php/.gitattributes +8 -0
- package/vendor/hidehalo/nanoid-php/.github/workflows/php.yml +49 -0
- package/vendor/hidehalo/nanoid-php/.styleci.yml +1 -0
- package/vendor/hidehalo/nanoid-php/CHANGELOG.md +36 -0
- package/vendor/hidehalo/nanoid-php/CODE_OF_CONDUCT.md +74 -0
- package/vendor/hidehalo/nanoid-php/CONTRIBUTING.md +32 -0
- package/vendor/hidehalo/nanoid-php/ISSUE_TEMPLATE.md +27 -0
- package/vendor/hidehalo/nanoid-php/LICENSE.md +21 -0
- package/vendor/hidehalo/nanoid-php/PULL_REQUEST_TEMPLATE.md +43 -0
- package/vendor/hidehalo/nanoid-php/README.md +108 -0
- package/vendor/hidehalo/nanoid-php/benchmark/benchmark.php +24 -0
- package/vendor/hidehalo/nanoid-php/composer.json +62 -0
- package/vendor/hidehalo/nanoid-php/examples/basic_usage.php +24 -0
- package/vendor/hidehalo/nanoid-php/examples/custom_formated.php +29 -0
- package/vendor/hidehalo/nanoid-php/phpunit.xml +31 -0
- package/vendor/hidehalo/nanoid-php/src/Client.php +120 -0
- package/vendor/hidehalo/nanoid-php/src/Core.php +31 -0
- package/vendor/hidehalo/nanoid-php/src/CoreInterface.php +19 -0
- package/vendor/hidehalo/nanoid-php/src/Generator.php +13 -0
- package/vendor/hidehalo/nanoid-php/src/GeneratorInterface.php +13 -0
- package/vendor/hidehalo/nanoid-php/tests/ClientTest.php +76 -0
- package/vendor/hidehalo/nanoid-php/tests/CoreTest.php +37 -0
- package/vendor/hidehalo/nanoid-php/tests/GeneratorTest.php +34 -0
- package/vendor/hidehalo/nanoid-php/tests/Support/DummyGenerator.php +20 -0
- package/vendor/paragonie/random_compat/.gitattributes +14 -0
- package/vendor/paragonie/random_compat/.scrutinizer.yml +4 -0
- package/vendor/paragonie/random_compat/.travis.yml +59 -0
- package/vendor/paragonie/random_compat/CHANGELOG.md +3 -0
- package/vendor/paragonie/random_compat/LICENSE +22 -0
- package/vendor/paragonie/random_compat/RATIONALE.md +36 -0
- package/vendor/paragonie/random_compat/README.md +232 -0
- package/vendor/paragonie/random_compat/SECURITY.md +108 -0
- package/vendor/paragonie/random_compat/build-phar.sh +5 -0
- package/vendor/paragonie/random_compat/composer.json +34 -0
- package/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey +5 -0
- package/vendor/paragonie/random_compat/dist/random_compat.phar.pubkey.asc +11 -0
- package/vendor/paragonie/random_compat/lib/random.php +32 -0
- package/vendor/paragonie/random_compat/other/build_phar.php +57 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/COM.php +20 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/README.md +7 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/com_exception.php +11 -0
- package/vendor/paragonie/random_compat/other/ide_stubs/libsodium.php +90 -0
- package/vendor/paragonie/random_compat/phpunit.sh +60 -0
- package/vendor/paragonie/random_compat/phpunit.xml.dist +31 -0
- package/vendor/paragonie/random_compat/psalm-autoload.php +9 -0
- package/vendor/paragonie/random_compat/psalm.xml +19 -0
- package/vendor/paragonie/random_compat/tests/full/DieHardTest.php +61 -0
- package/vendor/paragonie/random_compat/tests/full/StatTest.php +52 -0
- package/vendor/paragonie/random_compat/tests/specific/capicom.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/dev_urandom.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/libsodium.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/libsodium_legacy.php +7 -0
- package/vendor/paragonie/random_compat/tests/specific/mcrypt.php +7 -0
- package/vendor/paragonie/random_compat/tests/unit/RandomBytesTest.php +80 -0
- package/vendor/paragonie/random_compat/tests/unit/RandomIntTest.php +63 -0
- package/vendor/paragonie/random_compat/tests/unit/UtilityTest.php +95 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/RandomBytesTest.php +100 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/RandomIntTest.php +82 -0
- package/vendor/paragonie/random_compat/tests/unit_with_basedir/UtilityTest.php +95 -0
- package/vendor/phpoption/phpoption/.gitattributes +14 -0
- package/vendor/phpoption/phpoption/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/phpoption/phpoption/.github/CONTRIBUTING.md +30 -0
- package/vendor/phpoption/phpoption/.github/FUNDING.yml +2 -0
- package/vendor/phpoption/phpoption/.github/SECURITY.md +14 -0
- package/vendor/phpoption/phpoption/.github/workflows/static.yml +74 -0
- package/vendor/phpoption/phpoption/.github/workflows/tests.yml +40 -0
- package/vendor/phpoption/phpoption/LICENSE +201 -0
- package/vendor/phpoption/phpoption/Makefile +26 -0
- package/vendor/phpoption/phpoption/README.md +194 -0
- package/vendor/phpoption/phpoption/composer.json +52 -0
- package/vendor/phpoption/phpoption/phpstan-baseline.neon +32 -0
- package/vendor/phpoption/phpoption/phpstan.neon.dist +8 -0
- package/vendor/phpoption/phpoption/phpunit.xml.dist +13 -0
- package/vendor/phpoption/phpoption/psalm.xml +12 -0
- package/vendor/phpoption/phpoption/src/PhpOption/LazyOption.php +175 -0
- package/vendor/phpoption/phpoption/src/PhpOption/None.php +136 -0
- package/vendor/phpoption/phpoption/src/PhpOption/Option.php +434 -0
- package/vendor/phpoption/phpoption/src/PhpOption/Some.php +169 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/EnsureTest.php +77 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/LazyOptionTest.php +200 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/NoneTest.php +153 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/OptionTest.php +160 -0
- package/vendor/phpoption/phpoption/tests/PhpOption/Tests/SomeTest.php +194 -0
- package/vendor/phpoption/phpoption/tests/bootstrap.php +8 -0
- package/vendor/phpoption/phpoption/vendor-bin/phpstan/composer.json +8 -0
- package/vendor/phpoption/phpoption/vendor-bin/psalm/composer.json +8 -0
- package/vendor/ramsey/uuid/.editorconfig +16 -0
- package/vendor/ramsey/uuid/.gitattributes +26 -0
- package/vendor/ramsey/uuid/.github/CODEOWNERS +1 -0
- package/vendor/ramsey/uuid/.github/FUNDING.yml +2 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Bug_Report.md +35 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Feature_Request.md +31 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/Question.md +19 -0
- package/vendor/ramsey/uuid/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/vendor/ramsey/uuid/.github/dependabot.yml +15 -0
- package/vendor/ramsey/uuid/.github/pull_request_template.md +27 -0
- package/vendor/ramsey/uuid/.github/workflows/continuous-integration.yml +181 -0
- package/vendor/ramsey/uuid/.github/workflows/merge-dependabot-upgrades.yml +24 -0
- package/vendor/ramsey/uuid/.readthedocs.yml +11 -0
- package/vendor/ramsey/uuid/CHANGELOG.md +1511 -0
- package/vendor/ramsey/uuid/CODE_OF_CONDUCT.md +73 -0
- package/vendor/ramsey/uuid/CONTRIBUTING.md +171 -0
- package/vendor/ramsey/uuid/LICENSE +19 -0
- package/vendor/ramsey/uuid/README.md +83 -0
- package/vendor/ramsey/uuid/SECURITY.md +170 -0
- package/vendor/ramsey/uuid/build/.gitignore +6 -0
- package/vendor/ramsey/uuid/build/cache/.gitkeep +0 -0
- package/vendor/ramsey/uuid/build/logs/.gitkeep +0 -0
- package/vendor/ramsey/uuid/captainhook.json +105 -0
- package/vendor/ramsey/uuid/codecov.yml +29 -0
- package/vendor/ramsey/uuid/composer.json +106 -0
- package/vendor/ramsey/uuid/composer.lock +7208 -0
- package/vendor/ramsey/uuid/docs/Makefile +20 -0
- package/vendor/ramsey/uuid/docs/README.md +36 -0
- package/vendor/ramsey/uuid/docs/_static/.gitkeep +0 -0
- package/vendor/ramsey/uuid/docs/conf.py +103 -0
- package/vendor/ramsey/uuid/docs/copyright.rst +18 -0
- package/vendor/ramsey/uuid/docs/customize/calculators.rst +75 -0
- package/vendor/ramsey/uuid/docs/customize/factory.rst +93 -0
- package/vendor/ramsey/uuid/docs/customize/ordered-time-codec.rst +86 -0
- package/vendor/ramsey/uuid/docs/customize/timestamp-first-comb-codec.rst +72 -0
- package/vendor/ramsey/uuid/docs/customize/validators.rst +39 -0
- package/vendor/ramsey/uuid/docs/customize.rst +56 -0
- package/vendor/ramsey/uuid/docs/database.rst +260 -0
- package/vendor/ramsey/uuid/docs/faq.rst +132 -0
- package/vendor/ramsey/uuid/docs/index.rst +51 -0
- package/vendor/ramsey/uuid/docs/introduction.rst +31 -0
- package/vendor/ramsey/uuid/docs/nonstandard/guid.rst +152 -0
- package/vendor/ramsey/uuid/docs/nonstandard/other.rst +49 -0
- package/vendor/ramsey/uuid/docs/nonstandard/version6.rst +17 -0
- package/vendor/ramsey/uuid/docs/nonstandard.rst +40 -0
- package/vendor/ramsey/uuid/docs/quickstart.rst +112 -0
- package/vendor/ramsey/uuid/docs/reference/calculators.rst +168 -0
- package/vendor/ramsey/uuid/docs/reference/exceptions.rst +92 -0
- package/vendor/ramsey/uuid/docs/reference/fields-fieldsinterface.rst +16 -0
- package/vendor/ramsey/uuid/docs/reference/guid-fields.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/guid-guid.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/helper.rst +62 -0
- package/vendor/ramsey/uuid/docs/reference/name-based-namespaces.rst +31 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-fields.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-uuid.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/nonstandard-uuidv6.rst +34 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-fieldsinterface.rst +78 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidinterface.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv1.rst +21 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv2.rst +47 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv3.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv4.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv5.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv6.rst +31 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv7.rst +20 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-uuidv8.rst +13 -0
- package/vendor/ramsey/uuid/docs/reference/rfc4122-version.rst +87 -0
- package/vendor/ramsey/uuid/docs/reference/timebaseduuidinterface.rst +16 -0
- package/vendor/ramsey/uuid/docs/reference/types.rst +79 -0
- package/vendor/ramsey/uuid/docs/reference/uuid.rst +161 -0
- package/vendor/ramsey/uuid/docs/reference/uuidfactoryinterface.rst +102 -0
- package/vendor/ramsey/uuid/docs/reference/uuidinterface.rst +60 -0
- package/vendor/ramsey/uuid/docs/reference/validators.rst +34 -0
- package/vendor/ramsey/uuid/docs/reference/variant.rst +32 -0
- package/vendor/ramsey/uuid/docs/reference.rst +37 -0
- package/vendor/ramsey/uuid/docs/requirements.txt +3 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version1.rst +192 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version2.rst +273 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version3.rst +68 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version4.rst +39 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version5.rst +108 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version6.rst +213 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version7.rst +173 -0
- package/vendor/ramsey/uuid/docs/rfc4122/version8.rst +51 -0
- package/vendor/ramsey/uuid/docs/rfc4122.rst +67 -0
- package/vendor/ramsey/uuid/docs/testing.rst +199 -0
- package/vendor/ramsey/uuid/docs/tidelift.rst +74 -0
- package/vendor/ramsey/uuid/docs/upgrading/2-to-3.rst +31 -0
- package/vendor/ramsey/uuid/docs/upgrading/3-to-4.rst +512 -0
- package/vendor/ramsey/uuid/docs/upgrading.rst +11 -0
- package/vendor/ramsey/uuid/phpbench.json +10 -0
- package/vendor/ramsey/uuid/phpcs.xml.dist +476 -0
- package/vendor/ramsey/uuid/phpstan-tests.neon +32 -0
- package/vendor/ramsey/uuid/phpstan.neon.dist +25 -0
- package/vendor/ramsey/uuid/phpunit.xml.dist +26 -0
- package/vendor/ramsey/uuid/psalm-baseline.xml +133 -0
- package/vendor/ramsey/uuid/psalm.xml +25 -0
- package/vendor/ramsey/uuid/resources/vagrant/README.md +10 -0
- package/vendor/ramsey/uuid/resources/vagrant/freebsd/README.md +15 -0
- package/vendor/ramsey/uuid/resources/vagrant/freebsd/Vagrantfile +35 -0
- package/vendor/ramsey/uuid/resources/vagrant/linux/README.md +15 -0
- package/vendor/ramsey/uuid/resources/vagrant/linux/Vagrantfile +27 -0
- package/vendor/ramsey/uuid/resources/vagrant/windows/README.md +16 -0
- package/vendor/ramsey/uuid/resources/vagrant/windows/Vagrantfile +22 -0
- package/vendor/ramsey/uuid/src/BinaryUtils.php +106 -0
- package/vendor/ramsey/uuid/src/Builder/FallbackBuilder.php +68 -0
- package/vendor/ramsey/uuid/src/Builder/UuidBuilderInterface.php +39 -0
- package/vendor/ramsey/uuid/src/Codec/CodecInterface.php +67 -0
- package/vendor/ramsey/uuid/src/Codec/GuidStringCodec.php +82 -0
- package/vendor/ramsey/uuid/src/Codec/OrderedTimeCodec.php +114 -0
- package/vendor/ramsey/uuid/src/Codec/StringCodec.php +128 -0
- package/vendor/ramsey/uuid/src/Codec/TimestampFirstCombCodec.php +105 -0
- package/vendor/ramsey/uuid/src/Codec/TimestampLastCombCodec.php +51 -0
- package/vendor/ramsey/uuid/src/Converter/Number/GenericNumberConverter.php +48 -0
- package/vendor/ramsey/uuid/src/Converter/NumberConverterInterface.php +53 -0
- package/vendor/ramsey/uuid/src/Converter/Time/GenericTimeConverter.php +118 -0
- package/vendor/ramsey/uuid/src/Converter/Time/PhpTimeConverter.php +163 -0
- package/vendor/ramsey/uuid/src/Converter/Time/UnixTimeConverter.php +90 -0
- package/vendor/ramsey/uuid/src/Converter/TimeConverterInterface.php +58 -0
- package/vendor/ramsey/uuid/src/Exception/BuilderNotFoundException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/DateTimeException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/DceSecurityException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidArgumentException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidBytesException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/InvalidUuidStringException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/NameException.php +25 -0
- package/vendor/ramsey/uuid/src/Exception/NodeException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/RandomSourceException.php +27 -0
- package/vendor/ramsey/uuid/src/Exception/TimeSourceException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UnableToBuildUuidException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UnsupportedOperationException.php +24 -0
- package/vendor/ramsey/uuid/src/Exception/UuidExceptionInterface.php +21 -0
- package/vendor/ramsey/uuid/src/FeatureSet.php +395 -0
- package/vendor/ramsey/uuid/src/Fields/FieldsInterface.php +42 -0
- package/vendor/ramsey/uuid/src/Fields/SerializableFieldsTrait.php +70 -0
- package/vendor/ramsey/uuid/src/Generator/CombGenerator.php +124 -0
- package/vendor/ramsey/uuid/src/Generator/DceSecurityGenerator.php +139 -0
- package/vendor/ramsey/uuid/src/Generator/DceSecurityGeneratorInterface.php +53 -0
- package/vendor/ramsey/uuid/src/Generator/DefaultNameGenerator.php +51 -0
- package/vendor/ramsey/uuid/src/Generator/DefaultTimeGenerator.php +131 -0
- package/vendor/ramsey/uuid/src/Generator/NameGeneratorFactory.php +30 -0
- package/vendor/ramsey/uuid/src/Generator/NameGeneratorInterface.php +38 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidNameGenerator.php +52 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidRandomGenerator.php +37 -0
- package/vendor/ramsey/uuid/src/Generator/PeclUuidTimeGenerator.php +39 -0
- package/vendor/ramsey/uuid/src/Generator/RandomBytesGenerator.php +45 -0
- package/vendor/ramsey/uuid/src/Generator/RandomGeneratorFactory.php +30 -0
- package/vendor/ramsey/uuid/src/Generator/RandomGeneratorInterface.php +31 -0
- package/vendor/ramsey/uuid/src/Generator/TimeGeneratorFactory.php +45 -0
- package/vendor/ramsey/uuid/src/Generator/TimeGeneratorInterface.php +38 -0
- package/vendor/ramsey/uuid/src/Generator/UnixTimeGenerator.php +170 -0
- package/vendor/ramsey/uuid/src/Guid/Fields.php +208 -0
- package/vendor/ramsey/uuid/src/Guid/Guid.php +61 -0
- package/vendor/ramsey/uuid/src/Guid/GuidBuilder.php +79 -0
- package/vendor/ramsey/uuid/src/Lazy/LazyUuidFromString.php +226 -0
- package/vendor/ramsey/uuid/src/Math/BrickMathCalculator.php +145 -0
- package/vendor/ramsey/uuid/src/Math/CalculatorInterface.php +106 -0
- package/vendor/ramsey/uuid/src/Math/RoundingMode.php +146 -0
- package/vendor/ramsey/uuid/src/Nonstandard/Fields.php +154 -0
- package/vendor/ramsey/uuid/src/Nonstandard/Uuid.php +37 -0
- package/vendor/ramsey/uuid/src/Nonstandard/UuidBuilder.php +78 -0
- package/vendor/ramsey/uuid/src/Nonstandard/UuidV6.php +113 -0
- package/vendor/ramsey/uuid/src/Provider/Dce/SystemDceSecurityProvider.php +236 -0
- package/vendor/ramsey/uuid/src/Provider/DceSecurityProviderInterface.php +41 -0
- package/vendor/ramsey/uuid/src/Provider/Node/FallbackNodeProvider.php +54 -0
- package/vendor/ramsey/uuid/src/Provider/Node/RandomNodeProvider.php +69 -0
- package/vendor/ramsey/uuid/src/Provider/Node/StaticNodeProvider.php +74 -0
- package/vendor/ramsey/uuid/src/Provider/Node/SystemNodeProvider.php +190 -0
- package/vendor/ramsey/uuid/src/Provider/NodeProviderInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Provider/Time/FixedTimeProvider.php +57 -0
- package/vendor/ramsey/uuid/src/Provider/Time/SystemTimeProvider.php +33 -0
- package/vendor/ramsey/uuid/src/Provider/TimeProviderInterface.php +28 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Fields.php +214 -0
- package/vendor/ramsey/uuid/src/Rfc4122/FieldsInterface.php +129 -0
- package/vendor/ramsey/uuid/src/Rfc4122/MaxTrait.php +41 -0
- package/vendor/ramsey/uuid/src/Rfc4122/MaxUuid.php +27 -0
- package/vendor/ramsey/uuid/src/Rfc4122/NilTrait.php +41 -0
- package/vendor/ramsey/uuid/src/Rfc4122/NilUuid.php +27 -0
- package/vendor/ramsey/uuid/src/Rfc4122/TimeTrait.php +55 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidBuilder.php +116 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV1.php +61 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV2.php +119 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV3.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV4.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV5.php +58 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV6.php +30 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV7.php +63 -0
- package/vendor/ramsey/uuid/src/Rfc4122/UuidV8.php +65 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Validator.php +45 -0
- package/vendor/ramsey/uuid/src/Rfc4122/VariantTrait.php +87 -0
- package/vendor/ramsey/uuid/src/Rfc4122/Version.php +139 -0
- package/vendor/ramsey/uuid/src/Rfc4122/VersionTrait.php +57 -0
- package/vendor/ramsey/uuid/src/TimeBasedUuidFactoryInterface.php +48 -0
- package/vendor/ramsey/uuid/src/TimeBasedUuidInterface.php +30 -0
- package/vendor/ramsey/uuid/src/Type/Decimal.php +135 -0
- package/vendor/ramsey/uuid/src/Type/Hexadecimal.php +109 -0
- package/vendor/ramsey/uuid/src/Type/Integer.php +145 -0
- package/vendor/ramsey/uuid/src/Type/NumberInterface.php +28 -0
- package/vendor/ramsey/uuid/src/Type/Time.php +108 -0
- package/vendor/ramsey/uuid/src/Type/TypeInterface.php +45 -0
- package/vendor/ramsey/uuid/src/Uuid.php +645 -0
- package/vendor/ramsey/uuid/src/UuidFactory.php +503 -0
- package/vendor/ramsey/uuid/src/UuidFactoryInterface.php +184 -0
- package/vendor/ramsey/uuid/src/UuidInterface.php +114 -0
- package/vendor/ramsey/uuid/src/Validator/GenericValidator.php +45 -0
- package/vendor/ramsey/uuid/src/Validator/ValidatorInterface.php +39 -0
- package/vendor/ramsey/uuid/src/Variant.php +60 -0
- package/vendor/ramsey/uuid/src/functions.php +160 -0
- package/vendor/ramsey/uuid/tests/BinaryUtilsTest.php +381 -0
- package/vendor/ramsey/uuid/tests/Builder/FallbackBuilderTest.php +198 -0
- package/vendor/ramsey/uuid/tests/Codec/GuidStringCodecTest.php +118 -0
- package/vendor/ramsey/uuid/tests/Codec/OrderedTimeCodecTest.php +258 -0
- package/vendor/ramsey/uuid/tests/Codec/StringCodecTest.php +149 -0
- package/vendor/ramsey/uuid/tests/Converter/Number/GenericNumberConverterTest.php +28 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/GenericTimeConverterTest.php +147 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/PhpTimeConverterTest.php +199 -0
- package/vendor/ramsey/uuid/tests/Converter/Time/UnixTimeConverterTest.php +202 -0
- package/vendor/ramsey/uuid/tests/Encoder/TimestampFirstCombCodecTest.php +105 -0
- package/vendor/ramsey/uuid/tests/Encoder/TimestampLastCombCodecTest.php +106 -0
- package/vendor/ramsey/uuid/tests/ExpectedBehaviorTest.php +573 -0
- package/vendor/ramsey/uuid/tests/FeatureSetTest.php +88 -0
- package/vendor/ramsey/uuid/tests/FunctionsTest.php +151 -0
- package/vendor/ramsey/uuid/tests/Generator/CombGeneratorTest.php +134 -0
- package/vendor/ramsey/uuid/tests/Generator/DceSecurityGeneratorTest.php +282 -0
- package/vendor/ramsey/uuid/tests/Generator/DefaultNameGeneratorTest.php +83 -0
- package/vendor/ramsey/uuid/tests/Generator/DefaultTimeGeneratorTest.php +202 -0
- package/vendor/ramsey/uuid/tests/Generator/NameGeneratorFactoryTest.php +19 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidNameGeneratorTest.php +107 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidRandomGeneratorTest.php +30 -0
- package/vendor/ramsey/uuid/tests/Generator/PeclUuidTimeGeneratorTest.php +30 -0
- package/vendor/ramsey/uuid/tests/Generator/RandomBytesGeneratorTest.php +70 -0
- package/vendor/ramsey/uuid/tests/Generator/RandomGeneratorFactoryTest.php +19 -0
- package/vendor/ramsey/uuid/tests/Generator/TimeGeneratorFactoryTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Generator/UnixTimeGeneratorTest.php +204 -0
- package/vendor/ramsey/uuid/tests/Guid/FieldsTest.php +235 -0
- package/vendor/ramsey/uuid/tests/Guid/GuidBuilderTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Math/BrickMathCalculatorTest.php +116 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/FieldsTest.php +84 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/UuidBuilderTest.php +33 -0
- package/vendor/ramsey/uuid/tests/Nonstandard/UuidV6Test.php +192 -0
- package/vendor/ramsey/uuid/tests/Provider/Dce/SystemDceSecurityProviderTest.php +505 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/FallbackNodeProviderTest.php +87 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/RandomNodeProviderTest.php +124 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/StaticNodeProviderTest.php +58 -0
- package/vendor/ramsey/uuid/tests/Provider/Node/SystemNodeProviderTest.php +950 -0
- package/vendor/ramsey/uuid/tests/Provider/Time/FixedTimeProviderTest.php +41 -0
- package/vendor/ramsey/uuid/tests/Provider/Time/SystemTimeProviderTest.php +20 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/FieldsTest.php +260 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidBuilderTest.php +145 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV1Test.php +123 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV2Test.php +214 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV3Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV4Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV5Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV6Test.php +221 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV7Test.php +131 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/UuidV8Test.php +56 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/ValidatorTest.php +122 -0
- package/vendor/ramsey/uuid/tests/Rfc4122/VariantTraitTest.php +109 -0
- package/vendor/ramsey/uuid/tests/TestCase.php +29 -0
- package/vendor/ramsey/uuid/tests/Type/DecimalTest.php +305 -0
- package/vendor/ramsey/uuid/tests/Type/HexadecimalTest.php +112 -0
- package/vendor/ramsey/uuid/tests/Type/IntegerTest.php +235 -0
- package/vendor/ramsey/uuid/tests/Type/TimeTest.php +120 -0
- package/vendor/ramsey/uuid/tests/UuidFactoryTest.php +233 -0
- package/vendor/ramsey/uuid/tests/UuidTest.php +1910 -0
- package/vendor/ramsey/uuid/tests/Validator/GenericValidatorTest.php +98 -0
- package/vendor/ramsey/uuid/tests/benchmark/GuidConversionBench.php +43 -0
- package/vendor/ramsey/uuid/tests/benchmark/NonLazyUuidConversionBench.php +39 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidFieldExtractionBench.php +86 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidGenerationBench.php +113 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidSerializationBench.php +206 -0
- package/vendor/ramsey/uuid/tests/benchmark/UuidStringConversionBench.php +257 -0
- package/vendor/ramsey/uuid/tests/bootstrap.php +12 -0
- package/vendor/ramsey/uuid/tests/static-analysis/UuidIsImmutable.php +96 -0
- package/vendor/ramsey/uuid/tests/static-analysis/UuidIsNeverEmpty.php +36 -0
- package/vendor/ramsey/uuid/tests/static-analysis/ValidUuidIsNonEmpty.php +44 -0
- package/vendor/ramsey/uuid/tests/static-analysis/stubs.php +33 -0
- package/vendor/symfony/polyfill-ctype/Ctype.php +232 -0
- package/vendor/symfony/polyfill-ctype/LICENSE +19 -0
- package/vendor/symfony/polyfill-ctype/README.md +12 -0
- package/vendor/symfony/polyfill-ctype/bootstrap.php +50 -0
- package/vendor/symfony/polyfill-ctype/bootstrap80.php +46 -0
- package/vendor/symfony/polyfill-ctype/composer.json +41 -0
- package/vendor/symfony/polyfill-mbstring/LICENSE +19 -0
- package/vendor/symfony/polyfill-mbstring/Mbstring.php +947 -0
- package/vendor/symfony/polyfill-mbstring/README.md +13 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/caseFolding.php +119 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/lowerCase.php +1397 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/titleCaseRegexp.php +5 -0
- package/vendor/symfony/polyfill-mbstring/Resources/unidata/upperCase.php +1489 -0
- package/vendor/symfony/polyfill-mbstring/bootstrap.php +151 -0
- package/vendor/symfony/polyfill-mbstring/bootstrap80.php +147 -0
- package/vendor/symfony/polyfill-mbstring/composer.json +41 -0
- package/vendor/symfony/polyfill-php80/LICENSE +19 -0
- package/vendor/symfony/polyfill-php80/Php80.php +115 -0
- package/vendor/symfony/polyfill-php80/PhpToken.php +103 -0
- package/vendor/symfony/polyfill-php80/README.md +25 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/Attribute.php +31 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/PhpToken.php +16 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/Stringable.php +20 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/UnhandledMatchError.php +16 -0
- package/vendor/symfony/polyfill-php80/Resources/stubs/ValueError.php +16 -0
- package/vendor/symfony/polyfill-php80/bootstrap.php +42 -0
- package/vendor/symfony/polyfill-php80/composer.json +40 -0
- package/vendor/vlucas/phpdotenv/.editorconfig +15 -0
- package/vendor/vlucas/phpdotenv/.gitattributes +17 -0
- package/vendor/vlucas/phpdotenv/.github/CODE_OF_CONDUCT.md +132 -0
- package/vendor/vlucas/phpdotenv/.github/CONTRIBUTING.md +30 -0
- package/vendor/vlucas/phpdotenv/.github/FUNDING.yml +2 -0
- package/vendor/vlucas/phpdotenv/.github/SECURITY.md +14 -0
- package/vendor/vlucas/phpdotenv/.github/workflows/static.yml +74 -0
- package/vendor/vlucas/phpdotenv/.github/workflows/tests.yml +70 -0
- package/vendor/vlucas/phpdotenv/LICENSE +30 -0
- package/vendor/vlucas/phpdotenv/Makefile +26 -0
- package/vendor/vlucas/phpdotenv/README.md +363 -0
- package/vendor/vlucas/phpdotenv/UPGRADING.md +196 -0
- package/vendor/vlucas/phpdotenv/composer.json +60 -0
- package/vendor/vlucas/phpdotenv/phpstan-baseline.neon +21 -0
- package/vendor/vlucas/phpdotenv/phpstan.neon.dist +7 -0
- package/vendor/vlucas/phpdotenv/phpunit.xml.dist +13 -0
- package/vendor/vlucas/phpdotenv/psalm-baseline.xml +28 -0
- package/vendor/vlucas/phpdotenv/psalm.xml +13 -0
- package/vendor/vlucas/phpdotenv/src/Dotenv.php +267 -0
- package/vendor/vlucas/phpdotenv/src/Exception/ExceptionInterface.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidEncodingException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidFileException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/InvalidPathException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Exception/ValidationException.php +12 -0
- package/vendor/vlucas/phpdotenv/src/Loader/Loader.php +47 -0
- package/vendor/vlucas/phpdotenv/src/Loader/LoaderInterface.php +20 -0
- package/vendor/vlucas/phpdotenv/src/Loader/Resolver.php +65 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Entry.php +59 -0
- package/vendor/vlucas/phpdotenv/src/Parser/EntryParser.php +300 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Lexer.php +58 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Lines.php +127 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Parser.php +53 -0
- package/vendor/vlucas/phpdotenv/src/Parser/ParserInterface.php +19 -0
- package/vendor/vlucas/phpdotenv/src/Parser/Value.php +88 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/AdapterInterface.php +15 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ApacheAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ArrayAdapter.php +80 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/EnvConstAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/GuardedWriter.php +85 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ImmutableWriter.php +110 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiReader.php +48 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/MultiWriter.php +64 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/PutenvAdapter.php +91 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReaderInterface.php +17 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ReplacingWriter.php +104 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/ServerConstAdapter.php +89 -0
- package/vendor/vlucas/phpdotenv/src/Repository/Adapter/WriterInterface.php +27 -0
- package/vendor/vlucas/phpdotenv/src/Repository/AdapterRepository.php +107 -0
- package/vendor/vlucas/phpdotenv/src/Repository/RepositoryBuilder.php +272 -0
- package/vendor/vlucas/phpdotenv/src/Repository/RepositoryInterface.php +51 -0
- package/vendor/vlucas/phpdotenv/src/Store/File/Paths.php +44 -0
- package/vendor/vlucas/phpdotenv/src/Store/File/Reader.php +81 -0
- package/vendor/vlucas/phpdotenv/src/Store/FileStore.php +72 -0
- package/vendor/vlucas/phpdotenv/src/Store/StoreBuilder.php +141 -0
- package/vendor/vlucas/phpdotenv/src/Store/StoreInterface.php +17 -0
- package/vendor/vlucas/phpdotenv/src/Store/StringStore.php +37 -0
- package/vendor/vlucas/phpdotenv/src/Util/Regex.php +112 -0
- package/vendor/vlucas/phpdotenv/src/Util/Str.php +98 -0
- package/vendor/vlucas/phpdotenv/src/Validator.php +209 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/DotenvTest.php +387 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Loader/LoaderTest.php +86 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/EntryParserTest.php +234 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LexerTest.php +40 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/LinesTest.php +53 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Parser/ParserTest.php +98 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ArrayAdapterTest.php +57 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/EnvConstAdapterTest.php +75 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/PutenvAdapterTest.php +52 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/Adapter/ServerConstAdapterTest.php +75 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Repository/RepositoryTest.php +305 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/Store/StoreTest.php +141 -0
- package/vendor/vlucas/phpdotenv/tests/Dotenv/ValidatorTest.php +479 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/.env +5 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/assertions.env +18 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/booleans.env +33 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/commented.env +15 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/empty.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/example.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/exported.env +7 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/immutable.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/integers.env +17 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/large.env +2 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multibyte.env +3 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multiline.env +14 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/multiple.env +4 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/mutable.env +1 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/nested.env +15 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/quoted.env +11 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/specialchars.env +8 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/unicodevarnames.env +2 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/utf8-with-bom-encoding.env +3 -0
- package/vendor/vlucas/phpdotenv/tests/fixtures/env/windows.env +1 -0
- package/vendor/vlucas/phpdotenv/vendor-bin/phpstan/composer.json +16 -0
- package/vendor/vlucas/phpdotenv/vendor-bin/psalm/composer.json +9 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
# Minimal makefile for Sphinx documentation
|
|
2
|
+
#
|
|
3
|
+
|
|
4
|
+
# You can set these variables from the command line, and also
|
|
5
|
+
# from the environment for the first two.
|
|
6
|
+
SPHINXOPTS ?=
|
|
7
|
+
SPHINXBUILD ?= sphinx-build
|
|
8
|
+
SOURCEDIR = .
|
|
9
|
+
BUILDDIR = _build
|
|
10
|
+
|
|
11
|
+
# Put it first so that "make" without argument is like "make help".
|
|
12
|
+
help:
|
|
13
|
+
@$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
14
|
+
|
|
15
|
+
.PHONY: help Makefile
|
|
16
|
+
|
|
17
|
+
# Catch-all target: route all unknown targets to Sphinx using the new
|
|
18
|
+
# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
|
|
19
|
+
%: Makefile
|
|
20
|
+
@$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# ramsey/uuid Documentation
|
|
2
|
+
|
|
3
|
+
Changes to the documentation are automatically built by [Read the Docs][] and
|
|
4
|
+
viewable from <https://uuid.ramsey.dev>.
|
|
5
|
+
|
|
6
|
+
## Getting Started
|
|
7
|
+
|
|
8
|
+
It's probably best to do this in a virtualenv environment, so set one up first:
|
|
9
|
+
|
|
10
|
+
``` bash
|
|
11
|
+
pip install virtualenvwrapper
|
|
12
|
+
mkvirtualenv ramsey-uuid-docs
|
|
13
|
+
cd docs/
|
|
14
|
+
workon ramsey-uuid-docs
|
|
15
|
+
pip install -r requirements.txt
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Building the Docs
|
|
19
|
+
|
|
20
|
+
To build the docs, change to the `docs/` directory, and make sure you're working
|
|
21
|
+
on the virtualenv environment created in the last step.
|
|
22
|
+
|
|
23
|
+
``` bash
|
|
24
|
+
cd docs/
|
|
25
|
+
workon ramsey-uuid-docs
|
|
26
|
+
make html
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Then, to view the docs after building them:
|
|
30
|
+
|
|
31
|
+
``` bash
|
|
32
|
+
open _build/html/index.html
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
[read the docs]: https://readthedocs.org
|
|
File without changes
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Configuration file for the Sphinx documentation builder.
|
|
2
|
+
#
|
|
3
|
+
# This file only contains a selection of the most common options. For a full
|
|
4
|
+
# list see the documentation:
|
|
5
|
+
# https://www.sphinx-doc.org/en/master/usage/configuration.html
|
|
6
|
+
|
|
7
|
+
# -- Path setup --------------------------------------------------------------
|
|
8
|
+
|
|
9
|
+
# If extensions (or modules to document with autodoc) are in another directory,
|
|
10
|
+
# add these directories to sys.path here. If the directory is relative to the
|
|
11
|
+
# documentation root, use os.path.abspath to make it absolute, like shown here.
|
|
12
|
+
|
|
13
|
+
import os
|
|
14
|
+
import sphinx_rtd_theme
|
|
15
|
+
import sys
|
|
16
|
+
import datetime
|
|
17
|
+
|
|
18
|
+
from pygments.lexers.web import PhpLexer
|
|
19
|
+
from sphinx.highlighting import lexers
|
|
20
|
+
from subprocess import Popen, PIPE
|
|
21
|
+
|
|
22
|
+
def get_version():
|
|
23
|
+
if os.environ.get('READTHEDOCS') == 'True':
|
|
24
|
+
return os.environ.get('READTHEDOCS_VERSION')
|
|
25
|
+
|
|
26
|
+
pipe = Popen('git branch | grep \*', stdout=PIPE, shell=True, universal_newlines=True)
|
|
27
|
+
version = pipe.stdout.read()
|
|
28
|
+
|
|
29
|
+
if version:
|
|
30
|
+
return version[2:]
|
|
31
|
+
else:
|
|
32
|
+
return 'unknown'
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
# -- Project information -----------------------------------------------------
|
|
36
|
+
|
|
37
|
+
project = 'ramsey/uuid'
|
|
38
|
+
copyright = '2012-{year}, Ben Ramsey'.format(year = datetime.date.today().strftime('%Y'))
|
|
39
|
+
author = 'Ben Ramsey'
|
|
40
|
+
|
|
41
|
+
version = get_version().strip()
|
|
42
|
+
release = version
|
|
43
|
+
|
|
44
|
+
today = datetime.date.today().strftime('%Y-%m-%d')
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
# -- General configuration ---------------------------------------------------
|
|
48
|
+
|
|
49
|
+
master_doc = 'index'
|
|
50
|
+
highlight_language = 'php'
|
|
51
|
+
|
|
52
|
+
# enable highlighting for PHP code not between ``<?php ... ?>`` by default
|
|
53
|
+
lexers['php'] = PhpLexer(startinline=True)
|
|
54
|
+
lexers['php-annotations'] = PhpLexer(startinline=True)
|
|
55
|
+
|
|
56
|
+
# Add any Sphinx extension module names here, as strings. They can be
|
|
57
|
+
# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom
|
|
58
|
+
# ones.
|
|
59
|
+
extensions = [
|
|
60
|
+
'sphinx.ext.autodoc',
|
|
61
|
+
'sphinx.ext.todo',
|
|
62
|
+
'sphinxcontrib.phpdomain',
|
|
63
|
+
]
|
|
64
|
+
|
|
65
|
+
# Add any paths that contain templates here, relative to this directory.
|
|
66
|
+
templates_path = ['_templates']
|
|
67
|
+
|
|
68
|
+
# List of patterns, relative to source directory, that match files and
|
|
69
|
+
# directories to ignore when looking for source files.
|
|
70
|
+
# This pattern also affects html_static_path and html_extra_path.
|
|
71
|
+
exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
|
72
|
+
|
|
73
|
+
pygments_style = 'sphinx'
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
# -- Options for HTML output -------------------------------------------------
|
|
77
|
+
|
|
78
|
+
# The theme to use for HTML and HTML Help pages. See the documentation for
|
|
79
|
+
# a list of builtin themes.
|
|
80
|
+
#
|
|
81
|
+
html_theme = "sphinx_rtd_theme"
|
|
82
|
+
html_theme_options = {
|
|
83
|
+
'collapse_navigation': False,
|
|
84
|
+
'display_version': False
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
# Add any paths that contain custom static files (such as style sheets) here,
|
|
88
|
+
# relative to this directory. They are copied after the builtin static files,
|
|
89
|
+
# so a file named "default.css" will overwrite the builtin "default.css".
|
|
90
|
+
html_static_path = ['_static']
|
|
91
|
+
|
|
92
|
+
html_title = "ramsey/uuid %s Manual" % get_version()
|
|
93
|
+
html_show_sphinx = False
|
|
94
|
+
|
|
95
|
+
htmlhelp_basename = 'ramsey-uuid-doc'
|
|
96
|
+
|
|
97
|
+
html_context = {
|
|
98
|
+
"display_github": True,
|
|
99
|
+
"github_user": "ramsey",
|
|
100
|
+
"github_repo": "uuid",
|
|
101
|
+
"github_version": version,
|
|
102
|
+
"conf_py_path": "/docs/",
|
|
103
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
.. _copyright:
|
|
2
|
+
|
|
3
|
+
=========
|
|
4
|
+
Copyright
|
|
5
|
+
=========
|
|
6
|
+
|
|
7
|
+
Copyright © 2012-|year| Ben Ramsey <ben@benramsey.com>
|
|
8
|
+
|
|
9
|
+
ramsey/uuid documentation is licensed under the Creative Commons Attribution 4.0
|
|
10
|
+
International License. To view a copy of this license, visit
|
|
11
|
+
http://creativecommons.org/licenses/by/4.0/ or send a letter to Creative
|
|
12
|
+
Commons, PO Box 1866, Mountain View, CA 94042, USA.
|
|
13
|
+
|
|
14
|
+
ramsey/uuid source code is licensed under the terms of the MIT License. To view
|
|
15
|
+
a copy of this license, see the LICENSE file distributed with the software or
|
|
16
|
+
visit `<https://opensource.org/licenses/MIT/>`_.
|
|
17
|
+
|
|
18
|
+
.. |year| date:: %Y
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
.. _customize.calculators:
|
|
2
|
+
|
|
3
|
+
=========================
|
|
4
|
+
Using a Custom Calculator
|
|
5
|
+
=========================
|
|
6
|
+
|
|
7
|
+
By default, ramsey/uuid uses `brick/math`_ as its internal calculator. However,
|
|
8
|
+
you may change the calculator, if your needs require something else.
|
|
9
|
+
|
|
10
|
+
To swap the default calculator with your custom one, first make an adapter that
|
|
11
|
+
wraps your custom calculator and implements
|
|
12
|
+
:php:interface:`Ramsey\\Uuid\\Math\\CalculatorInterface`. This might look
|
|
13
|
+
something like this:
|
|
14
|
+
|
|
15
|
+
.. code-block:: php
|
|
16
|
+
:caption: Create a custom calculator wrapper that implements CalculatorInterface
|
|
17
|
+
:name: customize.calculators.wrapper-example
|
|
18
|
+
|
|
19
|
+
namespace MyProject;
|
|
20
|
+
|
|
21
|
+
use Other\OtherCalculator;
|
|
22
|
+
use Ramsey\Uuid\Math\CalculatorInterface;
|
|
23
|
+
use Ramsey\Uuid\Type\Integer as IntegerObject;
|
|
24
|
+
use Ramsey\Uuid\Type\NumberInterface;
|
|
25
|
+
|
|
26
|
+
class MyUuidCalculator implements CalculatorInterface
|
|
27
|
+
{
|
|
28
|
+
private $internalCalculator;
|
|
29
|
+
|
|
30
|
+
public function __construct(OtherCalculator $customCalculator)
|
|
31
|
+
{
|
|
32
|
+
$this->internalCalculator = $customCalculator;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public function add(NumberInterface $augend, NumberInterface ...$addends): NumberInterface
|
|
36
|
+
{
|
|
37
|
+
$value = $augend->toString();
|
|
38
|
+
|
|
39
|
+
foreach ($addends as $addend) {
|
|
40
|
+
$value = $this->internalCalculator->plus($value, $addend->toString());
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return new IntegerObject($value);
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/* ... Class truncated for brevity ... */
|
|
47
|
+
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
The easiest way to use your custom calculator wrapper is to instantiate a new
|
|
51
|
+
FeatureSet, set the calculator on it, and pass the FeatureSet into a new
|
|
52
|
+
UuidFactory. Using the factory, you may then generate and work with UUIDs, using
|
|
53
|
+
your custom calculator.
|
|
54
|
+
|
|
55
|
+
.. code-block:: php
|
|
56
|
+
:caption: Use your custom calculator wrapper when working with UUIDs
|
|
57
|
+
:name: customize.calculators.use-wrapper-example
|
|
58
|
+
|
|
59
|
+
use MyProject\MyUuidCalculator;
|
|
60
|
+
use Other\OtherCalculator;
|
|
61
|
+
use Ramsey\Uuid\FeatureSet;
|
|
62
|
+
use Ramsey\Uuid\UuidFactory;
|
|
63
|
+
|
|
64
|
+
$otherCalculator = new OtherCalculator();
|
|
65
|
+
$myUuidCalculator = new MyUuidCalculator($otherCalculator);
|
|
66
|
+
|
|
67
|
+
$featureSet = new FeatureSet();
|
|
68
|
+
$featureSet->setCalculator($myUuidCalculator);
|
|
69
|
+
|
|
70
|
+
$factory = new UuidFactory($featureSet);
|
|
71
|
+
|
|
72
|
+
$uuid = $factory->uuid1();
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
.. _brick/math: https://github.com/brick/math
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
.. _customize.factory:
|
|
2
|
+
|
|
3
|
+
===========================
|
|
4
|
+
Replace the Default Factory
|
|
5
|
+
===========================
|
|
6
|
+
|
|
7
|
+
In many of the examples throughout this documentation, we've seen how to
|
|
8
|
+
configure the factory and then use that factory to generate and work with UUIDs.
|
|
9
|
+
|
|
10
|
+
For example:
|
|
11
|
+
|
|
12
|
+
.. code-block:: php
|
|
13
|
+
:caption: Configure the factory and use it to generate a version 1 UUID
|
|
14
|
+
:name: customize.factory.example
|
|
15
|
+
|
|
16
|
+
use Ramsey\Uuid\Codec\OrderedTimeCodec;
|
|
17
|
+
use Ramsey\Uuid\UuidFactory;
|
|
18
|
+
|
|
19
|
+
$factory = new UuidFactory();
|
|
20
|
+
$codec = new OrderedTimeCodec($factory->getUuidBuilder());
|
|
21
|
+
|
|
22
|
+
$factory->setCodec($codec);
|
|
23
|
+
|
|
24
|
+
$orderedTimeUuid = $factory->uuid1();
|
|
25
|
+
|
|
26
|
+
When doing this, the default behavior of ramsey/uuid is left intact. If we call
|
|
27
|
+
``Uuid::uuid1()`` to generate a version 1 UUID after configuring the factory as
|
|
28
|
+
shown above, it won't use :ref:`OrderedTimeCodec <customize.ordered-time-codec>`
|
|
29
|
+
to generate the UUID.
|
|
30
|
+
|
|
31
|
+
.. code-block:: php
|
|
32
|
+
:caption: The behavior differs between $factory->uuid1() and Uuid::uuid1()
|
|
33
|
+
:name: customize.factory.behavior-example
|
|
34
|
+
|
|
35
|
+
$orderedTimeUuid = $factory->uuid1();
|
|
36
|
+
|
|
37
|
+
printf(
|
|
38
|
+
"UUID: %s\nBytes: %s\n\n",
|
|
39
|
+
$orderedTimeUuid->toString(),
|
|
40
|
+
bin2hex($orderedTimeUuid->getBytes())
|
|
41
|
+
);
|
|
42
|
+
|
|
43
|
+
$uuid = Uuid::uuid1();
|
|
44
|
+
|
|
45
|
+
printf(
|
|
46
|
+
"UUID: %s\nBytes: %s\n\n",
|
|
47
|
+
$uuid->toString(),
|
|
48
|
+
bin2hex($uuid->getBytes())
|
|
49
|
+
);
|
|
50
|
+
|
|
51
|
+
In this example, we print out details for two different UUIDs. The first was
|
|
52
|
+
generated with the :ref:`OrderedTimeCodec <customize.ordered-time-codec>` using
|
|
53
|
+
``$factory->uuid1()``. The second was generated using ``Uuid::uuid1()``. It
|
|
54
|
+
looks something like this:
|
|
55
|
+
|
|
56
|
+
.. code-block:: text
|
|
57
|
+
|
|
58
|
+
UUID: 2ff06620-6251-11ea-9791-0242ac130003
|
|
59
|
+
Bytes: 11ea62512ff0662097910242ac130003
|
|
60
|
+
|
|
61
|
+
UUID: 2ff09730-6251-11ea-ba64-0242ac130003
|
|
62
|
+
Bytes: 2ff09730625111eaba640242ac130003
|
|
63
|
+
|
|
64
|
+
Notice the arrangement of the bytes. The first set of bytes has been rearranged,
|
|
65
|
+
according to the ordered-time codec rules, but the second set of bytes remains
|
|
66
|
+
in the same order as the UUID string.
|
|
67
|
+
|
|
68
|
+
*Configuring the factory does not change the default behavior.*
|
|
69
|
+
|
|
70
|
+
If we want to change the default behavior, we must *replace* the factory used
|
|
71
|
+
by the Uuid static methods, and we can do this using the
|
|
72
|
+
:php:meth:`Uuid::setFactory() <Ramsey\\Uuid\\Uuid::setFactory>` static method.
|
|
73
|
+
|
|
74
|
+
.. code-block:: php
|
|
75
|
+
:caption: Replace the factory to globally affect Uuid behavior
|
|
76
|
+
:name: customize.factory.replace-factory-example
|
|
77
|
+
|
|
78
|
+
Uuid::setFactory($factory);
|
|
79
|
+
|
|
80
|
+
$uuid = Uuid::uuid1();
|
|
81
|
+
|
|
82
|
+
Now, every time we call :php:meth:`Uuid::uuid() <Ramsey\\Uuid\\Uuid::uuid1>`,
|
|
83
|
+
ramsey/uuid will use the factory configured with the :ref:`OrderedTimeCodec
|
|
84
|
+
<customize.ordered-time-codec>` to generate version 1 UUIDs.
|
|
85
|
+
|
|
86
|
+
.. warning::
|
|
87
|
+
|
|
88
|
+
Calling :php:meth:`Uuid::setFactory() <Ramsey\\Uuid\\Uuid::setFactory>` to
|
|
89
|
+
replace the factory will change the behavior of Uuid no matter where it is
|
|
90
|
+
used, so keep this in mind when replacing the factory. If you replace the
|
|
91
|
+
factory deep inside a method somewhere, any later code that calls a static
|
|
92
|
+
method on :php:class:`Ramsey\\Uuid\\Uuid` will use the new factory to
|
|
93
|
+
generate UUIDs.
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
.. _customize.ordered-time-codec:
|
|
2
|
+
|
|
3
|
+
==================
|
|
4
|
+
Ordered-time Codec
|
|
5
|
+
==================
|
|
6
|
+
|
|
7
|
+
.. attention::
|
|
8
|
+
|
|
9
|
+
:ref:`Version 6, reordered time UUIDs <rfc4122.version6>` are a new version
|
|
10
|
+
of UUID that eliminate the need for the ordered-time codec. If you aren't
|
|
11
|
+
currently using the ordered-time codec, and you need time-based, sortable
|
|
12
|
+
UUIDs, consider using version 6 UUIDs.
|
|
13
|
+
|
|
14
|
+
UUIDs arrange their bytes according to the standard recommended by `RFC 4122`_.
|
|
15
|
+
Unfortunately, this means the bytes aren't in an arrangement that supports
|
|
16
|
+
sorting by creation time or an otherwise incrementing value. The Percona
|
|
17
|
+
article, "`Storing UUID Values in MySQL`_," explains at length the problems this
|
|
18
|
+
can cause. It also recommends a solution: the *ordered-time UUID*.
|
|
19
|
+
|
|
20
|
+
RFC 4122 version 1, Gregorian time UUIDs rearrange the bytes of the time fields
|
|
21
|
+
so that the lowest bytes appear first, the middle bytes are next, and the
|
|
22
|
+
highest bytes come last. Logical sorting is not possible with this arrangement.
|
|
23
|
+
|
|
24
|
+
An ordered-time UUID is a version 1 UUID with the time fields arranged in
|
|
25
|
+
logical order so that the UUIDs can be sorted by creation time. These UUIDs are
|
|
26
|
+
*monotonically increasing*, each one coming after the previously-created one, in
|
|
27
|
+
a proper sort order.
|
|
28
|
+
|
|
29
|
+
.. code-block:: php
|
|
30
|
+
:caption: Use the ordered-time codec to generate a version 1 UUID
|
|
31
|
+
:name: customize.ordered-time-codec-example
|
|
32
|
+
|
|
33
|
+
use Ramsey\Uuid\Codec\OrderedTimeCodec;
|
|
34
|
+
use Ramsey\Uuid\UuidFactory;
|
|
35
|
+
|
|
36
|
+
$factory = new UuidFactory();
|
|
37
|
+
$codec = new OrderedTimeCodec($factory->getUuidBuilder());
|
|
38
|
+
|
|
39
|
+
$factory->setCodec($codec);
|
|
40
|
+
|
|
41
|
+
$orderedTimeUuid = $factory->uuid1();
|
|
42
|
+
|
|
43
|
+
printf(
|
|
44
|
+
"UUID: %s\nVersion: %d\nDate: %s\nNode: %s\nBytes: %s\n",
|
|
45
|
+
$orderedTimeUuid->toString(),
|
|
46
|
+
$orderedTimeUuid->getFields()->getVersion()?->value,
|
|
47
|
+
$orderedTimeUuid->getDateTime()->format('r'),
|
|
48
|
+
$orderedTimeUuid->getFields()->getNode()->toString(),
|
|
49
|
+
bin2hex($orderedTimeUuid->getBytes())
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
This will use the ordered-time codec to generate a version 1 UUID and will print
|
|
53
|
+
out details about the UUID similar to these:
|
|
54
|
+
|
|
55
|
+
.. code-block:: text
|
|
56
|
+
|
|
57
|
+
UUID: 593200aa-61ae-11ea-bbf2-0242ac130003
|
|
58
|
+
Version: 1
|
|
59
|
+
Date: Mon, 09 Mar 2020 02:33:23 +0000
|
|
60
|
+
Node: 0242ac130003
|
|
61
|
+
Bytes: 11ea61ae593200aabbf20242ac130003
|
|
62
|
+
|
|
63
|
+
.. attention::
|
|
64
|
+
|
|
65
|
+
Only the byte representation is rearranged. The string representation
|
|
66
|
+
follows the format of a standard version 1 UUID. This means only the byte
|
|
67
|
+
representation of an ordered-time codec encoded UUID may be used for
|
|
68
|
+
sorting, such as with database results.
|
|
69
|
+
|
|
70
|
+
To store the byte representation to a database field, see
|
|
71
|
+
:ref:`database.bytes`.
|
|
72
|
+
|
|
73
|
+
.. hint::
|
|
74
|
+
|
|
75
|
+
If you use this codec and store the bytes of the UUID to the database, as
|
|
76
|
+
recommended above, you will need to use this codec to decode the bytes, as
|
|
77
|
+
well. Otherwise, the UUID string value will be incorrect.
|
|
78
|
+
|
|
79
|
+
.. code-block:: php
|
|
80
|
+
|
|
81
|
+
// Using a factory configured with the OrderedTimeCodec, as shown above.
|
|
82
|
+
$orderedTimeUuid = $factory->fromBytes($bytes);
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
.. _RFC 4122: https://tools.ietf.org/html/rfc4122
|
|
86
|
+
.. _Storing UUID Values in MySQL: https://www.percona.com/blog/2014/12/19/store-uuid-optimized-way/
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
.. _customize.timestamp-first-comb-codec:
|
|
2
|
+
|
|
3
|
+
==========================
|
|
4
|
+
Timestamp-first COMB Codec
|
|
5
|
+
==========================
|
|
6
|
+
|
|
7
|
+
.. attention::
|
|
8
|
+
|
|
9
|
+
:ref:`Version 7, Unix Epoch time UUIDs <rfc4122.version7>` are a new version
|
|
10
|
+
of UUID that eliminate the need for the timestamp-first COMB codec. If you
|
|
11
|
+
aren't currently using the timestamp-first COMB codec, and you need
|
|
12
|
+
time-based, sortable UUIDs, consider using version 7 UUIDs.
|
|
13
|
+
|
|
14
|
+
:ref:`Version 4, random UUIDs <rfc4122.version4>` are doubly problematic when it
|
|
15
|
+
comes to sorting and storing to databases (see :ref:`database.order`), since
|
|
16
|
+
their values are random, and there is no timestamp associated with them that may
|
|
17
|
+
be rearranged, like with the :ref:`ordered-time codec
|
|
18
|
+
<customize.ordered-time-codec>`. In 2002, Jimmy Nilsson recognized this problem
|
|
19
|
+
with random UUIDs and proposed a solution he called "COMBs" (see "`The Cost of
|
|
20
|
+
GUIDs as Primary Keys`_").
|
|
21
|
+
|
|
22
|
+
So-called because they *combine* random bytes with a timestamp, the
|
|
23
|
+
timestamp-first COMB codec replaces the first 48 bits of a version 4, random
|
|
24
|
+
UUID with a Unix timestamp and microseconds, creating an identifier that can be
|
|
25
|
+
sorted by creation time. These UUIDs are *monotonically increasing*, each one
|
|
26
|
+
coming after the previously-created one, in a proper sort order.
|
|
27
|
+
|
|
28
|
+
.. code-block:: php
|
|
29
|
+
:caption: Use the timestamp-first COMB codec to generate a version 4 UUID
|
|
30
|
+
:name: customize.timestamp-first-comb-codec-example
|
|
31
|
+
|
|
32
|
+
use Ramsey\Uuid\Codec\TimestampFirstCombCodec;
|
|
33
|
+
use Ramsey\Uuid\Generator\CombGenerator;
|
|
34
|
+
use Ramsey\Uuid\UuidFactory;
|
|
35
|
+
|
|
36
|
+
$factory = new UuidFactory();
|
|
37
|
+
$codec = new TimestampFirstCombCodec($factory->getUuidBuilder());
|
|
38
|
+
|
|
39
|
+
$factory->setCodec($codec);
|
|
40
|
+
|
|
41
|
+
$factory->setRandomGenerator(new CombGenerator(
|
|
42
|
+
$factory->getRandomGenerator(),
|
|
43
|
+
$factory->getNumberConverter()
|
|
44
|
+
));
|
|
45
|
+
|
|
46
|
+
$timestampFirstComb = $factory->uuid4();
|
|
47
|
+
|
|
48
|
+
printf(
|
|
49
|
+
"UUID: %s\nVersion: %d\nBytes: %s\n",
|
|
50
|
+
$timestampFirstComb->toString(),
|
|
51
|
+
$timestampFirstComb->getFields()->getVersion()?->value,
|
|
52
|
+
bin2hex($timestampFirstComb->getBytes())
|
|
53
|
+
);
|
|
54
|
+
|
|
55
|
+
This will use the timestamp-first COMB codec to generate a version 4 UUID with
|
|
56
|
+
the timestamp replacing the first 48 bits and will print out details about the
|
|
57
|
+
UUID similar to these:
|
|
58
|
+
|
|
59
|
+
.. code-block:: text
|
|
60
|
+
|
|
61
|
+
UUID: 9009ebcc-cd99-4b5f-90cf-9155607d2de9
|
|
62
|
+
Version: 4
|
|
63
|
+
Bytes: 9009ebcccd994b5f90cf9155607d2de9
|
|
64
|
+
|
|
65
|
+
Note that the bytes are in the same order as the string representation. Unlike
|
|
66
|
+
the :ref:`ordered-time codec <customize.ordered-time-codec>`, the
|
|
67
|
+
timestamp-first COMB codec affects both the string representation and the byte
|
|
68
|
+
representation. This means either the string UUID or the bytes may be stored to
|
|
69
|
+
a datastore and sorted. To learn more, see :ref:`database`.
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
.. _The Cost of GUIDs as Primary Keys: https://www.informit.com/articles/printerfriendly/25862
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
.. _customize.validators:
|
|
2
|
+
|
|
3
|
+
========================
|
|
4
|
+
Using a Custom Validator
|
|
5
|
+
========================
|
|
6
|
+
|
|
7
|
+
By default, ramsey/uuid validates UUID strings with the lenient validator
|
|
8
|
+
:php:class:`Ramsey\\Uuid\\Validator\\GenericValidator`. This validator ensures
|
|
9
|
+
the string is 36 characters, has the dashes in the correct places, and uses only
|
|
10
|
+
hexadecimal values. It does not ensure the string is of the RFC 4122 variant or
|
|
11
|
+
contains a valid version.
|
|
12
|
+
|
|
13
|
+
The validator :php:class:`Ramsey\\Uuid\\Rfc4122\\Validator` validates UUID
|
|
14
|
+
strings to ensure they match the RFC 4122 variant and contain a valid version.
|
|
15
|
+
Since it is not enabled by default, you will need to configure ramsey/uuid to
|
|
16
|
+
use it, if you want stricter validation.
|
|
17
|
+
|
|
18
|
+
.. code-block:: php
|
|
19
|
+
:caption: Set an alternate validator to use for Uuid::isValid()
|
|
20
|
+
:name: customize.validators-example
|
|
21
|
+
|
|
22
|
+
use Ramsey\Uuid\Rfc4122\Validator as Rfc4122Validator;
|
|
23
|
+
use Ramsey\Uuid\Uuid;
|
|
24
|
+
use Ramsey\Uuid\UuidFactory;
|
|
25
|
+
|
|
26
|
+
$factory = new UuidFactory();
|
|
27
|
+
$factory->setValidator(new Rfc4122Validator());
|
|
28
|
+
|
|
29
|
+
Uuid::setFactory($factory);
|
|
30
|
+
|
|
31
|
+
if (!Uuid::isValid('2bfb5006-087b-9553-5082-e8f39337ad29')) {
|
|
32
|
+
echo "This UUID is not valid!\n";
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.. tip::
|
|
36
|
+
|
|
37
|
+
If you want to use your own validation, create a class that implements
|
|
38
|
+
:php:interface:`Ramsey\\Uuid\\Validator\\ValidatorInterface` and use the
|
|
39
|
+
same method to set your validator on the factory.
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
.. _customize:
|
|
2
|
+
|
|
3
|
+
=============
|
|
4
|
+
Customization
|
|
5
|
+
=============
|
|
6
|
+
|
|
7
|
+
.. toctree::
|
|
8
|
+
:titlesonly:
|
|
9
|
+
:hidden:
|
|
10
|
+
|
|
11
|
+
customize/ordered-time-codec
|
|
12
|
+
customize/timestamp-first-comb-codec
|
|
13
|
+
customize/calculators
|
|
14
|
+
customize/validators
|
|
15
|
+
customize/factory
|
|
16
|
+
|
|
17
|
+
ramsey/uuid offers a variety of ways to modify the standard behavior of the
|
|
18
|
+
library through dependency injection. Using `FeatureSet`_, `UuidFactory`_, and
|
|
19
|
+
:php:meth:`Uuid::setFactory() <Ramsey\\Uuid\\Uuid::setFactory()>`, you are able
|
|
20
|
+
to replace just about any `builder`_, `codec`_, `converter`_, `generator`_,
|
|
21
|
+
`provider`_, and more.
|
|
22
|
+
|
|
23
|
+
Ordered-time Codec
|
|
24
|
+
The ordered-time codec exists to rearrange the bytes of a version 1,
|
|
25
|
+
Gregorian time UUID so that the timestamp portion of the UUID is
|
|
26
|
+
monotonically increasing. To learn more, see :ref:`customize.ordered-time-codec`.
|
|
27
|
+
|
|
28
|
+
Timestamp-first COMB Codec
|
|
29
|
+
The timestamp-first COMB codec replaces part of a version 4, random UUID
|
|
30
|
+
with a timestamp, so that the UUID becomes monotonically increasing. To
|
|
31
|
+
learn more, see :ref:`customize.timestamp-first-comb-codec`.
|
|
32
|
+
|
|
33
|
+
Using a Custom Calculator
|
|
34
|
+
It's possible to replace the default calculator ramsey/uuid uses. If your
|
|
35
|
+
requirements require a different solution for making calculations, see
|
|
36
|
+
:ref:`customize.calculators`.
|
|
37
|
+
|
|
38
|
+
Using a Custom Validator
|
|
39
|
+
If your requirements require a different level of validation or a different
|
|
40
|
+
UUID format, you may replace the default validator. See
|
|
41
|
+
:ref:`customize.validators`, to learn more.
|
|
42
|
+
|
|
43
|
+
Replace the Default Factory
|
|
44
|
+
Not only are you able to inject alternate builders, codecs, etc. into the
|
|
45
|
+
factory and use the factory to generate UUIDs, you may also replace the
|
|
46
|
+
global, static factory used by the static methods on the Uuid class. To find
|
|
47
|
+
out how, see :ref:`customize.factory`.
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
.. _UuidFactory: https://github.com/ramsey/uuid/blob/5.x/src/UuidFactory.php
|
|
51
|
+
.. _FeatureSet: https://github.com/ramsey/uuid/blob/5.x/src/FeatureSet.php
|
|
52
|
+
.. _codec: https://github.com/ramsey/uuid/tree/5.x/src/Codec
|
|
53
|
+
.. _builder: https://github.com/ramsey/uuid/tree/5.x/src/Builder
|
|
54
|
+
.. _converter: https://github.com/ramsey/uuid/tree/5.x/src/Converter
|
|
55
|
+
.. _provider: https://github.com/ramsey/uuid/tree/5.x/src/Provider
|
|
56
|
+
.. _generator: https://github.com/ramsey/uuid/tree/5.x/src/Generator
|