diff --git a/composer.json b/composer.json index 3ad145b..1ffd4bf 100644 --- a/composer.json +++ b/composer.json @@ -9,7 +9,6 @@ } ], "require": { - "symfony/yaml": "^5.0", "php": ">=7.4" }, "require-dev": { @@ -59,15 +58,8 @@ "bin": [ "nur_bin/compctl.php", "nur_bin/compdep.php", - "nur_bin/cachectl.php", - "nur_bin/dumpser.php", "nur_bin/datectl.php", - "nur_bin/fsvdiff.php", - "nur_bin/ldap-delete.php", - "nur_bin/ldap-get-infos.php", - "nur_bin/ldap-search.php", - "nur_bin/sqlite-storage.php", - "nur_bin/mysql-storage.php" + "nur_bin/fsvdiff.php" ], "scripts": { "uc": "@php sbin/update_classes.php" diff --git a/composer.lock b/composer.lock index 5064685..bbcac67 100644 --- a/composer.lock +++ b/composer.lock @@ -4,230 +4,8 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "840bbff2fe88e20758118f9181f50474", - "packages": [ - { - "name": "symfony/deprecation-contracts", - "version": "v2.5.3", - "source": { - "type": "git", - "url": "https://github.com/symfony/deprecation-contracts.git", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/80d075412b557d41002320b96a096ca65aa2c98d", - "reference": "80d075412b557d41002320b96a096ca65aa2c98d", - "shasum": "" - }, - "require": { - "php": ">=7.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-main": "2.5-dev" - }, - "thanks": { - "name": "symfony/contracts", - "url": "https://github.com/symfony/contracts" - } - }, - "autoload": { - "files": [ - "function.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "A generic function and convention to trigger deprecation notices", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/deprecation-contracts/tree/v2.5.3" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2023-01-24T14:02:46+00:00" - }, - { - "name": "symfony/polyfill-ctype", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/a3cc8b044a6ea513310cbd48ef7333b384945638", - "reference": "a3cc8b044a6ea513310cbd48ef7333b384945638", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-ctype": "*" - }, - "suggest": { - "ext-ctype": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Ctype\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Gert de Pagter", - "email": "BackEndTea@gmail.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for ctype functions", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "ctype", - "polyfill", - "portable" - ], - "support": { - "source": "https://github.com/symfony/polyfill-ctype/tree/v1.31.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, - { - "name": "symfony/yaml", - "version": "v5.4.44", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "7025b964f123bbf1896d7563db6ec7f1f63e918a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/7025b964f123bbf1896d7563db6ec7f1f63e918a", - "reference": "7025b964f123bbf1896d7563db6ec7f1f63e918a", - "shasum": "" - }, - "require": { - "php": ">=7.2.5", - "symfony/deprecation-contracts": "^2.1|^3", - "symfony/polyfill-ctype": "^1.8" - }, - "conflict": { - "symfony/console": "<5.3" - }, - "require-dev": { - "symfony/console": "^5.3|^6.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "bin": [ - "Resources/bin/yaml-lint" - ], - "type": "library", - "autoload": { - "psr-4": { - "Symfony\\Component\\Yaml\\": "" - }, - "exclude-from-classmap": [ - "/Tests/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Loads and dumps YAML files", - "homepage": "https://symfony.com", - "support": { - "source": "https://github.com/symfony/yaml/tree/v5.4.44" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-16T14:36:56+00:00" - } - ], + "content-hash": "eecfc475edaec378d19d244beb9bc621", + "packages": [], "packages-dev": [ { "name": "doctrine/instantiator", @@ -299,339 +77,18 @@ ], "time": "2022-12-30T00:15:36+00:00" }, - { - "name": "ezyang/htmlpurifier", - "version": "v4.17.0", - "source": { - "type": "git", - "url": "https://github.com/ezyang/htmlpurifier.git", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c", - "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c", - "shasum": "" - }, - "require": { - "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0" - }, - "require-dev": { - "cerdic/css-tidy": "^1.7 || ^2.0", - "simpletest/simpletest": "dev-master" - }, - "suggest": { - "cerdic/css-tidy": "If you want to use the filter 'Filter.ExtractStyleBlocks'.", - "ext-bcmath": "Used for unit conversion and imagecrash protection", - "ext-iconv": "Converts text to and from non-UTF-8 encodings", - "ext-tidy": "Used for pretty-printing HTML" - }, - "type": "library", - "autoload": { - "files": [ - "library/HTMLPurifier.composer.php" - ], - "psr-0": { - "HTMLPurifier": "library/" - }, - "exclude-from-classmap": [ - "/library/HTMLPurifier/Language/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "LGPL-2.1-or-later" - ], - "authors": [ - { - "name": "Edward Z. Yang", - "email": "admin@htmlpurifier.org", - "homepage": "http://ezyang.com" - } - ], - "description": "Standards compliant HTML filter written in PHP", - "homepage": "http://htmlpurifier.org/", - "keywords": [ - "html" - ], - "support": { - "issues": "https://github.com/ezyang/htmlpurifier/issues", - "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0" - }, - "time": "2023-11-17T15:01:25+00:00" - }, - { - "name": "lib/spout", - "version": "v3.7.4", - "source": { - "type": "git", - "url": "https://git.univ-reunion.fr/sda-php/lib-spout.git", - "reference": "c698c09e4d2c2d9ff4b9284b444fbc10e1995017" - }, - "require": { - "ext-dom": "*", - "ext-filter": "*", - "ext-libxml": "*", - "ext-xmlreader": "*", - "ext-zip": "*", - "php": "~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0" - }, - "replace": { - "openspout/openspout": "v3.7.4" - }, - "require-dev": { - "ext-zlib": "*", - "friendsofphp/php-cs-fixer": "^3.4", - "phpstan/phpstan": "^1.4", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^9.5" - }, - "suggest": { - "ext-iconv": "To handle non UTF-8 CSV files (if \"php-intl\" is not already installed or is too limited)", - "ext-intl": "To handle non UTF-8 CSV files (if \"iconv\" is not already installed)" - }, - "type": "library", - "autoload": { - "psr-4": { - "OpenSpout\\": "src/" - } - }, - "autoload-dev": { - "classmap": [ - "tests/" - ] - }, - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jephte Clain", - "email": "Jephte.Clain@univ-reunion.fr" - }, - { - "name": "Adrien Loison", - "email": "adrien@box.com" - } - ], - "description": "PHP Library to read and write spreadsheet files (CSV, XLSX and ODS), in a fast and scalable way", - "homepage": "https://github.com/openspout/openspout", - "keywords": [ - "csv", - "excel", - "memory", - "odf", - "ods", - "office", - "ooxml", - "open", - "php", - "read", - "scale", - "spreadsheet", - "stream", - "write", - "xlsx" - ], - "time": "2024-06-14T04:05:24+00:00" - }, - { - "name": "maennchen/zipstream-php", - "version": "2.2.6", - "source": { - "type": "git", - "url": "https://github.com/maennchen/ZipStream-PHP.git", - "reference": "30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/maennchen/ZipStream-PHP/zipball/30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f", - "reference": "30ad6f93cf3efe4192bc7a4c9cad11ff8f4f237f", - "shasum": "" - }, - "require": { - "myclabs/php-enum": "^1.5", - "php": "^7.4 || ^8.0", - "psr/http-message": "^1.0", - "symfony/polyfill-mbstring": "^1.0" - }, - "require-dev": { - "ext-zip": "*", - "friendsofphp/php-cs-fixer": "^3.9", - "guzzlehttp/guzzle": "^6.5.3 || ^7.2.0", - "mikey179/vfsstream": "^1.6", - "php-coveralls/php-coveralls": "^2.4", - "phpunit/phpunit": "^8.5.8 || ^9.4.2", - "vimeo/psalm": "^4.1" - }, - "type": "library", - "autoload": { - "psr-4": { - "ZipStream\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paul Duncan", - "email": "pabs@pablotron.org" - }, - { - "name": "Jonatan Männchen", - "email": "jonatan@maennchen.ch" - }, - { - "name": "Jesse Donat", - "email": "donatj@gmail.com" - }, - { - "name": "András Kolesár", - "email": "kolesar@kolesar.hu" - } - ], - "description": "ZipStream is a library for dynamically streaming dynamic zip files from PHP without writing to the disk at all on the server.", - "keywords": [ - "stream", - "zip" - ], - "support": { - "issues": "https://github.com/maennchen/ZipStream-PHP/issues", - "source": "https://github.com/maennchen/ZipStream-PHP/tree/2.2.6" - }, - "funding": [ - { - "url": "https://github.com/maennchen", - "type": "github" - }, - { - "url": "https://opencollective.com/zipstream", - "type": "open_collective" - } - ], - "time": "2022-11-25T18:57:19+00:00" - }, - { - "name": "markbaker/complex", - "version": "3.0.2", - "source": { - "type": "git", - "url": "https://github.com/MarkBaker/PHPComplex.git", - "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPComplex/zipball/95c56caa1cf5c766ad6d65b6344b807c1e8405b9", - "reference": "95c56caa1cf5c766ad6d65b6344b807c1e8405b9", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "dev-master", - "phpcompatibility/php-compatibility": "^9.3", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "squizlabs/php_codesniffer": "^3.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Complex\\": "classes/src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mark Baker", - "email": "mark@lange.demon.co.uk" - } - ], - "description": "PHP Class for working with complex numbers", - "homepage": "https://github.com/MarkBaker/PHPComplex", - "keywords": [ - "complex", - "mathematics" - ], - "support": { - "issues": "https://github.com/MarkBaker/PHPComplex/issues", - "source": "https://github.com/MarkBaker/PHPComplex/tree/3.0.2" - }, - "time": "2022-12-06T16:21:08+00:00" - }, - { - "name": "markbaker/matrix", - "version": "3.0.1", - "source": { - "type": "git", - "url": "https://github.com/MarkBaker/PHPMatrix.git", - "reference": "728434227fe21be27ff6d86621a1b13107a2562c" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/MarkBaker/PHPMatrix/zipball/728434227fe21be27ff6d86621a1b13107a2562c", - "reference": "728434227fe21be27ff6d86621a1b13107a2562c", - "shasum": "" - }, - "require": { - "php": "^7.1 || ^8.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "dev-master", - "phpcompatibility/php-compatibility": "^9.3", - "phpdocumentor/phpdocumentor": "2.*", - "phploc/phploc": "^4.0", - "phpmd/phpmd": "2.*", - "phpunit/phpunit": "^7.0 || ^8.0 || ^9.0", - "sebastian/phpcpd": "^4.0", - "squizlabs/php_codesniffer": "^3.7" - }, - "type": "library", - "autoload": { - "psr-4": { - "Matrix\\": "classes/src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Mark Baker", - "email": "mark@demon-angel.eu" - } - ], - "description": "PHP Class for working with matrices", - "homepage": "https://github.com/MarkBaker/PHPMatrix", - "keywords": [ - "mathematics", - "matrix", - "vector" - ], - "support": { - "issues": "https://github.com/MarkBaker/PHPMatrix/issues", - "source": "https://github.com/MarkBaker/PHPMatrix/tree/3.0.1" - }, - "time": "2022-12-02T22:17:43+00:00" - }, { "name": "myclabs/deep-copy", - "version": "1.12.0", + "version": "1.12.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c" + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", - "reference": "3a6b9a42cd8f8771bd4295d13e1423fa7f3d942c", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/123267b2c49fbf30d78a7b2d333f6be754b94845", + "reference": "123267b2c49fbf30d78a7b2d333f6be754b94845", "shasum": "" }, "require": { @@ -670,7 +127,7 @@ ], "support": { "issues": "https://github.com/myclabs/DeepCopy/issues", - "source": "https://github.com/myclabs/DeepCopy/tree/1.12.0" + "source": "https://github.com/myclabs/DeepCopy/tree/1.12.1" }, "funding": [ { @@ -678,70 +135,7 @@ "type": "tidelift" } ], - "time": "2024-06-12T14:39:25+00:00" - }, - { - "name": "myclabs/php-enum", - "version": "1.8.4", - "source": { - "type": "git", - "url": "https://github.com/myclabs/php-enum.git", - "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/myclabs/php-enum/zipball/a867478eae49c9f59ece437ae7f9506bfaa27483", - "reference": "a867478eae49c9f59ece437ae7f9506bfaa27483", - "shasum": "" - }, - "require": { - "ext-json": "*", - "php": "^7.3 || ^8.0" - }, - "require-dev": { - "phpunit/phpunit": "^9.5", - "squizlabs/php_codesniffer": "1.*", - "vimeo/psalm": "^4.6.2" - }, - "type": "library", - "autoload": { - "psr-4": { - "MyCLabs\\Enum\\": "src/" - }, - "classmap": [ - "stubs/Stringable.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP Enum contributors", - "homepage": "https://github.com/myclabs/php-enum/graphs/contributors" - } - ], - "description": "PHP Enum implementation", - "homepage": "http://github.com/myclabs/php-enum", - "keywords": [ - "enum" - ], - "support": { - "issues": "https://github.com/myclabs/php-enum/issues", - "source": "https://github.com/myclabs/php-enum/tree/1.8.4" - }, - "funding": [ - { - "url": "https://github.com/mnapoli", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/myclabs/php-enum", - "type": "tidelift" - } - ], - "time": "2022-08-04T09:53:51+00:00" + "time": "2024-11-08T17:47:46+00:00" }, { "name": "nikic/php-parser", @@ -803,7 +197,7 @@ }, { "name": "nulib/tests", - "version": "7.4", + "version": "9", "source": { "type": "git", "url": "https://git.univ-reunion.fr/sda-php/nulib-tests.git", @@ -951,111 +345,6 @@ }, "time": "2022-02-21T01:04:05+00:00" }, - { - "name": "phpoffice/phpspreadsheet", - "version": "1.29.2", - "source": { - "type": "git", - "url": "https://github.com/PHPOffice/PhpSpreadsheet.git", - "reference": "3a5a818d7d3e4b5bd2e56fb9de44dbded6eae07f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/PHPOffice/PhpSpreadsheet/zipball/3a5a818d7d3e4b5bd2e56fb9de44dbded6eae07f", - "reference": "3a5a818d7d3e4b5bd2e56fb9de44dbded6eae07f", - "shasum": "" - }, - "require": { - "ext-ctype": "*", - "ext-dom": "*", - "ext-fileinfo": "*", - "ext-gd": "*", - "ext-iconv": "*", - "ext-libxml": "*", - "ext-mbstring": "*", - "ext-simplexml": "*", - "ext-xml": "*", - "ext-xmlreader": "*", - "ext-xmlwriter": "*", - "ext-zip": "*", - "ext-zlib": "*", - "ezyang/htmlpurifier": "^4.15", - "maennchen/zipstream-php": "^2.1 || ^3.0", - "markbaker/complex": "^3.0", - "markbaker/matrix": "^3.0", - "php": "^7.4 || ^8.0", - "psr/http-client": "^1.0", - "psr/http-factory": "^1.0", - "psr/simple-cache": "^1.0 || ^2.0 || ^3.0" - }, - "require-dev": { - "dealerdirect/phpcodesniffer-composer-installer": "dev-main", - "dompdf/dompdf": "^1.0 || ^2.0", - "friendsofphp/php-cs-fixer": "^3.2", - "mitoteam/jpgraph": "^10.3", - "mpdf/mpdf": "^8.1.1", - "phpcompatibility/php-compatibility": "^9.3", - "phpstan/phpstan": "^1.1", - "phpstan/phpstan-phpunit": "^1.0", - "phpunit/phpunit": "^8.5 || ^9.0", - "squizlabs/php_codesniffer": "^3.7", - "tecnickcom/tcpdf": "^6.5" - }, - "suggest": { - "dompdf/dompdf": "Option for rendering PDF with PDF Writer", - "ext-intl": "PHP Internationalization Functions", - "mitoteam/jpgraph": "Option for rendering charts, or including charts with PDF or HTML Writers", - "mpdf/mpdf": "Option for rendering PDF with PDF Writer", - "tecnickcom/tcpdf": "Option for rendering PDF with PDF Writer" - }, - "type": "library", - "autoload": { - "psr-4": { - "PhpOffice\\PhpSpreadsheet\\": "src/PhpSpreadsheet" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Maarten Balliauw", - "homepage": "https://blog.maartenballiauw.be" - }, - { - "name": "Mark Baker", - "homepage": "https://markbakeruk.net" - }, - { - "name": "Franck Lefevre", - "homepage": "https://rootslabs.net" - }, - { - "name": "Erik Tilt" - }, - { - "name": "Adrien Crivelli" - } - ], - "description": "PHPSpreadsheet - Read, Create and Write Spreadsheet documents in PHP - Spreadsheet engine", - "homepage": "https://github.com/PHPOffice/PhpSpreadsheet", - "keywords": [ - "OpenXML", - "excel", - "gnumeric", - "ods", - "php", - "spreadsheet", - "xls", - "xlsx" - ], - "support": { - "issues": "https://github.com/PHPOffice/PhpSpreadsheet/issues", - "source": "https://github.com/PHPOffice/PhpSpreadsheet/tree/1.29.2" - }, - "time": "2024-09-29T07:04:47+00:00" - }, { "name": "phpunit/php-code-coverage", "version": "9.2.32", @@ -1478,217 +767,6 @@ ], "time": "2024-09-19T10:50:18+00:00" }, - { - "name": "psr/http-client", - "version": "1.0.3", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-client.git", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-client/zipball/bb5906edc1c324c9a05aa0873d40117941e5fa90", - "reference": "bb5906edc1c324c9a05aa0873d40117941e5fa90", - "shasum": "" - }, - "require": { - "php": "^7.0 || ^8.0", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Client\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP clients", - "homepage": "https://github.com/php-fig/http-client", - "keywords": [ - "http", - "http-client", - "psr", - "psr-18" - ], - "support": { - "source": "https://github.com/php-fig/http-client" - }, - "time": "2023-09-23T14:17:50+00:00" - }, - { - "name": "psr/http-factory", - "version": "1.1.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-factory.git", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a", - "shasum": "" - }, - "require": { - "php": ">=7.1", - "psr/http-message": "^1.0 || ^2.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "https://www.php-fig.org/" - } - ], - "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories", - "keywords": [ - "factory", - "http", - "message", - "psr", - "psr-17", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-factory" - }, - "time": "2024-04-15T12:06:14+00:00" - }, - { - "name": "psr/http-message", - "version": "1.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/http-message.git", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/http-message/zipball/cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "reference": "cb6ce4845ce34a8ad9e68117c10ee90a29919eba", - "shasum": "" - }, - "require": { - "php": "^7.2 || ^8.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.1.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\Http\\Message\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interface for HTTP messages", - "homepage": "https://github.com/php-fig/http-message", - "keywords": [ - "http", - "http-message", - "psr", - "psr-7", - "request", - "response" - ], - "support": { - "source": "https://github.com/php-fig/http-message/tree/1.1" - }, - "time": "2023-04-04T09:50:52+00:00" - }, - { - "name": "psr/simple-cache", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/simple-cache.git", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "reference": "408d5eafb83c57f6365a3ca330ff23aa4a5fa39b", - "shasum": "" - }, - "require": { - "php": ">=5.3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Psr\\SimpleCache\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } - ], - "description": "Common interfaces for simple caching", - "keywords": [ - "cache", - "caching", - "psr", - "psr-16", - "simple-cache" - ], - "support": { - "source": "https://github.com/php-fig/simple-cache/tree/master" - }, - "time": "2017-10-23T01:57:42+00:00" - }, { "name": "sebastian/cli-parser", "version": "1.0.2", @@ -2652,86 +1730,6 @@ ], "time": "2020-09-28T06:39:44+00:00" }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.31.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/85181ba99b2345b0ef10ce42ecac37612d9fd341", - "reference": "85181ba99b2345b0ef10ce42ecac37612d9fd341", - "shasum": "" - }, - "require": { - "php": ">=7.2" - }, - "provide": { - "ext-mbstring": "*" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "thanks": { - "name": "symfony/polyfill", - "url": "https://github.com/symfony/polyfill" - } - }, - "autoload": { - "files": [ - "bootstrap.php" - ], - "psr-4": { - "Symfony\\Polyfill\\Mbstring\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Nicolas Grekas", - "email": "p@tchwork.com" - }, - { - "name": "Symfony Community", - "homepage": "https://symfony.com/contributors" - } - ], - "description": "Symfony polyfill for the Mbstring extension", - "homepage": "https://symfony.com", - "keywords": [ - "compatibility", - "mbstring", - "polyfill", - "portable", - "shim" - ], - "support": { - "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.31.0" - }, - "funding": [ - { - "url": "https://symfony.com/sponsor", - "type": "custom" - }, - { - "url": "https://github.com/fabpot", - "type": "github" - }, - { - "url": "https://tidelift.com/funding/github/packagist/symfony/symfony", - "type": "tidelift" - } - ], - "time": "2024-09-09T11:45:10+00:00" - }, { "name": "theseer/tokenizer", "version": "1.2.3", @@ -2789,7 +1787,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^7.4" + "php": ">=7.4" }, "platform-dev": { "ext-posix": "*", @@ -2805,8 +1803,7 @@ "ext-oci8": "*", "ext-pdo": "*", "ext-pgsql": "*", - "ext-sqlite3": "*", - "ext-ldap": "*" + "ext-sqlite3": "*" }, "plugin-api-version": "2.2.0" } diff --git a/nur_bin/cachectl.php b/nur_bin/cachectl.php deleted file mode 100755 index e531e78..0000000 --- a/nur_bin/cachectl.php +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/php - parent::ARGS, - "purpose" => "gestion de fichiers cache", - ["-r", "--read", "name" => "action", "value" => self::ACTION_READ, - "help" => "Afficher le contenu d'un fichier cache", - ], - ["-i", "--infos", "name" => "action", "value" => self::ACTION_INFOS, - "help" => "Afficher des informations sur le fichier cache", - ], - ["-k", "--clean", "name" => "action", "value" => self::ACTION_CLEAN, - "help" => "Supprimer le fichier cache s'il a expiré", - ], - ["-a", "--add-duration", "args" => 1, - "action" => [null, "->setActionUpdate", self::ACTION_UPDATE_ADD], - "help" => "Ajouter le nombre de secondes spécifié à la durée du cache", - ], - ["-b", "--sub-duration", "args" => 1, - "action" => [null, "->setActionUpdate", self::ACTION_UPDATE_SUB], - "help" => "Enlever le nombre de secondes spécifié à la durée du cache", - ], - ["-s", "--set-duration", "args" => 1, - "action" => [null, "->setActionUpdate", self::ACTION_UPDATE_SET], - "help" => "Mettre à jour la durée du cache à la valeur spécifiée", - ], - ]; - - protected $action = self::ACTION_READ; - - protected $updateAction, $updateDuration; - - protected $args; - - function setActionUpdate(int $action, $updateDuration): void { - $this->action = self::ACTION_UPDATE; - switch ($action) { - case self::ACTION_UPDATE_SUB: $this->updateAction = -1; break; - case self::ACTION_UPDATE_SET: $this->updateAction = 0; break; - case self::ACTION_UPDATE_ADD: $this->updateAction = 1; break; - } - $this->updateDuration = $updateDuration; - } - - protected function findCaches(string $dir, ?array &$files): void { - foreach (glob("$dir/*") as $file) { - if (is_dir($file)) { - $this->findCaches($file, $files); - } elseif (is_file($file) && fnmatch("*.cache", $file)) { - $files[] = $file; - } - } - } - - function main() { - $files = []; - foreach ($this->args as $arg) { - if (is_dir($arg)) { - $this->findCaches($arg, $files); - } elseif (is_file($arg)) { - $files[] = $arg; - } else { - msg::warning("$arg: fichier invalide ou introuvable"); - } - } - $showSection = count($files) > 1; - foreach ($files as $file) { - switch ($this->action) { - case self::ACTION_READ: - if ($showSection) msg::section($file); - $cache = new CacheFile($file, [ - "duration" => "INF", - "override_duration" => true, - ]); - yaml::dump($cache->get()); - break; - case self::ACTION_INFOS: - if ($showSection) msg::section($file); - $cache = new CacheFile($file); - yaml::dump($cache->getInfos()); - break; - case self::ACTION_CLEAN: - msg::action(path::ppath($file)); - $cache = new CacheFile($file); - try { - if ($cache->deleteExpired()) msg::asuccess("fichier supprimé"); - else msg::astep("fichier non expiré"); - } catch (Exception $e) { - msg::afailure(null, $e); - } - break; - case self::ACTION_UPDATE: - msg::action(path::ppath($file)); - $cache = new CacheFile($file); - try { - $cache->updateDuration($this->updateDuration, $this->updateAction); - msg::asuccess("fichier mis à jour"); - } catch (Exception $e) { - msg::afailure(null, $e); - } - break; - default: - self::die("$this->action: action non implémentée"); - } - } - } -}); diff --git a/nur_bin/dumpser.php b/nur_bin/dumpser.php deleted file mode 100755 index 8d9de18..0000000 --- a/nur_bin/dumpser.php +++ /dev/null @@ -1,36 +0,0 @@ -#!/usr/bin/php - parent::ARGS, - "purpose" => "afficher des données sérialisées", - ]; - - protected $args; - - function main() { - $files = []; - foreach ($this->args as $arg) { - if (is_file($arg)) { - $files[] = $arg; - } else { - msg::warning("$arg: fichier invalide ou introuvable"); - } - } - $showSection = count($files) > 1; - foreach ($files as $file) { - if ($showSection) msg::section($file); - $sfile = new SharedFile($file); - yaml::dump($sfile->unserialize()); - } - } -}); diff --git a/nur_bin/mysql-storage.php b/nur_bin/mysql-storage.php deleted file mode 100755 index 9d1087b..0000000 --- a/nur_bin/mysql-storage.php +++ /dev/null @@ -1,127 +0,0 @@ -#!/usr/bin/php - parent::ARGS, - "purpose" => "gestion d'un capacitor mysql", - "usage" => [ - "-d DBCONN -c CHANNEL [--query] key=value...", - "-d DBCONN -c CHANNEL --sql-create", - ], - ["-d", "--dbconn", "args" => 1, - "help" => "nom de la connexion à la base de données", - ], - ["-t", "--table-name", "args" => 1, - "help" => "nom de la table porteuse du canal de données", - ], - ["-c", "--channel-class", "args" => 1, - "help" => "nom de la classe dérivée de CapacitorChannel", - ], - ["--query", "name" => "action", "value" => self::ACTION_QUERY, - "help" => "lister les lignes correspondant aux valeurs spécifiées. c'est l'action par défaut", - ], - ["-s", "--sql-create", "name" => "action", "value" => self::ACTION_SQL, - "help" => "afficher la requête pour créer la table", - ], - ]; - - protected ?string $dbconn = null; - - protected ?string $tableName = null; - - protected ?string $channelClass = null; - - protected int $action = self::ACTION_QUERY; - - protected ?array $args = null; - - protected static function isa_cond(string $arg, ?array &$ms=null): bool { - return preg_match('/^(.+?)\s*(=|<>|<|>|<=|>=|(?:is\s+)?null|(?:is\s+)?not\s+null)\s*(.*)$/', $arg, $ms); - } - - function main() { - $dbconn = $this->dbconn; - if ($dbconn === null) self::die("Vous devez spécifier la base de données"); - $tmp = config::db($dbconn); - if ($tmp === null) self::die("$dbconn: base de données invalide"); - $dbconn = $tmp; - - if ($this->channelClass !== null) { - $channelClass = str_replace("/", "\\", $this->channelClass); - $channel = new $channelClass; - } elseif ($this->tableName !== null) { - $channel = new class($this->tableName) extends CapacitorChannel { - function __construct(?string $name=null) { - parent::__construct($name); - $this->tableName = $name; - } - }; - } else { - self::die("Vous devez spécifier le canal de données"); - } - - $storage = new MysqlStorage($dbconn); - $capacitor = new Capacitor($storage, $channel); - - switch ($this->action) { - case self::ACTION_QUERY: - $args = $this->args; - if (!$args) { - # lister les id - $out = new Stream(STDOUT); - $primaryKeys = $storage->getPrimaryKeys($channel); - $rows = $storage->db()->all([ - "select", - "cols" => $primaryKeys, - "from" => $channel->getTableName(), - ]); - $out->fputcsv($primaryKeys); - foreach ($rows as $row) { - $rowIds = $storage->getRowIds($channel, $row); - $out->fputcsv($rowIds); - } - } else { - # afficher les lignes correspondantes - if (count($args) == 1 && !self::isa_cond($args[0])) { - $filter = $args[0]; - } else { - $filter = []; - $ms = null; - foreach ($args as $arg) { - if (self::isa_cond($arg, $ms)) { - $filter[$ms[1]] = [$ms[2], $ms[3]]; - } else { - $filter[$arg] = ["not null"]; - } - } - } - $first = true; - $capacitor->each($filter, function ($item, $row) use (&$first) { - if ($first) $first = false; - else echo "---\n"; - yaml::dump($row); - }); - } - break; - case self::ACTION_SQL: - echo $capacitor->getCreateSql()."\n"; - break; - } - } -}); diff --git a/nur_bin/sqlite-storage.php b/nur_bin/sqlite-storage.php deleted file mode 100755 index 316dca6..0000000 --- a/nur_bin/sqlite-storage.php +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/php - parent::ARGS, - "purpose" => "gestion d'un capacitor sqlite", - "usage" => [ - "-f DBFILE -n CHANNEL [--query] key=value...", - "-f DBFILE -n CHANNEL --sql-create", - ], - ["-f", "--dbfile", "args" => 1, - "help" => "chemin vers la base de données", - ], - ["-n", "--name", "args" => 1, - "help" => "nom du canal de données. table-name et channel-class sont chargés depuis la base de données", - ], - ["-t", "--table-name", "args" => 1, - "help" => "nom de la table porteuse du canal de données", - ], - ["-c", "--channel-class", "args" => 1, - "help" => "nom de la classe dérivée de CapacitorChannel", - ], - ["--query", "name" => "action", "value" => self::ACTION_QUERY, - "help" => "lister les lignes correspondant aux valeurs spécifiées. c'est l'action par défaut", - ], - ["-s", "--sql-create", "name" => "action", "value" => self::ACTION_SQL, - "help" => "afficher la requête pour créer la table", - ], - ]; - - protected ?string $dbfile = null; - - protected ?string $name = null; - - protected ?string $tableName = null; - - protected ?string $channelClass = null; - - protected int $action = self::ACTION_QUERY; - - protected ?array $args = null; - - protected static function isa_cond(string $arg, ?array &$ms=null): bool { - return preg_match('/^(.+?)\s*(=|<>|<|>|<=|>=|(?:is\s+)?null|(?:is\s+)?not\s+null)\s*(.*)$/', $arg, $ms); - } - - function main() { - $dbfile = $this->dbfile; - if ($dbfile === null) self::die("Vous devez spécifier la base de données"); - if (!file_exists($dbfile)) self::die("$dbfile: fichier introuvable"); - $storage = new SqliteStorage($dbfile); - $db = $storage->db(); - - $haveChannels = $storage->tableExists("_channels"); - - $name = $this->name; - $channelClass = $this->channelClass; - $tableName = $this->tableName; - if ($name !== null) { - $row = null; - if ($haveChannels) { - $row = $db->one([ - "select from _channels", - "where" => ["name" => $name], - ]); - } - if ($row === null) self::die("$name: nom de canal de données introuvable"); - if ($row["class"] !== "class@anonymous") $channelClass = $row["class"]; - else $tableName = $row["table_name"]; - } - if ($channelClass !== null) { - $channelClass = str_replace("/", "\\", $channelClass); - $channel = new $channelClass; - } elseif ($tableName !== null) { - $channel = new class($tableName) extends CapacitorChannel { - function __construct(?string $name=null) { - parent::__construct($name); - $this->tableName = $name; - } - }; - } else { - $found = false; - if ($haveChannels) { - $rows = $db->all([ - "select from _channels", - ]); - foreach ($rows as $row) { - msg::print($row["name"]); - $found = true; - } - } - if (!$found) self::die("Vous devez spécifier le canal de données"); - else self::exit(); - } - $capacitor = new Capacitor($storage, $channel); - - switch ($this->action) { - case self::ACTION_QUERY: - $args = $this->args; - if (!$args) { - # lister les id - $out = new Stream(STDOUT); - $primaryKeys = $storage->getPrimaryKeys($channel); - $rows = $db->all([ - "select", - "cols" => $primaryKeys, - "from" => $channel->getTableName(), - ]); - $out->fputcsv($primaryKeys); - foreach ($rows as $row) { - $rowIds = $storage->getRowIds($channel, $row); - $out->fputcsv($rowIds); - } - } else { - # afficher les lignes correspondantes - if (count($args) == 1 && !self::isa_cond($args[0])) { - $filter = $args[0]; - } else { - $filter = []; - $ms = null; - foreach ($args as $arg) { - if (self::isa_cond($arg, $ms)) { - $filter[$ms[1]] = [$ms[2], $ms[3]]; - } else { - $filter[$arg] = ["not null"]; - } - } - } - $first = true; - $capacitor->each($filter, function ($item, $row) use (&$first) { - if ($first) $first = false; - else echo "---\n"; - yaml::dump($row); - }); - } - break; - case self::ACTION_SQL: - echo $capacitor->getCreateSql()."\n"; - break; - } - } -}); diff --git a/nur_src/yaml.php b/nur_src/yaml.php deleted file mode 100644 index 889ca48..0000000 --- a/nur_src/yaml.php +++ /dev/null @@ -1,37 +0,0 @@ -write(self::with($data, $indent, $flags))->close(); - } -} diff --git a/src/ext/yaml.php b/src/ext/yaml.php deleted file mode 100644 index 0b63bdd..0000000 --- a/src/ext/yaml.php +++ /dev/null @@ -1,35 +0,0 @@ -getContents(); - try { - return cl::with(SymfonyYaml::parse($contents)); - } catch (ParseException $e) { - $message = "parse error"; - if (is_string($input)) $message .= " while loading $input"; - throw new IOException($message, 0, $e); - } - } - - static final function with($data, int $indent=2, int $flags=0): string { - return SymfonyYaml::dump($data, PHP_INT_MAX, $indent, $flags); - } - - static final function dump($data, $output=null, int $indent=2, int $flags=0): void { - file::writer($output)->putContents(self::with($data, $indent, $flags)); - } -}