From 35c05fbc10285c39375e23d7082caf6a13ecc5d5 Mon Sep 17 00:00:00 2001 From: Eric Fortmeyer Date: Sun, 12 Mar 2023 21:03:31 -0500 Subject: [PATCH 1/2] fix: add support for type conversion and store values by row number Typed properties of representative objects will now be respected. DateTime objects will now be serialized as date formatted strings. The row number will be used as the lookup key for stored values. Support will likely be added in the future for primary key columns. Closes #9, Closes #11, Closes #12, Closes #13 --- composer.json | 10 +- composer.lock | 253 +++++++-------- ...leStorage-AmbiguousUnionTypeException.html | 235 ++++++++++++++ ...Phpolar-CsvFileStorage-CsvFileStorage.html | 53 +++- ...CsvFileStorage-FileNotExistsException.html | 299 ++++++++++++++++++ docs/files/ambiguousuniontypeexception.html | 158 +++++++++ docs/files/filenotexistsexception.html | 158 +++++++++ docs/graphs/classes.svg | 29 +- docs/indices/files.html | 12 +- docs/js/searchIndex.js | 21 +- docs/namespaces/phpolar-csvfilestorage.html | 4 + docs/packages/Phpolar-CsvFileStorage.html | 4 + src/AmbiguousUnionTypeException.php | 14 + src/CsvFileStorage.php | 247 ++++++++++----- src/FileNotExistsException.php | 18 ++ tests/__fakes__/FakeValueObject.php | 10 +- tests/__fakes__/FakeValueObjectWithUnions.php | 19 ++ .../FakeValueObjectWithUnionsError.php | 13 + tests/__fakes__/object-2.csv | 3 + tests/__fakes__/object-malformed.csv | 1 + tests/__fakes__/object-unions-malformed.csv | 2 + tests/__fakes__/object-unions.csv | 2 + tests/__fakes__/object.csv | 2 + tests/unit/CsvFileStorageTest.php | 127 ++++++-- 24 files changed, 1418 insertions(+), 276 deletions(-) create mode 100644 docs/classes/Phpolar-CsvFileStorage-AmbiguousUnionTypeException.html create mode 100644 docs/classes/Phpolar-CsvFileStorage-FileNotExistsException.html create mode 100644 docs/files/ambiguousuniontypeexception.html create mode 100644 docs/files/filenotexistsexception.html create mode 100644 src/AmbiguousUnionTypeException.php create mode 100644 src/FileNotExistsException.php create mode 100644 tests/__fakes__/FakeValueObjectWithUnions.php create mode 100644 tests/__fakes__/FakeValueObjectWithUnionsError.php create mode 100644 tests/__fakes__/object-2.csv create mode 100644 tests/__fakes__/object-malformed.csv create mode 100644 tests/__fakes__/object-unions-malformed.csv create mode 100644 tests/__fakes__/object-unions.csv create mode 100644 tests/__fakes__/object.csv diff --git a/composer.json b/composer.json index 157acb4..c81a672 100644 --- a/composer.json +++ b/composer.json @@ -31,7 +31,7 @@ }, "require": { "php": ">=8.1", - "phpolar/phpolar-storage": "^1.0" + "phpolar/phpolar-storage": "^1.2" }, "license": "MIT", "scripts": { @@ -63,12 +63,6 @@ "test:acceptance": "@test --configuration=phpunit.dev.xml --testsuite acceptance", "test:acceptance:report": "@test --configuration=phpunit.dev.xml --testsuite acceptance --testdox-text acceptance-test-results.md", "test:unit": "@test --configuration=phpunit.dev.xml --testsuite unit", - "test:coverage": "XDEBUG_MODE=coverage composer exec \"@test --configuration=phpunit.ci.xml --coverage-text --testsuite unit\"", - "xdebug:on": [ - "TEMP_FILE=\"$(sed --follow-symlink -E 's/^;(zend_extension=xdebug)/\\1/' \"$(php-config --ini-dir)/20-xdebug.ini\")\"; echo \"$TEMP_FILE\" > \"$(php-config --ini-dir)/20-xdebug.ini\"" - ], - "xdebug:off": [ - "TEMP_FILE=\"$(sed --follow-symlink -E 's/^(zend_extension=xdebug)/;\\1/' \"$(php-config --ini-dir)/20-xdebug.ini\")\"; echo \"$TEMP_FILE\" > \"$(php-config --ini-dir)/20-xdebug.ini\"" - ] + "test:coverage": "XDEBUG_MODE=coverage composer exec \"@test --configuration=phpunit.ci.xml --coverage-text --testsuite unit\"" } } diff --git a/composer.lock b/composer.lock index e3b363c..9329382 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "101260d1b9f57d4d32444e80bd817ba0", + "content-hash": "9f5b4754fdd95150b9339241b5a962c9", "packages": [ { "name": "phpolar/phpolar-storage", - "version": "1.0.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/phpolar/phpolar-storage.git", - "reference": "1e12b5ebe09e9e222ba72e35c7a0ae35fd666736" + "reference": "dcbc547333cc9f6b1de31767c668b4061f86e3bb" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpolar/phpolar-storage/zipball/1e12b5ebe09e9e222ba72e35c7a0ae35fd666736", - "reference": "1e12b5ebe09e9e222ba72e35c7a0ae35fd666736", + "url": "https://api.github.com/repos/phpolar/phpolar-storage/zipball/dcbc547333cc9f6b1de31767c668b4061f86e3bb", + "reference": "dcbc547333cc9f6b1de31767c668b4061f86e3bb", "shasum": "" }, "require": { @@ -46,9 +46,9 @@ "description": "A convenient tool to speed up the creation of data storage for application development.", "support": { "issues": "https://github.com/phpolar/phpolar-storage/issues", - "source": "https://github.com/phpolar/phpolar-storage/tree/1.0.0" + "source": "https://github.com/phpolar/phpolar-storage/tree/1.2.0" }, - "time": "2023-02-10T02:00:05+00:00" + "time": "2023-03-06T02:10:05+00:00" } ], "packages-dev": [ @@ -529,16 +529,16 @@ }, { "name": "guzzlehttp/psr7", - "version": "2.4.3", + "version": "2.4.4", "source": { "type": "git", "url": "https://github.com/guzzle/psr7.git", - "reference": "67c26b443f348a51926030c83481b85718457d3d" + "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/psr7/zipball/67c26b443f348a51926030c83481b85718457d3d", - "reference": "67c26b443f348a51926030c83481b85718457d3d", + "url": "https://api.github.com/repos/guzzle/psr7/zipball/3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf", + "reference": "3cf1b6d4f0c820a2cf8bcaec39fc698f3443b5cf", "shasum": "" }, "require": { @@ -628,7 +628,7 @@ ], "support": { "issues": "https://github.com/guzzle/psr7/issues", - "source": "https://github.com/guzzle/psr7/tree/2.4.3" + "source": "https://github.com/guzzle/psr7/tree/2.4.4" }, "funding": [ { @@ -644,20 +644,20 @@ "type": "tidelift" } ], - "time": "2022-10-26T14:07:24+00:00" + "time": "2023-03-09T13:19:02+00:00" }, { "name": "microsoft/tolerant-php-parser", - "version": "v0.1.1", + "version": "v0.1.2", "source": { "type": "git", "url": "https://github.com/microsoft/tolerant-php-parser.git", - "reference": "6a965617cf484355048ac6d2d3de7b6ec93abb16" + "reference": "3eccfd273323aaf69513e2f1c888393f5947804b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/microsoft/tolerant-php-parser/zipball/6a965617cf484355048ac6d2d3de7b6ec93abb16", - "reference": "6a965617cf484355048ac6d2d3de7b6ec93abb16", + "url": "https://api.github.com/repos/microsoft/tolerant-php-parser/zipball/3eccfd273323aaf69513e2f1c888393f5947804b", + "reference": "3eccfd273323aaf69513e2f1c888393f5947804b", "shasum": "" }, "require": { @@ -687,22 +687,22 @@ "description": "Tolerant PHP-to-AST parser designed for IDE usage scenarios", "support": { "issues": "https://github.com/microsoft/tolerant-php-parser/issues", - "source": "https://github.com/microsoft/tolerant-php-parser/tree/v0.1.1" + "source": "https://github.com/microsoft/tolerant-php-parser/tree/v0.1.2" }, - "time": "2021-07-16T21:28:12+00:00" + "time": "2022-10-05T17:30:19+00:00" }, { "name": "myclabs/deep-copy", - "version": "1.11.0", + "version": "1.11.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614" + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/14daed4296fae74d9e3201d2c4925d1acb7aa614", - "reference": "14daed4296fae74d9e3201d2c4925d1acb7aa614", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", + "reference": "7284c22080590fb39f2ffa3e9057f10a4ddd0e0c", "shasum": "" }, "require": { @@ -740,7 +740,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.11.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.11.1" }, "funding": [ { @@ -748,7 +748,7 @@ "type": "tidelift" } ], - "time": "2022-03-03T13:19:32+00:00" + "time": "2023-03-08T13:26:56+00:00" }, { "name": "netresearch/jsonmapper", @@ -803,16 +803,16 @@ }, { "name": "nikic/php-parser", - "version": "v4.15.3", + "version": "v4.15.4", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039" + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/570e980a201d8ed0236b0a62ddf2c9cbb2034039", - "reference": "570e980a201d8ed0236b0a62ddf2c9cbb2034039", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/6bb5176bc4af8bcb7d926f88718db9b96a2d4290", + "reference": "6bb5176bc4af8bcb7d926f88718db9b96a2d4290", "shasum": "" }, "require": { @@ -853,22 +853,22 @@ ], "support": { "issues": "https://github.com/nikic/PHP-Parser/issues", - "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.3" + "source": "https://github.com/nikic/PHP-Parser/tree/v4.15.4" }, - "time": "2023-01-16T22:05:37+00:00" + "time": "2023-03-05T19:49:14+00:00" }, { "name": "pdepend/pdepend", - "version": "2.12.1", + "version": "2.13.0", "source": { "type": "git", "url": "https://github.com/pdepend/pdepend.git", - "reference": "7a892d56ceafd804b4a2ecc85184640937ce9e84" + "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/7a892d56ceafd804b4a2ecc85184640937ce9e84", - "reference": "7a892d56ceafd804b4a2ecc85184640937ce9e84", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", + "reference": "31be7cd4f305f3f7b52af99c1cb13fc938d1cfad", "shasum": "" }, "require": { @@ -904,7 +904,7 @@ "description": "Official version of pdepend to be handled with Composer", "support": { "issues": "https://github.com/pdepend/pdepend/issues", - "source": "https://github.com/pdepend/pdepend/tree/2.12.1" + "source": "https://github.com/pdepend/pdepend/tree/2.13.0" }, "funding": [ { @@ -912,20 +912,20 @@ "type": "tidelift" } ], - "time": "2022-09-08T19:30:37+00:00" + "time": "2023-02-28T20:56:15+00:00" }, { "name": "phan/phan", - "version": "5.4.1", + "version": "5.4.2", "source": { "type": "git", "url": "https://github.com/phan/phan.git", - "reference": "fef40178a952bcfcc3f69b76989dd613c3d5c759" + "reference": "4f2870ed6fea320f62f3c3c63f3274d357a7980e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phan/phan/zipball/fef40178a952bcfcc3f69b76989dd613c3d5c759", - "reference": "fef40178a952bcfcc3f69b76989dd613c3d5c759", + "url": "https://api.github.com/repos/phan/phan/zipball/4f2870ed6fea320f62f3c3c63f3274d357a7980e", + "reference": "4f2870ed6fea320f62f3c3c63f3274d357a7980e", "shasum": "" }, "require": { @@ -935,7 +935,7 @@ "ext-json": "*", "ext-tokenizer": "*", "felixfbecker/advanced-json-rpc": "^3.0.4", - "microsoft/tolerant-php-parser": "0.1.1", + "microsoft/tolerant-php-parser": "0.1.2", "netresearch/jsonmapper": "^1.6.0|^2.0|^3.0|^4.0", "php": "^7.2.0|^8.0.0", "sabre/event": "^5.1.3", @@ -989,9 +989,9 @@ ], "support": { "issues": "https://github.com/phan/phan/issues", - "source": "https://github.com/phan/phan/tree/5.4.1" + "source": "https://github.com/phan/phan/tree/5.4.2" }, - "time": "2022-08-26T00:49:07+00:00" + "time": "2023-03-03T17:20:24+00:00" }, { "name": "phar-io/manifest", @@ -1437,16 +1437,16 @@ }, { "name": "phpstan/phpstan", - "version": "1.9.17", + "version": "1.10.6", "source": { "type": "git", "url": "https://github.com/phpstan/phpstan.git", - "reference": "204e459e7822f2c586463029f5ecec31bb45a1f2" + "reference": "50d089a3e0904b0fe7e2cf2d4fd37d427d64235a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpstan/phpstan/zipball/204e459e7822f2c586463029f5ecec31bb45a1f2", - "reference": "204e459e7822f2c586463029f5ecec31bb45a1f2", + "url": "https://api.github.com/repos/phpstan/phpstan/zipball/50d089a3e0904b0fe7e2cf2d4fd37d427d64235a", + "reference": "50d089a3e0904b0fe7e2cf2d4fd37d427d64235a", "shasum": "" }, "require": { @@ -1476,7 +1476,7 @@ ], "support": { "issues": "https://github.com/phpstan/phpstan/issues", - "source": "https://github.com/phpstan/phpstan/tree/1.9.17" + "source": "https://github.com/phpstan/phpstan/tree/1.10.6" }, "funding": [ { @@ -1492,27 +1492,27 @@ "type": "tidelift" } ], - "time": "2023-02-08T12:25:00+00:00" + "time": "2023-03-09T16:55:12+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "10.0.0", + "version": "10.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "bf4fbc9c13af7da12b3ea807574fb460f255daba" + "reference": "20800e84296ea4732f9a125e08ce86b4004ae3e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/bf4fbc9c13af7da12b3ea807574fb460f255daba", - "reference": "bf4fbc9c13af7da12b3ea807574fb460f255daba", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/20800e84296ea4732f9a125e08ce86b4004ae3e4", + "reference": "20800e84296ea4732f9a125e08ce86b4004ae3e4", "shasum": "" }, "require": { "ext-dom": "*", "ext-libxml": "*", "ext-xmlwriter": "*", - "nikic/php-parser": "^4.14", + "nikic/php-parser": "^4.15", "php": ">=8.1", "phpunit/php-file-iterator": "^4.0", "phpunit/php-text-template": "^3.0", @@ -1527,8 +1527,8 @@ "phpunit/phpunit": "^10.0" }, "suggest": { - "ext-pcov": "*", - "ext-xdebug": "*" + "ext-pcov": "PHP extension that provides line coverage", + "ext-xdebug": "PHP extension that provides line coverage as well as branch and path coverage" }, "type": "library", "extra": { @@ -1561,7 +1561,7 @@ ], "support": { "issues": "https://github.com/sebastianbergmann/php-code-coverage/issues", - "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.0.0" + "source": "https://github.com/sebastianbergmann/php-code-coverage/tree/10.0.2" }, "funding": [ { @@ -1569,7 +1569,7 @@ "type": "github" } ], - "time": "2023-02-03T07:14:34+00:00" + "time": "2023-03-06T13:00:19+00:00" }, { "name": "phpunit/php-file-iterator", @@ -3195,16 +3195,16 @@ }, { "name": "squizlabs/php_codesniffer", - "version": "3.7.1", + "version": "3.7.2", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619" + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/1359e176e9307e906dc3d890bcc9603ff6d90619", - "reference": "1359e176e9307e906dc3d890bcc9603ff6d90619", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/ed8e00df0a83aa96acf703f8c2979ff33341f879", + "reference": "ed8e00df0a83aa96acf703f8c2979ff33341f879", "shasum": "" }, "require": { @@ -3240,27 +3240,28 @@ "homepage": "https://github.com/squizlabs/PHP_CodeSniffer", "keywords": [ "phpcs", - "standards" + "standards", + "static analysis" ], "support": { "issues": "https://github.com/squizlabs/PHP_CodeSniffer/issues", "source": "https://github.com/squizlabs/PHP_CodeSniffer", "wiki": "https://github.com/squizlabs/PHP_CodeSniffer/wiki" }, - "time": "2022-06-18T07:21:10+00:00" + "time": "2023-02-22T23:07:41+00:00" }, { "name": "symfony/config", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "f31b3c78a3650157188a240695e688d6a182aa91" + "reference": "249271da6f545d6579e0663374f8249a80be2893" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/f31b3c78a3650157188a240695e688d6a182aa91", - "reference": "f31b3c78a3650157188a240695e688d6a182aa91", + "url": "https://api.github.com/repos/symfony/config/zipball/249271da6f545d6579e0663374f8249a80be2893", + "reference": "249271da6f545d6579e0663374f8249a80be2893", "shasum": "" }, "require": { @@ -3308,7 +3309,7 @@ "description": "Helps you find, load, combine, autofill and validate configuration values of any kind", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/config/tree/v6.2.5" + "source": "https://github.com/symfony/config/tree/v6.2.7" }, "funding": [ { @@ -3324,20 +3325,20 @@ "type": "tidelift" } ], - "time": "2023-01-09T04:38:22+00:00" + "time": "2023-02-14T08:44:56+00:00" }, { "name": "symfony/console", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3e294254f2191762c1d137aed4b94e966965e985" + "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3e294254f2191762c1d137aed4b94e966965e985", - "reference": "3e294254f2191762c1d137aed4b94e966965e985", + "url": "https://api.github.com/repos/symfony/console/zipball/cbad09eb8925b6ad4fb721c7a179344dc4a19d45", + "reference": "cbad09eb8925b6ad4fb721c7a179344dc4a19d45", "shasum": "" }, "require": { @@ -3404,7 +3405,7 @@ "terminal" ], "support": { - "source": "https://github.com/symfony/console/tree/v6.2.5" + "source": "https://github.com/symfony/console/tree/v6.2.7" }, "funding": [ { @@ -3420,20 +3421,20 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2023-02-25T17:00:03+00:00" }, { "name": "symfony/dependency-injection", - "version": "v6.2.6", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "2a6dd148589b9db59717db8b75f8d9fbb2ae714f" + "reference": "83369dd4ec84bba9673524d25b79dfbde9e6e84c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/2a6dd148589b9db59717db8b75f8d9fbb2ae714f", - "reference": "2a6dd148589b9db59717db8b75f8d9fbb2ae714f", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/83369dd4ec84bba9673524d25b79dfbde9e6e84c", + "reference": "83369dd4ec84bba9673524d25b79dfbde9e6e84c", "shasum": "" }, "require": { @@ -3441,7 +3442,7 @@ "psr/container": "^1.1|^2.0", "symfony/deprecation-contracts": "^2.1|^3", "symfony/service-contracts": "^1.1.6|^2.0|^3.0", - "symfony/var-exporter": "^6.2" + "symfony/var-exporter": "^6.2.7" }, "conflict": { "ext-psr": "<1.1|>=2", @@ -3491,7 +3492,7 @@ "description": "Allows you to standardize and centralize the way objects are constructed in your application", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/dependency-injection/tree/v6.2.6" + "source": "https://github.com/symfony/dependency-injection/tree/v6.2.7" }, "funding": [ { @@ -3507,20 +3508,20 @@ "type": "tidelift" } ], - "time": "2023-01-30T15:46:28+00:00" + "time": "2023-02-16T14:11:02+00:00" }, { "name": "symfony/deprecation-contracts", - "version": "v3.2.0", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3" + "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/1ee04c65529dea5d8744774d474e7cbd2f1206d3", - "reference": "1ee04c65529dea5d8744774d474e7cbd2f1206d3", + "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", + "reference": "e2d1534420bd723d0ef5aec58a22c5fe60ce6f5e", "shasum": "" }, "require": { @@ -3558,7 +3559,7 @@ "description": "A generic function and convention to trigger deprecation notices", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/deprecation-contracts/tree/v3.2.1" }, "funding": [ { @@ -3574,20 +3575,20 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-03-01T10:25:55+00:00" }, { "name": "symfony/filesystem", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", - "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593" + "reference": "82b6c62b959f642d000456f08c6d219d749215b3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/filesystem/zipball/e59e8a4006afd7f5654786a83b4fcb8da98f4593", - "reference": "e59e8a4006afd7f5654786a83b4fcb8da98f4593", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/82b6c62b959f642d000456f08c6d219d749215b3", + "reference": "82b6c62b959f642d000456f08c6d219d749215b3", "shasum": "" }, "require": { @@ -3621,7 +3622,7 @@ "description": "Provides basic utilities for the filesystem", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/filesystem/tree/v6.2.5" + "source": "https://github.com/symfony/filesystem/tree/v6.2.7" }, "funding": [ { @@ -3637,7 +3638,7 @@ "type": "tidelift" } ], - "time": "2023-01-20T17:45:48+00:00" + "time": "2023-02-14T08:44:56+00:00" }, { "name": "symfony/polyfill-ctype", @@ -4054,16 +4055,16 @@ }, { "name": "symfony/service-contracts", - "version": "v3.2.0", + "version": "v3.2.1", "source": { "type": "git", "url": "https://github.com/symfony/service-contracts.git", - "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75" + "reference": "a8c9cedf55f314f3a186041d19537303766df09a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/service-contracts/zipball/aac98028c69df04ee77eb69b96b86ee51fbf4b75", - "reference": "aac98028c69df04ee77eb69b96b86ee51fbf4b75", + "url": "https://api.github.com/repos/symfony/service-contracts/zipball/a8c9cedf55f314f3a186041d19537303766df09a", + "reference": "a8c9cedf55f314f3a186041d19537303766df09a", "shasum": "" }, "require": { @@ -4119,7 +4120,7 @@ "standards" ], "support": { - "source": "https://github.com/symfony/service-contracts/tree/v3.2.0" + "source": "https://github.com/symfony/service-contracts/tree/v3.2.1" }, "funding": [ { @@ -4135,20 +4136,20 @@ "type": "tidelift" } ], - "time": "2022-11-25T10:21:52+00:00" + "time": "2023-03-01T10:32:47+00:00" }, { "name": "symfony/stopwatch", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", - "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6" + "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/stopwatch/zipball/00b6ac156aacffc53487c930e0ab14587a6607f6", - "reference": "00b6ac156aacffc53487c930e0ab14587a6607f6", + "url": "https://api.github.com/repos/symfony/stopwatch/zipball/f3adc98c1061875dd2edcd45e5b04e63d0e29f8f", + "reference": "f3adc98c1061875dd2edcd45e5b04e63d0e29f8f", "shasum": "" }, "require": { @@ -4181,7 +4182,7 @@ "description": "Provides a way to profile code", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/stopwatch/tree/v6.2.5" + "source": "https://github.com/symfony/stopwatch/tree/v6.2.7" }, "funding": [ { @@ -4197,20 +4198,20 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:36:55+00:00" + "time": "2023-02-14T08:44:56+00:00" }, { "name": "symfony/string", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/string.git", - "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0" + "reference": "67b8c1eec78296b85dc1c7d9743830160218993d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/string/zipball/b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", - "reference": "b2dac0fa27b1ac0f9c0c0b23b43977f12308d0b0", + "url": "https://api.github.com/repos/symfony/string/zipball/67b8c1eec78296b85dc1c7d9743830160218993d", + "reference": "67b8c1eec78296b85dc1c7d9743830160218993d", "shasum": "" }, "require": { @@ -4267,7 +4268,7 @@ "utf8" ], "support": { - "source": "https://github.com/symfony/string/tree/v6.2.5" + "source": "https://github.com/symfony/string/tree/v6.2.7" }, "funding": [ { @@ -4283,20 +4284,20 @@ "type": "tidelift" } ], - "time": "2023-01-01T08:38:09+00:00" + "time": "2023-02-24T10:42:00+00:00" }, { "name": "symfony/var-exporter", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/var-exporter.git", - "reference": "108f9c6451eea8e04a7fb83bbacb5b812ef30e35" + "reference": "86062dd0103530e151588c8f60f5b85a139f1442" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/var-exporter/zipball/108f9c6451eea8e04a7fb83bbacb5b812ef30e35", - "reference": "108f9c6451eea8e04a7fb83bbacb5b812ef30e35", + "url": "https://api.github.com/repos/symfony/var-exporter/zipball/86062dd0103530e151588c8f60f5b85a139f1442", + "reference": "86062dd0103530e151588c8f60f5b85a139f1442", "shasum": "" }, "require": { @@ -4341,7 +4342,7 @@ "serialize" ], "support": { - "source": "https://github.com/symfony/var-exporter/tree/v6.2.5" + "source": "https://github.com/symfony/var-exporter/tree/v6.2.7" }, "funding": [ { @@ -4357,20 +4358,20 @@ "type": "tidelift" } ], - "time": "2023-01-13T08:35:57+00:00" + "time": "2023-02-24T10:42:00+00:00" }, { "name": "symfony/yaml", - "version": "v6.2.5", + "version": "v6.2.7", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "2bbfbdacc8a15574f8440c4838ce0d7bb6c86b19" + "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/2bbfbdacc8a15574f8440c4838ce0d7bb6c86b19", - "reference": "2bbfbdacc8a15574f8440c4838ce0d7bb6c86b19", + "url": "https://api.github.com/repos/symfony/yaml/zipball/e8e6a1d59e050525f27a1f530aa9703423cb7f57", + "reference": "e8e6a1d59e050525f27a1f530aa9703423cb7f57", "shasum": "" }, "require": { @@ -4415,7 +4416,7 @@ "description": "Loads and dumps YAML files", "homepage": "https://symfony.com", "support": { - "source": "https://github.com/symfony/yaml/tree/v6.2.5" + "source": "https://github.com/symfony/yaml/tree/v6.2.7" }, "funding": [ { @@ -4431,7 +4432,7 @@ "type": "tidelift" } ], - "time": "2023-01-10T18:53:53+00:00" + "time": "2023-02-16T09:57:23+00:00" }, { "name": "theseer/tokenizer", diff --git a/docs/classes/Phpolar-CsvFileStorage-AmbiguousUnionTypeException.html b/docs/classes/Phpolar-CsvFileStorage-AmbiguousUnionTypeException.html new file mode 100644 index 0000000..d6d56e9 --- /dev/null +++ b/docs/classes/Phpolar-CsvFileStorage-AmbiguousUnionTypeException.html @@ -0,0 +1,235 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + +
+

Documentation

+ + + + + +
+ +
+
+ + + + +
+ + +
+

+ AmbiguousUnionTypeException + + + extends RuntimeException + + +
+ in package + +
+ + +

+ + + +

Represents when the type cannot be confidently selected from the specified union type

+ + + + + + + + + + + + + + + + + + + + +
+
+
+
+

Search results

+ +
+
+
    +
    +
    +
    +
    +
    + + +
    + + + + + + + + diff --git a/docs/classes/Phpolar-CsvFileStorage-CsvFileStorage.html b/docs/classes/Phpolar-CsvFileStorage-CsvFileStorage.html index ce01208..98859f6 100644 --- a/docs/classes/Phpolar-CsvFileStorage-CsvFileStorage.html +++ b/docs/classes/Phpolar-CsvFileStorage-CsvFileStorage.html @@ -116,13 +116,16 @@

    + + implements + Countable

    @@ -134,6 +137,18 @@

    +

    + Interfaces, Classes, Traits and Enums + +

    + +
    +
    Countable
    +
    + + + +

    @@ -164,11 +179,11 @@

    - load() + count() -  : void +  : int
    -
    +
    Get the count of items in storage
    @@ -196,14 +211,14 @@

    public - __construct(string $filename) : mixed + __construct(string $filename[, string|null $typeClassName = null ]) : mixed
    @@ -216,6 +231,14 @@

    Parameters
    +
    +
    + $typeClassName + : string|null + = null
    +
    +
    +
    @@ -240,7 +263,7 @@

    @@ -273,7 +296,7 @@

    @@ -299,29 +322,29 @@

    Return values
    -public " > -

    - load() - +

    + count() +

    +

    Get the count of items in storage

    public - load() : void + count() : int -
    Return values
    - void + int — diff --git a/docs/classes/Phpolar-CsvFileStorage-FileNotExistsException.html b/docs/classes/Phpolar-CsvFileStorage-FileNotExistsException.html new file mode 100644 index 0000000..9855d5a --- /dev/null +++ b/docs/classes/Phpolar-CsvFileStorage-FileNotExistsException.html @@ -0,0 +1,299 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + +
    +

    Documentation

    + + + + + +
    + +
    +
    + + + + +
    + + +
    +

    + FileNotExistsException + + + extends RuntimeException + + +
    + in package + +
    + + +

    + + + +

    Represents when a file should exist but does not.

    + + + + + + + + + +

    + Table of Contents + +

    + +
    +
    + __construct() + +  : mixed +
    +
    + +
    + + + + + + + +
    +

    + Methods + +

    +
    +

    + __construct() + +

    + + + + + public + __construct(string $filename) : mixed + +
    + +
    Parameters
    +
    +
    + $filename + : string +
    +
    +
    + +
    +
    + + + +
    Return values
    + mixed + — + + +
    +
    + + + + +
    +
    +
    +
    +

    Search results

    + +
    +
    +
      +
      +
      +
      +
      +
      + + +
      + + + + + + + + diff --git a/docs/files/ambiguousuniontypeexception.html b/docs/files/ambiguousuniontypeexception.html new file mode 100644 index 0000000..55bc085 --- /dev/null +++ b/docs/files/ambiguousuniontypeexception.html @@ -0,0 +1,158 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + +
      +

      Documentation

      + + + + + +
      + +
      +
      + + + + +
      +
        +
      + +
      +

      AmbiguousUnionTypeException.php

      + + +
      + + + + + + +

      + Interfaces, Classes, Traits and Enums + +

      + +
      + +
      AmbiguousUnionTypeException
      +
      Represents when the type cannot be confidently selected from the specified union type
      + + +
      + + + + + + + + +
      +
      +
      +
      +

      Search results

      + +
      +
      +
        +
        +
        +
        +
        +
        + + +
        + + + + + + + + diff --git a/docs/files/filenotexistsexception.html b/docs/files/filenotexistsexception.html new file mode 100644 index 0000000..67c0e7d --- /dev/null +++ b/docs/files/filenotexistsexception.html @@ -0,0 +1,158 @@ + + + + + Documentation + + + + + + + + + + + + + + + + + + + + +
        +

        Documentation

        + + + + + +
        + +
        +
        + + + + +
        +
          +
        + +
        +

        FileNotExistsException.php

        + + +
        + + + + + + +

        + Interfaces, Classes, Traits and Enums + +

        + +
        + +
        FileNotExistsException
        +
        Represents when a file should exist but does not.
        + + +
        + + + + + + + + +
        +
        +
        +
        +

        Search results

        + +
        +
        +
          +
          +
          +
          +
          +
          + + +
          + + + + + + + + diff --git a/docs/graphs/classes.svg b/docs/graphs/classes.svg index fe5854e..ebdf24e 100644 --- a/docs/graphs/classes.svg +++ b/docs/graphs/classes.svg @@ -1,9 +1,16 @@ -Phpolar\CsvFileStoragePhpolar\Phpolar\StorageCsvFileStorageAbstractStoragePhpolar\CsvFileStoragePhpolar\Phpolar\StorageAmbiguousUnionTypeExceptionCsvFileStorageFileNotExistsExceptionAbstractStorageRuntimeExceptionCountable