Compare commits

...

16 Commits

7 changed files with 210 additions and 137 deletions

View File

@ -5,8 +5,8 @@ composer:
dev: dev:
link: true link: true
require: require:
nulib/php: ^8.2-dev nulib/base: ^8.2-dev
dist: dist:
link: false link: false
require: require:
nulib/php: ^0.5.0p82 nulib/base: ^0.6.0p82

View File

@ -1,3 +1,9 @@
## Release 0.6.0p82 du 30/05/2025-23:01
## Release 0.6.0p74 du 30/05/2025-22:53
migrer de nulib/php à nulib/base
## Release 0.5.0p82 du 30/04/2025-04:43 ## Release 0.5.0p82 du 30/04/2025-04:43
## Release 0.5.0p74 du 30/04/2025-04:39 ## Release 0.5.0p74 du 30/04/2025-04:39

49
README.md Normal file
View File

@ -0,0 +1,49 @@
# nulib-spout
## Release
Exemple: release de la version 0.6.0
Avant de faire une release majeure sur nulib/spout, faire d'abord la release
majeure correspondante sur
* nulib/base
~~~sh
version=0.6.0
major="${version%.*}.0"
## branche dev74
git checkout dev74
sed -ri "\
/nulib\/.*:/s/[0-9]+.[0-9]+.0p74/${major}p74/
" .composer.pman.yml
pci "maj projet"
prel -v$version
# en cas de conflit, sélectionner HEAD
_merge82
## branche dev82
git checkout dev82
sed -ri "\
/nulib\/.*:/s/[0-9]+.[0-9]+.0p82/${major}p82/
" .composer.pman.yml
pci "maj projet"
prel -C
commit="$(git log --grep="Init changelog . version ${version}p82" --format=%H)" &&
echo "commit=$commit"
git checkout dev74
git cherry-pick "$commit"
pp -a
~~~
-*- coding: utf-8 mode: markdown -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8:noeol:binary

View File

@ -1 +1 @@
0.5.0 0.6.0

View File

@ -18,7 +18,7 @@
"openspout/openspout": "v4.27.0" "openspout/openspout": "v4.27.0"
}, },
"require": { "require": {
"nulib/php": "^0.5.0p82", "nulib/base": "^0.6.0p82",
"ext-dom": "*", "ext-dom": "*",
"ext-fileinfo": "*", "ext-fileinfo": "*",
"ext-filter": "*", "ext-filter": "*",

269
composer.lock generated
View File

@ -4,21 +4,24 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"content-hash": "a52c55d2e232adab0d6e67b6b6358568", "content-hash": "d329eabc94497092305a2f9f9039340f",
"packages": [ "packages": [
{ {
"name": "nulib/php", "name": "nulib/base",
"version": "0.5.0p82", "version": "0.6.0p82",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://git.univ-reunion.fr/sda-php/nulib.git", "url": "https://git.univ-reunion.fr/sda-php/nulib-base.git",
"reference": "9f8b6545e68079728bb7349487b99024bd7d5090" "reference": "34ef2b7bf55e45c70db2cf8f6bd814f86f47f478"
}, },
"require": { "require": {
"ext-json": "*", "ext-json": "*",
"php": "^8.2", "php": "^8.2",
"symfony/yaml": "^7.1" "symfony/yaml": "^7.1"
}, },
"replace": {
"nulib/php": "<0.6.0"
},
"require-dev": { "require-dev": {
"ext-curl": "*", "ext-curl": "*",
"ext-pcntl": "*", "ext-pcntl": "*",
@ -52,20 +55,20 @@
} }
], ],
"description": "fonctions et classes essentielles", "description": "fonctions et classes essentielles",
"time": "2025-04-30T00:33:36+00:00" "time": "2025-05-30T18:38:04+00:00"
}, },
{ {
"name": "symfony/deprecation-contracts", "name": "symfony/deprecation-contracts",
"version": "v3.5.1", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git", "url": "https://github.com/symfony/deprecation-contracts.git",
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6" "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/63afe740e99a13ba87ec199bb07bbdee937a5b62",
"reference": "74c71c939a79f7d5bf3c1ce9f5ea37ba0114c6f6", "reference": "63afe740e99a13ba87ec199bb07bbdee937a5b62",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -78,7 +81,7 @@
"name": "symfony/contracts" "name": "symfony/contracts"
}, },
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.6-dev"
} }
}, },
"autoload": { "autoload": {
@ -103,7 +106,7 @@
"description": "A generic function and convention to trigger deprecation notices", "description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.1" "source": "https://github.com/symfony/deprecation-contracts/tree/v3.6.0"
}, },
"funding": [ "funding": [
{ {
@ -119,11 +122,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-25T14:20:29+00:00" "time": "2024-09-25T14:21:43+00:00"
}, },
{ {
"name": "symfony/polyfill-ctype", "name": "symfony/polyfill-ctype",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-ctype.git", "url": "https://github.com/symfony/polyfill-ctype.git",
@ -182,7 +185,7 @@
"portable" "portable"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-ctype/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -202,16 +205,16 @@
}, },
{ {
"name": "symfony/yaml", "name": "symfony/yaml",
"version": "v7.2.5", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/yaml.git", "url": "https://github.com/symfony/yaml.git",
"reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912" "reference": "cea40a48279d58dc3efee8112634cb90141156c2"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/yaml/zipball/4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", "url": "https://api.github.com/repos/symfony/yaml/zipball/cea40a48279d58dc3efee8112634cb90141156c2",
"reference": "4c4b6f4cfcd7e52053f0c8bfad0f7f30fb924912", "reference": "cea40a48279d58dc3efee8112634cb90141156c2",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -254,7 +257,7 @@
"description": "Loads and dumps YAML files", "description": "Loads and dumps YAML files",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/yaml/tree/v7.2.5" "source": "https://github.com/symfony/yaml/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -270,7 +273,7 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-03T07:12:39+00:00" "time": "2025-04-04T10:10:33+00:00"
} }
], ],
"packages-dev": [ "packages-dev": [
@ -2026,16 +2029,16 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "1.12.25", "version": "1.12.27",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/phpstan/phpstan.git", "url": "https://github.com/phpstan/phpstan.git",
"reference": "e310849a19e02b8bfcbb63147f495d8f872dd96f" "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/e310849a19e02b8bfcbb63147f495d8f872dd96f", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/3a6e423c076ab39dfedc307e2ac627ef579db162",
"reference": "e310849a19e02b8bfcbb63147f495d8f872dd96f", "reference": "3a6e423c076ab39dfedc307e2ac627ef579db162",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2080,7 +2083,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-04-27T12:20:45+00:00" "time": "2025-05-21T20:51:45+00:00"
}, },
{ {
"name": "phpstan/phpstan-phpunit", "name": "phpstan/phpstan-phpunit",
@ -2506,16 +2509,16 @@
}, },
{ {
"name": "phpunit/phpunit", "name": "phpunit/phpunit",
"version": "10.5.45", "version": "10.5.46",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git", "url": "https://github.com/sebastianbergmann/phpunit.git",
"reference": "bd68a781d8e30348bc297449f5234b3458267ae8" "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/bd68a781d8e30348bc297449f5234b3458267ae8", "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/8080be387a5be380dda48c6f41cee4a13aadab3d",
"reference": "bd68a781d8e30348bc297449f5234b3458267ae8", "reference": "8080be387a5be380dda48c6f41cee4a13aadab3d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -2525,7 +2528,7 @@
"ext-mbstring": "*", "ext-mbstring": "*",
"ext-xml": "*", "ext-xml": "*",
"ext-xmlwriter": "*", "ext-xmlwriter": "*",
"myclabs/deep-copy": "^1.12.1", "myclabs/deep-copy": "^1.13.1",
"phar-io/manifest": "^2.0.4", "phar-io/manifest": "^2.0.4",
"phar-io/version": "^3.2.1", "phar-io/version": "^3.2.1",
"php": ">=8.1", "php": ">=8.1",
@ -2587,7 +2590,7 @@
"support": { "support": {
"issues": "https://github.com/sebastianbergmann/phpunit/issues", "issues": "https://github.com/sebastianbergmann/phpunit/issues",
"security": "https://github.com/sebastianbergmann/phpunit/security/policy", "security": "https://github.com/sebastianbergmann/phpunit/security/policy",
"source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.45" "source": "https://github.com/sebastianbergmann/phpunit/tree/10.5.46"
}, },
"funding": [ "funding": [
{ {
@ -2598,12 +2601,20 @@
"url": "https://github.com/sebastianbergmann", "url": "https://github.com/sebastianbergmann",
"type": "github" "type": "github"
}, },
{
"url": "https://liberapay.com/sebastianbergmann",
"type": "liberapay"
},
{
"url": "https://thanks.dev/u/gh/sebastianbergmann",
"type": "thanks_dev"
},
{ {
"url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit", "url": "https://tidelift.com/funding/github/packagist/phpunit/phpunit",
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-02-06T16:08:12+00:00" "time": "2025-05-02T06:46:24+00:00"
}, },
{ {
"name": "psr/cache", "name": "psr/cache",
@ -3335,20 +3346,20 @@
}, },
{ {
"name": "sanmai/later", "name": "sanmai/later",
"version": "0.1.5", "version": "0.1.7",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sanmai/later.git", "url": "https://github.com/sanmai/later.git",
"reference": "cf5164557d19930295892094996f049ea12ba14d" "reference": "72a82d783864bca90412d8a26c1878f8981fee97"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sanmai/later/zipball/cf5164557d19930295892094996f049ea12ba14d", "url": "https://api.github.com/repos/sanmai/later/zipball/72a82d783864bca90412d8a26c1878f8981fee97",
"reference": "cf5164557d19930295892094996f049ea12ba14d", "reference": "72a82d783864bca90412d8a26c1878f8981fee97",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=7.4" "php": ">=8.2"
}, },
"require-dev": { "require-dev": {
"ergebnis/composer-normalize": "^2.8", "ergebnis/composer-normalize": "^2.8",
@ -3387,7 +3398,7 @@
"description": "Later: deferred wrapper object", "description": "Later: deferred wrapper object",
"support": { "support": {
"issues": "https://github.com/sanmai/later/issues", "issues": "https://github.com/sanmai/later/issues",
"source": "https://github.com/sanmai/later/tree/0.1.5" "source": "https://github.com/sanmai/later/tree/0.1.7"
}, },
"funding": [ "funding": [
{ {
@ -3395,24 +3406,24 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-12-06T02:36:26+00:00" "time": "2025-05-11T01:48:00+00:00"
}, },
{ {
"name": "sanmai/pipeline", "name": "sanmai/pipeline",
"version": "6.12", "version": "6.15",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/sanmai/pipeline.git", "url": "https://github.com/sanmai/pipeline.git",
"reference": "ad7dbc3f773eeafb90d5459522fbd8f188532e25" "reference": "a60dfb63569913f563587a0f102316a3dc24242c"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/sanmai/pipeline/zipball/ad7dbc3f773eeafb90d5459522fbd8f188532e25", "url": "https://api.github.com/repos/sanmai/pipeline/zipball/a60dfb63569913f563587a0f102316a3dc24242c",
"reference": "ad7dbc3f773eeafb90d5459522fbd8f188532e25", "reference": "a60dfb63569913f563587a0f102316a3dc24242c",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4 || ^8.0" "php": ">=8.2"
}, },
"require-dev": { "require-dev": {
"ergebnis/composer-normalize": "^2.8", "ergebnis/composer-normalize": "^2.8",
@ -3421,8 +3432,8 @@
"league/pipeline": "^0.3 || ^1.0", "league/pipeline": "^0.3 || ^1.0",
"phan/phan": ">=1.1", "phan/phan": ">=1.1",
"php-coveralls/php-coveralls": "^2.4.1", "php-coveralls/php-coveralls": "^2.4.1",
"phpstan/phpstan": ">=0.10", "phpstan/phpstan": ">=0.10 <2",
"phpunit/phpunit": ">=9.4", "phpunit/phpunit": ">=9.4 <12",
"vimeo/psalm": ">=2" "vimeo/psalm": ">=2"
}, },
"type": "library", "type": "library",
@ -3452,7 +3463,7 @@
"description": "General-purpose collections pipeline", "description": "General-purpose collections pipeline",
"support": { "support": {
"issues": "https://github.com/sanmai/pipeline/issues", "issues": "https://github.com/sanmai/pipeline/issues",
"source": "https://github.com/sanmai/pipeline/tree/6.12" "source": "https://github.com/sanmai/pipeline/tree/6.15"
}, },
"funding": [ "funding": [
{ {
@ -3460,7 +3471,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2024-10-17T02:22:57+00:00" "time": "2025-05-30T06:51:34+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@ -4444,23 +4455,24 @@
}, },
{ {
"name": "symfony/console", "name": "symfony/console",
"version": "v7.2.5", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/console.git", "url": "https://github.com/symfony/console.git",
"reference": "e51498ea18570c062e7df29d05a7003585b19b88" "reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/console/zipball/e51498ea18570c062e7df29d05a7003585b19b88", "url": "https://api.github.com/repos/symfony/console/zipball/66c1440edf6f339fd82ed6c7caa76cb006211b44",
"reference": "e51498ea18570c062e7df29d05a7003585b19b88", "reference": "66c1440edf6f339fd82ed6c7caa76cb006211b44",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": ">=8.2", "php": ">=8.2",
"symfony/deprecation-contracts": "^2.5|^3",
"symfony/polyfill-mbstring": "~1.0", "symfony/polyfill-mbstring": "~1.0",
"symfony/service-contracts": "^2.5|^3", "symfony/service-contracts": "^2.5|^3",
"symfony/string": "^6.4|^7.0" "symfony/string": "^7.2"
}, },
"conflict": { "conflict": {
"symfony/dependency-injection": "<6.4", "symfony/dependency-injection": "<6.4",
@ -4517,7 +4529,7 @@
"terminal" "terminal"
], ],
"support": { "support": {
"source": "https://github.com/symfony/console/tree/v7.2.5" "source": "https://github.com/symfony/console/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -4533,20 +4545,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-12T08:11:12+00:00" "time": "2025-05-24T10:34:04+00:00"
}, },
{ {
"name": "symfony/event-dispatcher", "name": "symfony/event-dispatcher",
"version": "v7.2.0", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher.git", "url": "https://github.com/symfony/event-dispatcher.git",
"reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1" "reference": "497f73ac996a598c92409b44ac43b6690c4f666d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/910c5db85a5356d0fea57680defec4e99eb9c8c1", "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/497f73ac996a598c92409b44ac43b6690c4f666d",
"reference": "910c5db85a5356d0fea57680defec4e99eb9c8c1", "reference": "497f73ac996a598c92409b44ac43b6690c4f666d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4597,7 +4609,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them", "description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher/tree/v7.2.0" "source": "https://github.com/symfony/event-dispatcher/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -4613,20 +4625,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-25T14:21:43+00:00" "time": "2025-04-22T09:11:45+00:00"
}, },
{ {
"name": "symfony/event-dispatcher-contracts", "name": "symfony/event-dispatcher-contracts",
"version": "v3.5.1", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git", "url": "https://github.com/symfony/event-dispatcher-contracts.git",
"reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f" "reference": "59eb412e93815df44f05f342958efa9f46b1e586"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/7642f5e970b672283b7823222ae8ef8bbc160b9f", "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/59eb412e93815df44f05f342958efa9f46b1e586",
"reference": "7642f5e970b672283b7823222ae8ef8bbc160b9f", "reference": "59eb412e93815df44f05f342958efa9f46b1e586",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4640,7 +4652,7 @@
"name": "symfony/contracts" "name": "symfony/contracts"
}, },
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.6-dev"
} }
}, },
"autoload": { "autoload": {
@ -4673,7 +4685,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.1" "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.6.0"
}, },
"funding": [ "funding": [
{ {
@ -4689,11 +4701,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-25T14:20:29+00:00" "time": "2024-09-25T14:21:43+00:00"
}, },
{ {
"name": "symfony/filesystem", "name": "symfony/filesystem",
"version": "v7.2.0", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/filesystem.git", "url": "https://github.com/symfony/filesystem.git",
@ -4739,7 +4751,7 @@
"description": "Provides basic utilities for the filesystem", "description": "Provides basic utilities for the filesystem",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/filesystem/tree/v7.2.0" "source": "https://github.com/symfony/filesystem/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -4759,16 +4771,16 @@
}, },
{ {
"name": "symfony/finder", "name": "symfony/finder",
"version": "v7.2.2", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/finder.git", "url": "https://github.com/symfony/finder.git",
"reference": "87a71856f2f56e4100373e92529eed3171695cfb" "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/finder/zipball/87a71856f2f56e4100373e92529eed3171695cfb", "url": "https://api.github.com/repos/symfony/finder/zipball/ec2344cf77a48253bbca6939aa3d2477773ea63d",
"reference": "87a71856f2f56e4100373e92529eed3171695cfb", "reference": "ec2344cf77a48253bbca6939aa3d2477773ea63d",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4803,7 +4815,7 @@
"description": "Finds files and directories via an intuitive fluent interface", "description": "Finds files and directories via an intuitive fluent interface",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/finder/tree/v7.2.2" "source": "https://github.com/symfony/finder/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -4819,20 +4831,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-12-30T19:00:17+00:00" "time": "2024-12-30T19:00:26+00:00"
}, },
{ {
"name": "symfony/options-resolver", "name": "symfony/options-resolver",
"version": "v7.2.0", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/options-resolver.git", "url": "https://github.com/symfony/options-resolver.git",
"reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50" "reference": "afb9a8038025e5dbc657378bfab9198d75f10fca"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/options-resolver/zipball/7da8fbac9dcfef75ffc212235d76b2754ce0cf50", "url": "https://api.github.com/repos/symfony/options-resolver/zipball/afb9a8038025e5dbc657378bfab9198d75f10fca",
"reference": "7da8fbac9dcfef75ffc212235d76b2754ce0cf50", "reference": "afb9a8038025e5dbc657378bfab9198d75f10fca",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -4870,7 +4882,7 @@
"options" "options"
], ],
"support": { "support": {
"source": "https://github.com/symfony/options-resolver/tree/v7.2.0" "source": "https://github.com/symfony/options-resolver/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -4886,11 +4898,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-11-20T11:17:29+00:00" "time": "2025-04-04T13:12:05+00:00"
}, },
{ {
"name": "symfony/polyfill-intl-grapheme", "name": "symfony/polyfill-intl-grapheme",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-grapheme.git", "url": "https://github.com/symfony/polyfill-intl-grapheme.git",
@ -4948,7 +4960,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-intl-grapheme/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -4968,7 +4980,7 @@
}, },
{ {
"name": "symfony/polyfill-intl-normalizer", "name": "symfony/polyfill-intl-normalizer",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-intl-normalizer.git", "url": "https://github.com/symfony/polyfill-intl-normalizer.git",
@ -5029,7 +5041,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-intl-normalizer/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -5049,19 +5061,20 @@
}, },
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git", "url": "https://github.com/symfony/polyfill-mbstring.git",
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/6d857f4d76bd4b343eac26d6b539585d2bc56493",
"reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", "reference": "6d857f4d76bd4b343eac26d6b539585d2bc56493",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"ext-iconv": "*",
"php": ">=7.2" "php": ">=7.2"
}, },
"provide": { "provide": {
@ -5109,7 +5122,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -5125,20 +5138,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-09T11:45:10+00:00" "time": "2024-12-23T08:48:59+00:00"
}, },
{ {
"name": "symfony/polyfill-php80", "name": "symfony/polyfill-php80",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php80.git", "url": "https://github.com/symfony/polyfill-php80.git",
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8" "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
"reference": "60328e362d4c2c802a54fcbf04f9d3fb892b4cf8", "reference": "0cc9dd0f17f61d8131e7df6b84bd344899fe2608",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5189,7 +5202,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php80/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-php80/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -5205,11 +5218,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-09T11:45:10+00:00" "time": "2025-01-02T08:10:11+00:00"
}, },
{ {
"name": "symfony/polyfill-php81", "name": "symfony/polyfill-php81",
"version": "v1.31.0", "version": "v1.32.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/polyfill-php81.git", "url": "https://github.com/symfony/polyfill-php81.git",
@ -5265,7 +5278,7 @@
"shim" "shim"
], ],
"support": { "support": {
"source": "https://github.com/symfony/polyfill-php81/tree/v1.31.0" "source": "https://github.com/symfony/polyfill-php81/tree/v1.32.0"
}, },
"funding": [ "funding": [
{ {
@ -5285,16 +5298,16 @@
}, },
{ {
"name": "symfony/process", "name": "symfony/process",
"version": "v7.2.5", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/process.git", "url": "https://github.com/symfony/process.git",
"reference": "87b7c93e57df9d8e39a093d32587702380ff045d" "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/process/zipball/87b7c93e57df9d8e39a093d32587702380ff045d", "url": "https://api.github.com/repos/symfony/process/zipball/40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
"reference": "87b7c93e57df9d8e39a093d32587702380ff045d", "reference": "40c295f2deb408d5e9d2d32b8ba1dd61e36f05af",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5326,7 +5339,7 @@
"description": "Executes commands in sub-processes", "description": "Executes commands in sub-processes",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/process/tree/v7.2.5" "source": "https://github.com/symfony/process/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -5342,20 +5355,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2025-03-13T12:21:46+00:00" "time": "2025-04-17T09:11:12+00:00"
}, },
{ {
"name": "symfony/service-contracts", "name": "symfony/service-contracts",
"version": "v3.5.1", "version": "v3.6.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/service-contracts.git", "url": "https://github.com/symfony/service-contracts.git",
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0" "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/service-contracts/zipball/e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "url": "https://api.github.com/repos/symfony/service-contracts/zipball/f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
"reference": "e53260aabf78fb3d63f8d79d69ece59f80d5eda0", "reference": "f021b05a130d35510bd6b25fe9053c2a8a15d5d4",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5373,7 +5386,7 @@
"name": "symfony/contracts" "name": "symfony/contracts"
}, },
"branch-alias": { "branch-alias": {
"dev-main": "3.5-dev" "dev-main": "3.6-dev"
} }
}, },
"autoload": { "autoload": {
@ -5409,7 +5422,7 @@
"standards" "standards"
], ],
"support": { "support": {
"source": "https://github.com/symfony/service-contracts/tree/v3.5.1" "source": "https://github.com/symfony/service-contracts/tree/v3.6.0"
}, },
"funding": [ "funding": [
{ {
@ -5425,11 +5438,11 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-09-25T14:20:29+00:00" "time": "2025-04-25T09:37:31+00:00"
}, },
{ {
"name": "symfony/stopwatch", "name": "symfony/stopwatch",
"version": "v7.2.4", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/stopwatch.git", "url": "https://github.com/symfony/stopwatch.git",
@ -5471,7 +5484,7 @@
"description": "Provides a way to profile code", "description": "Provides a way to profile code",
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"support": { "support": {
"source": "https://github.com/symfony/stopwatch/tree/v7.2.4" "source": "https://github.com/symfony/stopwatch/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -5491,16 +5504,16 @@
}, },
{ {
"name": "symfony/string", "name": "symfony/string",
"version": "v7.2.0", "version": "v7.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/symfony/string.git", "url": "https://github.com/symfony/string.git",
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82" "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/symfony/string/zipball/446e0d146f991dde3e73f45f2c97a9faad773c82", "url": "https://api.github.com/repos/symfony/string/zipball/f3570b8c61ca887a9e2938e85cb6458515d2b125",
"reference": "446e0d146f991dde3e73f45f2c97a9faad773c82", "reference": "f3570b8c61ca887a9e2938e85cb6458515d2b125",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5558,7 +5571,7 @@
"utf8" "utf8"
], ],
"support": { "support": {
"source": "https://github.com/symfony/string/tree/v7.2.0" "source": "https://github.com/symfony/string/tree/v7.3.0"
}, },
"funding": [ "funding": [
{ {
@ -5574,20 +5587,20 @@
"type": "tidelift" "type": "tidelift"
} }
], ],
"time": "2024-11-13T13:31:26+00:00" "time": "2025-04-20T20:19:01+00:00"
}, },
{ {
"name": "thecodingmachine/safe", "name": "thecodingmachine/safe",
"version": "v3.1.1", "version": "v3.3.0",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/thecodingmachine/safe.git", "url": "https://github.com/thecodingmachine/safe.git",
"reference": "234f6fe34a0bead8c5ae1cfc0800539442e6f619" "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/thecodingmachine/safe/zipball/234f6fe34a0bead8c5ae1cfc0800539442e6f619", "url": "https://api.github.com/repos/thecodingmachine/safe/zipball/2cdd579eeaa2e78e51c7509b50cc9fb89a956236",
"reference": "234f6fe34a0bead8c5ae1cfc0800539442e6f619", "reference": "2cdd579eeaa2e78e51c7509b50cc9fb89a956236",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@ -5697,7 +5710,7 @@
"description": "PHP core functions that throw exceptions instead of returning FALSE on error", "description": "PHP core functions that throw exceptions instead of returning FALSE on error",
"support": { "support": {
"issues": "https://github.com/thecodingmachine/safe/issues", "issues": "https://github.com/thecodingmachine/safe/issues",
"source": "https://github.com/thecodingmachine/safe/tree/v3.1.1" "source": "https://github.com/thecodingmachine/safe/tree/v3.3.0"
}, },
"funding": [ "funding": [
{ {
@ -5713,7 +5726,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2025-04-28T07:56:17+00:00" "time": "2025-05-14T06:15:44+00:00"
}, },
{ {
"name": "theseer/tokenizer", "name": "theseer/tokenizer",

View File

@ -3,7 +3,10 @@ namespace nulib\ext\spout;
use nulib\cl; use nulib\cl;
use nulib\file\tab\AbstractReader; use nulib\file\tab\AbstractReader;
use OpenSpout\Reader\Common\Creator\ReaderEntityFactory; use nulib\ValueException;
use OpenSpout\Reader\CSV\Reader as CsvReader;
use OpenSpout\Reader\ODS\Reader as ODSReader;
use OpenSpout\Reader\XLSX\Reader as XLSXReader;
class SpoutReader extends AbstractReader { class SpoutReader extends AbstractReader {
/** @var string|int|null nom de la feuille depuis laquelle lire */ /** @var string|int|null nom de la feuille depuis laquelle lire */
@ -67,14 +70,16 @@ class SpoutReader extends AbstractReader {
function getIterator() { function getIterator() {
switch ($this->ssType) { switch ($this->ssType) {
case "ods": case "ods":
$ss = ReaderEntityFactory::createODSReader(); $ss = new ODSReader();
break; break;
case "xlsx": case "xlsx":
$ss = ReaderEntityFactory::createXLSXReader(); $ss = new XLSXReader();
break;
case "csv":
$ss = new CsvReader();
break; break;
default: default:
$ss = ReaderEntityFactory::createReaderFromFile($this->input); throw ValueException::invalid_kind($this->ssType, "file type");
break;
} }
$ss->open($this->input); $ss->open($this->input);
try { try {