diff --git a/.php_cs.dist b/.php_cs.dist index 88f7f8bb..23216924 100644 --- a/.php_cs.dist +++ b/.php_cs.dist @@ -56,7 +56,7 @@ return PhpCsFixer\Config::create() 'is_null' => ['use_yoda_style' => false], 'linebreak_after_opening_tag' => true, 'line_ending' => true, - 'list_syntax' => ['syntax' => 'long'], // Stay compatiblew with PHP 5.6 + 'list_syntax' => ['syntax' => 'short'], 'lowercase_cast' => true, 'lowercase_constants' => true, 'lowercase_keywords' => true, @@ -172,7 +172,7 @@ return PhpCsFixer\Config::create() 'switch_case_semicolon_to_colon' => true, 'switch_case_space' => true, 'ternary_operator_spaces' => true, - 'ternary_to_null_coalescing' => false, // Cannot use that with PHP 5.6 + 'ternary_to_null_coalescing' => true, 'trailing_comma_in_multiline_array' => true, 'trim_array_spaces' => true, 'unary_operator_spaces' => true, diff --git a/.travis.yml b/.travis.yml index 7c55d592..b9ad8de8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -2,16 +2,15 @@ language: php dist: trusty php: - - 5.6 - - 7.0 - 7.1 - 7.2 - 7.3 + - 7.4snapshot matrix: fast_finish: true allow_failures: - - php: 5.6 + - php: 7.4snapshot cache: directories: diff --git a/CHANGELOG.md b/CHANGELOG.md index 96574fe7..20819876 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,6 +21,7 @@ and this project adheres to [Semantic Versioning](https://semver.org). - Fix number format masks containing named colours that were being misinterpreted as date formats; and add support for masks that fully replace the value with a full text string [Issue #1009](https://github.com/PHPOffice/PhpSpreadsheet/issues/1009) - Stricter-typed comparison testing in COUNTIF() and COUNTIFS() evaluation [Issue #1046](https://github.com/PHPOffice/PhpSpreadsheet/issues/1046) - COUPNUM should not return zero when settlement is in the last period - [Issue #1020](https://github.com/PHPOffice/PhpSpreadsheet/issues/1020) and [PR #1021](https://github.com/PHPOffice/PhpSpreadsheet/pull/1021) +- Fix handling of named ranges referencing sheets with spaces or "!" in their title ## [1.8.2] - 2019-07-08 diff --git a/composer.json b/composer.json index 6f9fd9c3..3043f8fb 100644 --- a/composer.json +++ b/composer.json @@ -35,11 +35,11 @@ "php-cs-fixer fix --ansi" ], "versions": [ - "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 5.6- -n" + "phpcs --report-width=200 samples/ src/ tests/ --ignore=samples/Header.php --standard=PHPCompatibility --runtime-set testVersion 7.1- -n" ] }, "require": { - "php": "^5.6|^7.0", + "php": "^7.1", "ext-ctype": "*", "ext-dom": "*", "ext-gd": "*", @@ -59,14 +59,13 @@ }, "require-dev": { "tecnickcom/tcpdf": "^6.2", - "phpunit/phpunit": "^5.7", - "doctrine/instantiator": "^1.0.0", "dompdf/dompdf": "^0.8.0", "mpdf/mpdf": "^7.0.0", "jpgraph/jpgraph": "^4.0", "friendsofphp/php-cs-fixer": "@stable", "phpcompatibility/php-compatibility": "^8.0", - "squizlabs/php_codesniffer": "^3.3" + "squizlabs/php_codesniffer": "^3.3", + "phpunit/phpunit": "^7.5" }, "suggest": { "mpdf/mpdf": "Option for rendering PDF with PDF Writer", @@ -84,4 +83,4 @@ "PhpOffice\\PhpSpreadsheetTests\\": "tests/PhpSpreadsheetTests" } } -} \ No newline at end of file +} diff --git a/composer.lock b/composer.lock index a23c7f8d..6b1ba8ab 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "d70247696f417581626dde9641b53bdc", + "content-hash": "669a432d9ce5fef80535c0aae2e48b9b", "packages": [ { "name": "markbaker/complex", @@ -397,32 +397,34 @@ }, { "name": "doctrine/instantiator", - "version": "1.0.5", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" + "reference": "a2c590166b2133a4633738648b6b064edae0814a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", - "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/a2c590166b2133a4633738648b6b064edae0814a", + "reference": "a2c590166b2133a4633738648b6b064edae0814a", "shasum": "" }, "require": { - "php": ">=5.3,<8.0-DEV" + "php": "^7.1" }, "require-dev": { - "athletic/athletic": "~0.1.8", + "doctrine/coding-standard": "^6.0", "ext-pdo": "*", "ext-phar": "*", - "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "~2.0" + "phpbench/phpbench": "^0.13", + "phpstan/phpstan-phpunit": "^0.11", + "phpstan/phpstan-shim": "^0.11", + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -442,12 +444,12 @@ } ], "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors", - "homepage": "https://github.com/doctrine/instantiator", + "homepage": "https://www.doctrine-project.org/projects/instantiator.html", "keywords": [ "constructor", "instantiate" ], - "time": "2015-06-14T21:17:01+00:00" + "time": "2019-03-17T17:37:11+00:00" }, { "name": "doctrine/lexer", @@ -766,25 +768,28 @@ }, { "name": "myclabs/deep-copy", - "version": "1.7.0", + "version": "1.9.1", "source": { "type": "git", "url": "https://github.com/myclabs/DeepCopy.git", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e" + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", - "reference": "3b8a3a99ba1f6a3952ac2747d989303cbd6b7a3e", + "url": "https://api.github.com/repos/myclabs/DeepCopy/zipball/e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", + "reference": "e6828efaba2c9b79f4499dae1d66ef8bfa7b2b72", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" + }, + "replace": { + "myclabs/deep-copy": "self.version" }, "require-dev": { "doctrine/collections": "^1.0", "doctrine/common": "^2.6", - "phpunit/phpunit": "^4.1" + "phpunit/phpunit": "^7.1" }, "type": "library", "autoload": { @@ -807,7 +812,7 @@ "object", "object graph" ], - "time": "2017-10-19T19:58:43+00:00" + "time": "2019-04-07T13:18:21+00:00" }, { "name": "paragonie/random_compat", @@ -858,6 +863,108 @@ ], "time": "2018-07-04T16:31:37+00:00" }, + { + "name": "phar-io/manifest", + "version": "1.0.3", + "source": { + "type": "git", + "url": "https://github.com/phar-io/manifest.git", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/manifest/zipball/7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "reference": "7761fcacf03b4d4f16e7ccb606d4879ca431fcf4", + "shasum": "" + }, + "require": { + "ext-dom": "*", + "ext-phar": "*", + "phar-io/version": "^2.0", + "php": "^5.6 || ^7.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Component for reading phar.io manifest information from a PHP Archive (PHAR)", + "time": "2018-07-08T19:23:20+00:00" + }, + { + "name": "phar-io/version", + "version": "2.0.1", + "source": { + "type": "git", + "url": "https://github.com/phar-io/version.git", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/phar-io/version/zipball/45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "reference": "45a2ec53a73c70ce41d55cedef9063630abaf1b6", + "shasum": "" + }, + "require": { + "php": "^5.6 || ^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + }, + { + "name": "Sebastian Heuer", + "email": "sebastian@phpeople.de", + "role": "Developer" + }, + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de", + "role": "Developer" + } + ], + "description": "Library for handling version information and constraints", + "time": "2018-07-08T19:19:57+00:00" + }, { "name": "phenx/php-font-lib", "version": "0.5.1", @@ -1095,29 +1202,35 @@ }, { "name": "phpdocumentor/reflection-docblock", - "version": "3.3.2", + "version": "4.3.1", "source": { "type": "git", "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2" + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bf329f6c1aadea3299f08ee804682b7c45b326a2", - "reference": "bf329f6c1aadea3299f08ee804682b7c45b326a2", + "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", + "reference": "bdd9f737ebc2a01c06ea7ff4308ec6697db9b53c", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0", + "php": "^7.0", "phpdocumentor/reflection-common": "^1.0.0", "phpdocumentor/type-resolver": "^0.4.0", "webmozart/assert": "^1.0" }, "require-dev": { - "mockery/mockery": "^0.9.4", - "phpunit/phpunit": "^4.4" + "doctrine/instantiator": "~1.0.5", + "mockery/mockery": "^1.0", + "phpunit/phpunit": "^6.4" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.x-dev" + } + }, "autoload": { "psr-4": { "phpDocumentor\\Reflection\\": [ @@ -1136,7 +1249,7 @@ } ], "description": "With this component, a library can provide support for annotations via DocBlocks or otherwise retrieve information that is embedded in a DocBlock.", - "time": "2017-11-10T14:09:06+00:00" + "time": "2019-04-30T17:48:53+00:00" }, { "name": "phpdocumentor/type-resolver", @@ -1187,16 +1300,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.8.0", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06" + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4ba436b55987b4bf311cb7c6ba82aa528aac0a06", - "reference": "4ba436b55987b4bf311cb7c6ba82aa528aac0a06", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/1927e75f4ed19131ec9bcc3b002e07fb1173ee76", + "reference": "1927e75f4ed19131ec9bcc3b002e07fb1173ee76", "shasum": "" }, "require": { @@ -1217,8 +1330,8 @@ } }, "autoload": { - "psr-0": { - "Prophecy\\": "src/" + "psr-4": { + "Prophecy\\": "src/Prophecy" } }, "notification-url": "https://packagist.org/downloads/", @@ -1246,44 +1359,44 @@ "spy", "stub" ], - "time": "2018-08-05T17:53:17+00:00" + "time": "2019-06-13T12:50:23+00:00" }, { "name": "phpunit/php-code-coverage", - "version": "4.0.8", + "version": "6.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d" + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef7b2f56815df854e66ceaee8ebe9393ae36a40d", - "reference": "ef7b2f56815df854e66ceaee8ebe9393ae36a40d", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", + "reference": "807e6013b00af69b6c5d9ceb4282d0393dbb9d8d", "shasum": "" }, "require": { "ext-dom": "*", "ext-xmlwriter": "*", - "php": "^5.6 || ^7.0", - "phpunit/php-file-iterator": "^1.3", - "phpunit/php-text-template": "^1.2", - "phpunit/php-token-stream": "^1.4.2 || ^2.0", - "sebastian/code-unit-reverse-lookup": "^1.0", - "sebastian/environment": "^1.3.2 || ^2.0", - "sebastian/version": "^1.0 || ^2.0" + "php": "^7.1", + "phpunit/php-file-iterator": "^2.0", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-token-stream": "^3.0", + "sebastian/code-unit-reverse-lookup": "^1.0.1", + "sebastian/environment": "^3.1 || ^4.0", + "sebastian/version": "^2.0.1", + "theseer/tokenizer": "^1.1" }, "require-dev": { - "ext-xdebug": "^2.1.4", - "phpunit/phpunit": "^5.7" + "phpunit/phpunit": "^7.0" }, "suggest": { - "ext-xdebug": "^2.5.1" + "ext-xdebug": "^2.6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "4.0.x-dev" + "dev-master": "6.1-dev" } }, "autoload": { @@ -1298,8 +1411,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.", @@ -1309,29 +1422,32 @@ "testing", "xunit" ], - "time": "2017-04-02T07:44:40+00:00" + "time": "2018-10-31T16:06:48+00:00" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.5", + "version": "2.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4" + "reference": "050bedf145a257b1ff02746c31894800e5122946" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/730b01bc3e867237eaac355e06a36b85dd93a8b4", - "reference": "730b01bc3e867237eaac355e06a36b85dd93a8b4", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/050bedf145a257b1ff02746c31894800e5122946", + "reference": "050bedf145a257b1ff02746c31894800e5122946", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.1" + }, + "require-dev": { + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "2.0.x-dev" } }, "autoload": { @@ -1346,7 +1462,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -1356,7 +1472,7 @@ "filesystem", "iterator" ], - "time": "2017-11-27T13:52:08+00:00" + "time": "2018-09-13T20:33:42+00:00" }, { "name": "phpunit/php-text-template", @@ -1401,28 +1517,28 @@ }, { "name": "phpunit/php-timer", - "version": "1.0.9", + "version": "2.1.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f" + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", - "reference": "3dcf38ca72b158baf0bc245e9184d3fdffa9c46f", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/1038454804406b0b5f5f520358e78c1c2f71501e", + "reference": "1038454804406b0b5f5f520358e78c1c2f71501e", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -1437,7 +1553,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -1446,33 +1562,33 @@ "keywords": [ "timer" ], - "time": "2017-02-26T11:10:40+00:00" + "time": "2019-06-07T04:22:29+00:00" }, { "name": "phpunit/php-token-stream", - "version": "1.4.12", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16" + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/1ce90ba27c42e4e44e6d8458241466380b51fa16", - "reference": "1ce90ba27c42e4e44e6d8458241466380b51fa16", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/e899757bb3df5ff6e95089132f32cd59aac2220a", + "reference": "e899757bb3df5ff6e95089132f32cd59aac2220a", "shasum": "" }, "require": { "ext-tokenizer": "*", - "php": ">=5.3.3" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^7.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.1-dev" } }, "autoload": { @@ -1495,55 +1611,57 @@ "keywords": [ "tokenizer" ], - "time": "2017-12-04T08:55:13+00:00" + "time": "2019-07-25T05:29:42+00:00" }, { "name": "phpunit/phpunit", - "version": "5.7.27", + "version": "7.5.14", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c" + "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", - "reference": "b7803aeca3ccb99ad0a506fa80b64cd6a56bbc0c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/2834789aeb9ac182ad69bfdf9ae91856a59945ff", + "reference": "2834789aeb9ac182ad69bfdf9ae91856a59945ff", "shasum": "" }, "require": { + "doctrine/instantiator": "^1.1", "ext-dom": "*", "ext-json": "*", "ext-libxml": "*", "ext-mbstring": "*", "ext-xml": "*", - "myclabs/deep-copy": "~1.3", - "php": "^5.6 || ^7.0", - "phpspec/prophecy": "^1.6.2", - "phpunit/php-code-coverage": "^4.0.4", - "phpunit/php-file-iterator": "~1.4", - "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "^1.0.6", - "phpunit/phpunit-mock-objects": "^3.2", - "sebastian/comparator": "^1.2.4", - "sebastian/diff": "^1.4.3", - "sebastian/environment": "^1.3.4 || ^2.0", - "sebastian/exporter": "~2.0", - "sebastian/global-state": "^1.1", - "sebastian/object-enumerator": "~2.0", - "sebastian/resource-operations": "~1.0", - "sebastian/version": "^1.0.6|^2.0.1", - "symfony/yaml": "~2.1|~3.0|~4.0" + "myclabs/deep-copy": "^1.7", + "phar-io/manifest": "^1.0.2", + "phar-io/version": "^2.0", + "php": "^7.1", + "phpspec/prophecy": "^1.7", + "phpunit/php-code-coverage": "^6.0.7", + "phpunit/php-file-iterator": "^2.0.1", + "phpunit/php-text-template": "^1.2.1", + "phpunit/php-timer": "^2.1", + "sebastian/comparator": "^3.0", + "sebastian/diff": "^3.0", + "sebastian/environment": "^4.0", + "sebastian/exporter": "^3.1", + "sebastian/global-state": "^2.0", + "sebastian/object-enumerator": "^3.0.3", + "sebastian/resource-operations": "^2.0", + "sebastian/version": "^2.0.1" }, "conflict": { - "phpdocumentor/reflection-docblock": "3.0.2" + "phpunit/phpunit-mock-objects": "*" }, "require-dev": { "ext-pdo": "*" }, "suggest": { + "ext-soap": "*", "ext-xdebug": "*", - "phpunit/php-invoker": "~1.1" + "phpunit/php-invoker": "^2.0" }, "bin": [ "phpunit" @@ -1551,7 +1669,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "5.7.x-dev" + "dev-master": "7.5-dev" } }, "autoload": { @@ -1566,8 +1684,8 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "role": "lead", + "email": "sebastian@phpunit.de" } ], "description": "The PHP Unit Testing framework.", @@ -1577,66 +1695,7 @@ "testing", "xunit" ], - "time": "2018-02-01T05:50:59+00:00" - }, - { - "name": "phpunit/phpunit-mock-objects", - "version": "3.4.4", - "source": { - "type": "git", - "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", - "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", - "shasum": "" - }, - "require": { - "doctrine/instantiator": "^1.0.2", - "php": "^5.6 || ^7.0", - "phpunit/php-text-template": "^1.2", - "sebastian/exporter": "^1.2 || ^2.0" - }, - "conflict": { - "phpunit/phpunit": "<5.4.0" - }, - "require-dev": { - "phpunit/phpunit": "^5.4" - }, - "suggest": { - "ext-soap": "*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.2.x-dev" - } - }, - "autoload": { - "classmap": [ - "src/" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", - "role": "lead" - } - ], - "description": "Mock Object library for PHPUnit", - "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/", - "keywords": [ - "mock", - "xunit" - ], - "time": "2017-06-30T09:13:00+00:00" + "time": "2019-07-15T06:24:08+00:00" }, { "name": "psr/log", @@ -1776,30 +1835,30 @@ }, { "name": "sebastian/comparator", - "version": "1.2.4", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be" + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", - "reference": "2b7424b55f5047b47ac6e5ccb20b2aea4011d9be", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/5de4fc177adf9bce8df98d8d141a7559d7ccf6da", + "reference": "5de4fc177adf9bce8df98d8d141a7559d7ccf6da", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/diff": "~1.2", - "sebastian/exporter": "~1.2 || ~2.0" + "php": "^7.1", + "sebastian/diff": "^3.0", + "sebastian/exporter": "^3.1" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1830,38 +1889,39 @@ } ], "description": "Provides the functionality to compare PHP values for equality", - "homepage": "http://www.github.com/sebastianbergmann/comparator", + "homepage": "https://github.com/sebastianbergmann/comparator", "keywords": [ "comparator", "compare", "equality" ], - "time": "2017-01-29T09:50:25+00:00" + "time": "2018-07-12T15:12:46+00:00" }, { "name": "sebastian/diff", - "version": "1.4.3", + "version": "3.0.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4" + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/7f066a26a962dbe58ddea9f72a4e82874a3975a4", - "reference": "7f066a26a962dbe58ddea9f72a4e82874a3975a4", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/720fcc7e9b5cf384ea68d9d930d480907a0c1a29", + "reference": "720fcc7e9b5cf384ea68d9d930d480907a0c1a29", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^4.8.35 || ^5.7 || ^6.0" + "phpunit/phpunit": "^7.5 || ^8.0", + "symfony/process": "^2 || ^3.3 || ^4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "3.0-dev" } }, "autoload": { @@ -1886,34 +1946,40 @@ "description": "Diff implementation", "homepage": "https://github.com/sebastianbergmann/diff", "keywords": [ - "diff" + "diff", + "udiff", + "unidiff", + "unified diff" ], - "time": "2017-05-22T07:24:03+00:00" + "time": "2019-02-04T06:01:07+00:00" }, { "name": "sebastian/environment", - "version": "2.0.0", + "version": "4.2.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac" + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5795ffe5dc5b02460c3e34222fee8cbe245d8fac", - "reference": "5795ffe5dc5b02460c3e34222fee8cbe245d8fac", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/f2a2c8e1c97c11ace607a7a667d73d47c19fe404", + "reference": "f2a2c8e1c97c11ace607a7a667d73d47c19fe404", "shasum": "" }, "require": { - "php": "^5.6 || ^7.0" + "php": "^7.1" }, "require-dev": { - "phpunit/phpunit": "^5.0" + "phpunit/phpunit": "^7.5" + }, + "suggest": { + "ext-posix": "*" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "4.2-dev" } }, "autoload": { @@ -1938,34 +2004,34 @@ "environment", "hhvm" ], - "time": "2016-11-26T07:53:53+00:00" + "time": "2019-05-05T09:05:15+00:00" }, { "name": "sebastian/exporter", - "version": "2.0.0", + "version": "3.1.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4" + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", - "reference": "ce474bdd1a34744d7ac5d6aad3a46d48d9bac4c4", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/234199f4528de6d12aaa58b612e98f7d36adb937", + "reference": "234199f4528de6d12aaa58b612e98f7d36adb937", "shasum": "" }, "require": { - "php": ">=5.3.3", - "sebastian/recursion-context": "~2.0" + "php": "^7.0", + "sebastian/recursion-context": "^3.0" }, "require-dev": { "ext-mbstring": "*", - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.1.x-dev" } }, "autoload": { @@ -2005,27 +2071,27 @@ "export", "exporter" ], - "time": "2016-11-19T08:54:04+00:00" + "time": "2017-04-03T13:19:02+00:00" }, { "name": "sebastian/global-state", - "version": "1.1.1", + "version": "2.0.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/global-state.git", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4" + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/bc37d50fea7d017d3d340f230811c9f1d7280af4", - "reference": "bc37d50fea7d017d3d340f230811c9f1d7280af4", + "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", + "reference": "e8ba02eed7bbbb9e59e43dedd3dddeff4a56b0c4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.2" + "phpunit/phpunit": "^6.0" }, "suggest": { "ext-uopz": "*" @@ -2033,7 +2099,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -2056,33 +2122,34 @@ "keywords": [ "global state" ], - "time": "2015-10-12T03:26:01+00:00" + "time": "2017-04-27T15:39:26+00:00" }, { "name": "sebastian/object-enumerator", - "version": "2.0.1", + "version": "3.0.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/object-enumerator.git", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7" + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/1311872ac850040a79c3c058bea3e22d0f09cbb7", - "reference": "1311872ac850040a79c3c058bea3e22d0f09cbb7", + "url": "https://api.github.com/repos/sebastianbergmann/object-enumerator/zipball/7cfd9e65d11ffb5af41198476395774d4c8a84c5", + "reference": "7cfd9e65d11ffb5af41198476395774d4c8a84c5", "shasum": "" }, "require": { - "php": ">=5.6", - "sebastian/recursion-context": "~2.0" + "php": "^7.0", + "sebastian/object-reflector": "^1.1.1", + "sebastian/recursion-context": "^3.0" }, "require-dev": { - "phpunit/phpunit": "~5" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -2102,32 +2169,77 @@ ], "description": "Traverses array structures and object graphs to enumerate all referenced objects", "homepage": "https://github.com/sebastianbergmann/object-enumerator/", - "time": "2017-02-18T15:18:39+00:00" + "time": "2017-08-03T12:35:26+00:00" }, { - "name": "sebastian/recursion-context", - "version": "2.0.0", + "name": "sebastian/object-reflector", + "version": "1.1.1", "source": { "type": "git", - "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a" + "url": "https://github.com/sebastianbergmann/object-reflector.git", + "reference": "773f97c67f28de00d397be301821b06708fca0be" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/2c3ba150cbec723aa057506e73a8d33bdb286c9a", - "reference": "2c3ba150cbec723aa057506e73a8d33bdb286c9a", + "url": "https://api.github.com/repos/sebastianbergmann/object-reflector/zipball/773f97c67f28de00d397be301821b06708fca0be", + "reference": "773f97c67f28de00d397be301821b06708fca0be", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": "^7.0" }, "require-dev": { - "phpunit/phpunit": "~4.4" + "phpunit/phpunit": "^6.0" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "1.1-dev" + } + }, + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Sebastian Bergmann", + "email": "sebastian@phpunit.de" + } + ], + "description": "Allows reflection of object attributes, including inherited and non-public ones", + "homepage": "https://github.com/sebastianbergmann/object-reflector/", + "time": "2017-03-29T09:07:27+00:00" + }, + { + "name": "sebastian/recursion-context", + "version": "3.0.0", + "source": { + "type": "git", + "url": "https://github.com/sebastianbergmann/recursion-context.git", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "reference": "5b0cd723502bac3b006cbf3dbf7a1e3fcefe4fa8", + "shasum": "" + }, + "require": { + "php": "^7.0" + }, + "require-dev": { + "phpunit/phpunit": "^6.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0.x-dev" } }, "autoload": { @@ -2155,29 +2267,29 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2016-11-19T07:33:16+00:00" + "time": "2017-03-03T06:23:57+00:00" }, { "name": "sebastian/resource-operations", - "version": "1.0.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/resource-operations.git", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52" + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", - "reference": "ce990bb21759f94aeafd30209e8cfcdfa8bc3f52", + "url": "https://api.github.com/repos/sebastianbergmann/resource-operations/zipball/4d7a795d35b889bf80a0cc04e08d77cedfa917a9", + "reference": "4d7a795d35b889bf80a0cc04e08d77cedfa917a9", "shasum": "" }, "require": { - "php": ">=5.6.0" + "php": "^7.1" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -2197,7 +2309,7 @@ ], "description": "Provides a list of PHP built-in functions that operate on resources", "homepage": "https://www.github.com/sebastianbergmann/resource-operations", - "time": "2015-07-28T20:34:47+00:00" + "time": "2018-10-04T04:07:39+00:00" }, { "name": "sebastian/version", @@ -2685,16 +2797,16 @@ }, { "name": "symfony/polyfill-ctype", - "version": "v1.10.0", + "version": "v1.11.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-ctype.git", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19" + "reference": "82ebae02209c21113908c229e9883c419720738a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/e3d826245268269cd66f8326bd8bc066687b4a19", - "reference": "e3d826245268269cd66f8326bd8bc066687b4a19", + "url": "https://api.github.com/repos/symfony/polyfill-ctype/zipball/82ebae02209c21113908c229e9883c419720738a", + "reference": "82ebae02209c21113908c229e9883c419720738a", "shasum": "" }, "require": { @@ -2706,7 +2818,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.9-dev" + "dev-master": "1.11-dev" } }, "autoload": { @@ -2739,7 +2851,7 @@ "polyfill", "portable" ], - "time": "2018-08-06T14:22:27+00:00" + "time": "2019-02-06T07:57:58+00:00" }, { "name": "symfony/polyfill-mbstring", @@ -3012,65 +3124,6 @@ "homepage": "https://symfony.com", "time": "2018-10-02T12:28:39+00:00" }, - { - "name": "symfony/yaml", - "version": "v3.4.18", - "source": { - "type": "git", - "url": "https://github.com/symfony/yaml.git", - "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/640b6c27fed4066d64b64d5903a86043f4a4de7f", - "reference": "640b6c27fed4066d64b64d5903a86043f4a4de7f", - "shasum": "" - }, - "require": { - "php": "^5.5.9|>=7.0.8", - "symfony/polyfill-ctype": "~1.8" - }, - "conflict": { - "symfony/console": "<3.4" - }, - "require-dev": { - "symfony/console": "~3.4|~4.0" - }, - "suggest": { - "symfony/console": "For validating YAML files using the lint command" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.4-dev" - } - }, - "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": "Symfony Yaml Component", - "homepage": "https://symfony.com", - "time": "2018-10-02T16:33:53+00:00" - }, { "name": "tecnickcom/tcpdf", "version": "6.2.26", @@ -3134,21 +3187,62 @@ "time": "2018-10-16T17:24:05+00:00" }, { - "name": "webmozart/assert", - "version": "1.3.0", + "name": "theseer/tokenizer", + "version": "1.1.3", "source": { "type": "git", - "url": "https://github.com/webmozart/assert.git", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a" + "url": "https://github.com/theseer/tokenizer.git", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/webmozart/assert/zipball/0df1908962e7a3071564e857d86874dad1ef204a", - "reference": "0df1908962e7a3071564e857d86874dad1ef204a", + "url": "https://api.github.com/repos/theseer/tokenizer/zipball/11336f6f84e16a720dae9d8e6ed5019efa85a0f9", + "reference": "11336f6f84e16a720dae9d8e6ed5019efa85a0f9", "shasum": "" }, "require": { - "php": "^5.3.3 || ^7.0" + "ext-dom": "*", + "ext-tokenizer": "*", + "ext-xmlwriter": "*", + "php": "^7.0" + }, + "type": "library", + "autoload": { + "classmap": [ + "src/" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD-3-Clause" + ], + "authors": [ + { + "name": "Arne Blankerts", + "email": "arne@blankerts.de", + "role": "Developer" + } + ], + "description": "A small library for converting tokenized PHP source code into XML and potentially other formats", + "time": "2019-06-13T22:48:21+00:00" + }, + { + "name": "webmozart/assert", + "version": "1.4.0", + "source": { + "type": "git", + "url": "https://github.com/webmozart/assert.git", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/webmozart/assert/zipball/83e253c8e0be5b0257b881e1827274667c5c17a9", + "reference": "83e253c8e0be5b0257b881e1827274667c5c17a9", + "shasum": "" + }, + "require": { + "php": "^5.3.3 || ^7.0", + "symfony/polyfill-ctype": "^1.8" }, "require-dev": { "phpunit/phpunit": "^4.6", @@ -3181,7 +3275,7 @@ "check", "validate" ], - "time": "2018-01-29T19:49:41+00:00" + "time": "2018-12-25T11:19:39+00:00" } ], "aliases": [], @@ -3192,7 +3286,7 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": "^5.6|^7.0", + "php": "^7.1", "ext-ctype": "*", "ext-dom": "*", "ext-gd": "*", @@ -3208,4 +3302,4 @@ "ext-zlib": "*" }, "platform-dev": [] -} \ No newline at end of file +} diff --git a/docs/assets/ClassDiagrams/Architecture.cd b/docs/assets/ClassDiagrams/Architecture.cd deleted file mode 100644 index f36715fc..00000000 --- a/docs/assets/ClassDiagrams/Architecture.cd +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - Classes\PHPExcel.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAAAAAAAAAAAA= - - - - - - - - - Classes\Worksheet.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Classes\IReader.cs - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - - - - - - - - - Classes\IWriter.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - - - - - - - - - - - \ No newline at end of file diff --git a/docs/assets/ClassDiagrams/Architecture.png b/docs/assets/ClassDiagrams/Architecture.png deleted file mode 100644 index 3fc7655a..00000000 Binary files a/docs/assets/ClassDiagrams/Architecture.png and /dev/null differ diff --git a/docs/assets/ClassDiagrams/ClassDiagrams.csproj b/docs/assets/ClassDiagrams/ClassDiagrams.csproj deleted file mode 100644 index cae9d4ec..00000000 --- a/docs/assets/ClassDiagrams/ClassDiagrams.csproj +++ /dev/null @@ -1,64 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31} - Exe - Properties - ClassDiagrams - ClassDiagrams - - - 2.0 - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/docs/assets/ClassDiagrams/ClassDiagrams.csproj.user b/docs/assets/ClassDiagrams/ClassDiagrams.csproj.user deleted file mode 100644 index 5c2d6e6a..00000000 --- a/docs/assets/ClassDiagrams/ClassDiagrams.csproj.user +++ /dev/null @@ -1,5 +0,0 @@ - - - ShowAllFiles - - \ No newline at end of file diff --git a/docs/assets/ClassDiagrams/ClassDiagrams.sln b/docs/assets/ClassDiagrams/ClassDiagrams.sln deleted file mode 100644 index b565408f..00000000 --- a/docs/assets/ClassDiagrams/ClassDiagrams.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassDiagrams", "ClassDiagrams.csproj", "{CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Debug|Any CPU.Build.0 = Debug|Any CPU - {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Release|Any CPU.ActiveCfg = Release|Any CPU - {CC8CD7D2-8EFF-48E5-A17A-C1C482744D31}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/docs/assets/ClassDiagrams/Classes/IReader.cs b/docs/assets/ClassDiagrams/Classes/IReader.cs deleted file mode 100644 index 33cb05a8..00000000 --- a/docs/assets/ClassDiagrams/Classes/IReader.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public interface PHPExcel_Reader_IReader - { - PHPExcel reads - { - get; - set; - } - } -} diff --git a/docs/assets/ClassDiagrams/Classes/IWriter.cs b/docs/assets/ClassDiagrams/Classes/IWriter.cs deleted file mode 100644 index 6783f3a6..00000000 --- a/docs/assets/ClassDiagrams/Classes/IWriter.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public interface PHPExcel_Writer_IWriter - { - PHPExcel writes - { - get; - set; - } - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel.cs deleted file mode 100644 index 825139b9..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel - { - /// - public Worksheet Worksheets - { - get - { - throw new System.NotImplementedException(); - } - set - { - } - } - } - - public class PHPExcel_Writer_PDF : PHPExcel_Writer_IWriter - { - #region PHPExcel_Writer_IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_IOFactory.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_IOFactory.cs deleted file mode 100644 index 695a455a..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_IOFactory.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_IOFactory - { - public PHPExcel_Reader_IReader createsReader - { - get - { - throw new System.NotImplementedException(); - } - set - { - } - } - - public PHPExcel_Writer_IWriter createsWriter - { - get - { - throw new System.NotImplementedException(); - } - set - { - } - } - - public PHPExcel_Writer_IWriter createWriter() - { - throw new System.NotImplementedException(); - } - - public PHPExcel_Reader_IReader createReader() - { - throw new System.NotImplementedException(); - } - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel2007.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel2007.cs deleted file mode 100644 index fc38fac3..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel2007.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_Reader_Excel2007 : PHPExcel_Reader_IReader - { - #region IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel5.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel5.cs deleted file mode 100644 index 673df56c..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Excel5.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_Reader_Excel5 : PHPExcel_Reader_IReader - { - #region PHPExcel_Writer_IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Reader_Excel2003XML : PHPExcel_Reader_IReader - { - #region PHPExcel_Writer_IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Reader_SYLK : PHPExcel_Reader_IReader - { - #region PHPExcel_Writer_IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Serialized.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Serialized.cs deleted file mode 100644 index 3718dd21..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_Reader_Serialized.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_Reader_Serialized : PHPExcel_Reader_IReader - { - #region IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Reader_CSV : PHPExcel_Reader_IReader - { - #region IReader Members - - public PHPExcel reads - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Excel2007.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Excel2007.cs deleted file mode 100644 index 5f4b5658..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Excel2007.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_Writer_Excel2007 : PHPExcel_Writer_IWriter - { - #region IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Serialized.cs b/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Serialized.cs deleted file mode 100644 index 58f4bbe7..00000000 --- a/docs/assets/ClassDiagrams/Classes/PHPExcel_Writer_Serialized.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class PHPExcel_Writer_Serialized : PHPExcel_Writer_IWriter - { - #region IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Writer_CSV : PHPExcel_Writer_IWriter - { - #region IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Writer_Excel5 : PHPExcel_Writer_IWriter - { - #region IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } - - public class PHPExcel_Writer_HTML : PHPExcel_Writer_IWriter - { - #region IWriter Members - - public PHPExcel writes - { - get - { - throw new Exception("The method or operation is not implemented."); - } - set - { - throw new Exception("The method or operation is not implemented."); - } - } - - #endregion - } -} diff --git a/docs/assets/ClassDiagrams/Classes/Worksheet.cs b/docs/assets/ClassDiagrams/Classes/Worksheet.cs deleted file mode 100644 index aa977b86..00000000 --- a/docs/assets/ClassDiagrams/Classes/Worksheet.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace ClassDiagrams -{ - public class Worksheet - { - } - - public class CopyOfWorksheet - { - } -} diff --git a/docs/assets/ClassDiagrams/Exports/Architecture.png b/docs/assets/ClassDiagrams/Exports/Architecture.png deleted file mode 100644 index 13248180..00000000 Binary files a/docs/assets/ClassDiagrams/Exports/Architecture.png and /dev/null differ diff --git a/docs/assets/ClassDiagrams/Exports/ReaderWriter.png b/docs/assets/ClassDiagrams/Exports/ReaderWriter.png deleted file mode 100644 index b915faa7..00000000 Binary files a/docs/assets/ClassDiagrams/Exports/ReaderWriter.png and /dev/null differ diff --git a/docs/assets/ClassDiagrams/ReaderWriter.cd b/docs/assets/ClassDiagrams/ReaderWriter.cd deleted file mode 100644 index 7764e092..00000000 --- a/docs/assets/ClassDiagrams/ReaderWriter.cd +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Excel2007.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel_Writer_Excel2007.cs - - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel_Writer_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel_Writer_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel_Writer_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel_Writer_Serialized.cs - - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Excel5.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\PHPExcel.cs - - - - - - - - - - - - - - - - - AIAAAAAAAAEAAAAAAQAAAAAAAAAAAAAAAAABAAAAAAA= - Classes\PHPExcel_IOFactory.cs - - - - - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Excel5.cs - - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\PHPExcel_Reader_Excel5.cs - - - - - - - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAA= - Classes\IWriter.cs - - - - - - AAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAA= - Classes\IReader.cs - - - - \ No newline at end of file diff --git a/docs/assets/ClassDiagrams/ReaderWriter.png b/docs/assets/ClassDiagrams/ReaderWriter.png deleted file mode 100644 index d76c98d9..00000000 Binary files a/docs/assets/ClassDiagrams/ReaderWriter.png and /dev/null differ diff --git a/docs/index.md b/docs/index.md index be4e0fd0..7c276792 100644 --- a/docs/index.md +++ b/docs/index.md @@ -25,12 +25,9 @@ spreadsheet file formats, like Excel and LibreOffice Calc. ## Software requirements -The following software is required to develop using PhpSpreadsheet: - -- PHP version 5.6 or newer -- PHP extension php\_zip enabled -- PHP extension php\_xml enabled -- PHP extension php\_gd2 enabled (if not compiled in) +PHP version 7.1 or newer to develop using PhpSpreadsheet. Other requirements, such as PHP extensions, are enforced by +composer. See the `require` section of [the composer.json file](https://github.com/PHPOffice/PhpSpreadsheet/blob/master/composer.json) +for details. ### PHP version support diff --git a/phpunit.xml.dist b/phpunit.xml.dist index 6880d23e..be3643d8 100644 --- a/phpunit.xml.dist +++ b/phpunit.xml.dist @@ -1,9 +1,10 @@ - + diff --git a/samples/index.php b/samples/index.php index ec100cf4..598caef4 100644 --- a/samples/index.php +++ b/samples/index.php @@ -3,7 +3,7 @@ require_once 'Header.php'; $requirements = [ - 'PHP 5.6.0' => version_compare(PHP_VERSION, '5.6.0', '>='), + 'PHP 7.1.0' => version_compare(PHP_VERSION, '7.1.0', '>='), 'PHP extension XML' => extension_loaded('xml'), 'PHP extension xmlwriter' => extension_loaded('xmlwriter'), 'PHP extension mbstring' => extension_loaded('mbstring'), diff --git a/src/PhpSpreadsheet/Calculation/Calculation.php b/src/PhpSpreadsheet/Calculation/Calculation.php index f6385acd..325d132b 100644 --- a/src/PhpSpreadsheet/Calculation/Calculation.php +++ b/src/PhpSpreadsheet/Calculation/Calculation.php @@ -2416,7 +2416,7 @@ class Calculation // Identify our locale and language $language = $locale = strtolower($locale); if (strpos($locale, '_') !== false) { - list($language) = explode('_', $locale); + [$language] = explode('_', $locale); } if (count(self::$validLocaleLanguages) == 1) { self::loadLocales(); @@ -2441,9 +2441,9 @@ class Calculation // Retrieve the list of locale or language specific function names $localeFunctions = file($functionNamesFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($localeFunctions as $localeFunction) { - list($localeFunction) = explode('##', $localeFunction); // Strip out comments + [$localeFunction] = explode('##', $localeFunction); // Strip out comments if (strpos($localeFunction, '=') !== false) { - list($fName, $lfName) = explode('=', $localeFunction); + [$fName, $lfName] = explode('=', $localeFunction); $fName = trim($fName); $lfName = trim($lfName); if ((isset(self::$phpSpreadsheetFunctions[$fName])) && ($lfName != '') && ($fName != $lfName)) { @@ -2466,9 +2466,9 @@ class Calculation if (file_exists($configFile)) { $localeSettings = file($configFile, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); foreach ($localeSettings as $localeSetting) { - list($localeSetting) = explode('##', $localeSetting); // Strip out comments + [$localeSetting] = explode('##', $localeSetting); // Strip out comments if (strpos($localeSetting, '=') !== false) { - list($settingName, $settingValue) = explode('=', $localeSetting); + [$settingName, $settingValue] = explode('=', $localeSetting); $settingName = strtoupper(trim($settingName)); switch ($settingName) { case 'ARGUMENTSEPARATOR': @@ -2977,17 +2977,17 @@ class Calculation // Examine each of the two operands, and turn them into an array if they aren't one already // Note that this function should only be called if one or both of the operand is already an array if (!is_array($operand1)) { - list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand2); + [$matrixRows, $matrixColumns] = self::getMatrixDimensions($operand2); $operand1 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand1)); $resize = 0; } elseif (!is_array($operand2)) { - list($matrixRows, $matrixColumns) = self::getMatrixDimensions($operand1); + [$matrixRows, $matrixColumns] = self::getMatrixDimensions($operand1); $operand2 = array_fill(0, $matrixRows, array_fill(0, $matrixColumns, $operand2)); $resize = 0; } - list($matrix1Rows, $matrix1Columns) = self::getMatrixDimensions($operand1); - list($matrix2Rows, $matrix2Columns) = self::getMatrixDimensions($operand2); + [$matrix1Rows, $matrix1Columns] = self::getMatrixDimensions($operand1); + [$matrix2Rows, $matrix2Columns] = self::getMatrixDimensions($operand2); if (($matrix1Rows == $matrix2Columns) && ($matrix2Rows == $matrix1Columns)) { $resize = 1; } @@ -3496,11 +3496,11 @@ class Calculation $testPrevOp = $stack->last(1); if ($testPrevOp['value'] == ':') { $startRowColRef = $output[count($output) - 1]['value']; - list($rangeWS1, $startRowColRef) = Worksheet::extractSheetTitle($startRowColRef, true); + [$rangeWS1, $startRowColRef] = Worksheet::extractSheetTitle($startRowColRef, true); if ($rangeWS1 != '') { $rangeWS1 .= '!'; } - list($rangeWS2, $val) = Worksheet::extractSheetTitle($val, true); + [$rangeWS2, $val] = Worksheet::extractSheetTitle($val, true); if ($rangeWS2 != '') { $rangeWS2 .= '!'; } else { @@ -3678,12 +3678,12 @@ class Calculation // Binary Operators case ':': // Range if (strpos($operand1Data['reference'], '!') !== false) { - list($sheet1, $operand1Data['reference']) = Worksheet::extractSheetTitle($operand1Data['reference'], true); + [$sheet1, $operand1Data['reference']] = Worksheet::extractSheetTitle($operand1Data['reference'], true); } else { $sheet1 = ($pCellParent !== null) ? $pCellWorksheet->getTitle() : ''; } - list($sheet2, $operand2Data['reference']) = Worksheet::extractSheetTitle($operand2Data['reference'], true); + [$sheet2, $operand2Data['reference']] = Worksheet::extractSheetTitle($operand2Data['reference'], true); if (empty($sheet2)) { $sheet2 = $sheet1; } @@ -4312,7 +4312,7 @@ class Calculation if ($pSheet !== null) { $pSheetName = $pSheet->getTitle(); if (strpos($pRange, '!') !== false) { - list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true); + [$pSheetName, $pRange] = Worksheet::extractSheetTitle($pRange, true); $pSheet = $this->spreadsheet->getSheetByName($pSheetName); } @@ -4365,7 +4365,7 @@ class Calculation if ($pSheet !== null) { $pSheetName = $pSheet->getTitle(); if (strpos($pRange, '!') !== false) { - list($pSheetName, $pRange) = Worksheet::extractSheetTitle($pRange, true); + [$pSheetName, $pRange] = Worksheet::extractSheetTitle($pRange, true); $pSheet = $this->spreadsheet->getSheetByName($pSheetName); } @@ -4389,7 +4389,7 @@ class Calculation $aReferences = Coordinate::extractAllCellReferencesInRange($pRange); if (!isset($aReferences[1])) { // Single cell (or single column or row) in range - list($currentCol, $currentRow) = Coordinate::coordinateFromString($aReferences[0]); + [$currentCol, $currentRow] = Coordinate::coordinateFromString($aReferences[0]); if ($pSheet->cellExists($aReferences[0])) { $returnValue[$currentRow][$currentCol] = $pSheet->getCell($aReferences[0])->getCalculatedValue($resetLog); } else { @@ -4399,7 +4399,7 @@ class Calculation // Extract cell data for all cells in the range foreach ($aReferences as $reference) { // Extract range - list($currentCol, $currentRow) = Coordinate::coordinateFromString($reference); + [$currentCol, $currentRow] = Coordinate::coordinateFromString($reference); if ($pSheet->cellExists($reference)) { $returnValue[$currentRow][$currentCol] = $pSheet->getCell($reference)->getCalculatedValue($resetLog); } else { diff --git a/src/PhpSpreadsheet/Calculation/Functions.php b/src/PhpSpreadsheet/Calculation/Functions.php index d2baf4ea..40e7d964 100644 --- a/src/PhpSpreadsheet/Calculation/Functions.php +++ b/src/PhpSpreadsheet/Calculation/Functions.php @@ -281,7 +281,7 @@ class Functions return '=' . $condition; } preg_match('/(=|<[>=]?|>=?)(.*)/', $condition, $matches); - list(, $operator, $operand) = $matches; + [, $operator, $operand] = $matches; if (is_numeric(trim($operand, '"'))) { $operand = trim($operand, '"'); diff --git a/src/PhpSpreadsheet/Calculation/LookupRef.php b/src/PhpSpreadsheet/Calculation/LookupRef.php index f2d22c00..5bc0a435 100644 --- a/src/PhpSpreadsheet/Calculation/LookupRef.php +++ b/src/PhpSpreadsheet/Calculation/LookupRef.php @@ -98,9 +98,9 @@ class LookupRef return (int) Coordinate::columnIndexFromString($columnKey); } } else { - list($sheet, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true); + [$sheet, $cellAddress] = Worksheet::extractSheetTitle($cellAddress, true); if (strpos($cellAddress, ':') !== false) { - list($startAddress, $endAddress) = explode(':', $cellAddress); + [$startAddress, $endAddress] = explode(':', $cellAddress); $startAddress = preg_replace('/[^a-z]/i', '', $startAddress); $endAddress = preg_replace('/[^a-z]/i', '', $endAddress); $returnValue = []; @@ -138,7 +138,7 @@ class LookupRef reset($cellAddress); $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = Calculation::getMatrixDimensions($cellAddress); + [$columns, $rows] = Calculation::getMatrixDimensions($cellAddress); if ($isMatrix) { return $rows; @@ -175,9 +175,9 @@ class LookupRef } } } else { - list($sheet, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true); + [$sheet, $cellAddress] = Worksheet::extractSheetTitle($cellAddress, true); if (strpos($cellAddress, ':') !== false) { - list($startAddress, $endAddress) = explode(':', $cellAddress); + [$startAddress, $endAddress] = explode(':', $cellAddress); $startAddress = preg_replace('/\D/', '', $startAddress); $endAddress = preg_replace('/\D/', '', $endAddress); $returnValue = []; @@ -187,7 +187,7 @@ class LookupRef return $returnValue; } - list($cellAddress) = explode(':', $cellAddress); + [$cellAddress] = explode(':', $cellAddress); return (int) preg_replace('/\D/', '', $cellAddress); } @@ -215,7 +215,7 @@ class LookupRef reset($cellAddress); $isMatrix = (is_numeric(key($cellAddress))); - list($columns, $rows) = Calculation::getMatrixDimensions($cellAddress); + [$columns, $rows] = Calculation::getMatrixDimensions($cellAddress); if ($isMatrix) { return $columns; @@ -285,7 +285,7 @@ class LookupRef $cellAddress1 = $cellAddress; $cellAddress2 = null; if (strpos($cellAddress, ':') !== false) { - list($cellAddress1, $cellAddress2) = explode(':', $cellAddress); + [$cellAddress1, $cellAddress2] = explode(':', $cellAddress); } if ((!preg_match('/^' . Calculation::CALCULATION_REGEXP_CELLREF . '$/i', $cellAddress1, $matches)) || @@ -295,7 +295,7 @@ class LookupRef } if (strpos($cellAddress, '!') !== false) { - list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true); + [$sheetName, $cellAddress] = Worksheet::extractSheetTitle($cellAddress, true); $sheetName = trim($sheetName, "'"); $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName); } else { @@ -306,7 +306,7 @@ class LookupRef } if (strpos($cellAddress, '!') !== false) { - list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true); + [$sheetName, $cellAddress] = Worksheet::extractSheetTitle($cellAddress, true); $sheetName = trim($sheetName, "'"); $pSheet = $pCell->getWorksheet()->getParent()->getSheetByName($sheetName); } else { @@ -359,16 +359,16 @@ class LookupRef $sheetName = null; if (strpos($cellAddress, '!')) { - list($sheetName, $cellAddress) = Worksheet::extractSheetTitle($cellAddress, true); + [$sheetName, $cellAddress] = Worksheet::extractSheetTitle($cellAddress, true); $sheetName = trim($sheetName, "'"); } if (strpos($cellAddress, ':')) { - list($startCell, $endCell) = explode(':', $cellAddress); + [$startCell, $endCell] = explode(':', $cellAddress); } else { $startCell = $endCell = $cellAddress; } - list($startCellColumn, $startCellRow) = Coordinate::coordinateFromString($startCell); - list($endCellColumn, $endCellRow) = Coordinate::coordinateFromString($endCell); + [$startCellColumn, $startCellRow] = Coordinate::coordinateFromString($startCell); + [$endCellColumn, $endCellRow] = Coordinate::coordinateFromString($endCell); $startCellRow += $rows; $startCellColumn = Coordinate::columnIndexFromString($startCellColumn) - 1; diff --git a/src/PhpSpreadsheet/Calculation/MathTrig.php b/src/PhpSpreadsheet/Calculation/MathTrig.php index 5afdaf35..4e384ea3 100644 --- a/src/PhpSpreadsheet/Calculation/MathTrig.php +++ b/src/PhpSpreadsheet/Calculation/MathTrig.php @@ -1074,7 +1074,7 @@ class MathTrig return array_filter( $args, function ($index) use ($cellReference) { - list(, $row, $column) = explode('.', $index); + [, $row, $column] = explode('.', $index); return $cellReference->getWorksheet()->getRowDimension($row)->getVisible() && $cellReference->getWorksheet()->getColumnDimension($column)->getVisible(); @@ -1088,7 +1088,7 @@ class MathTrig return array_filter( $args, function ($index) use ($cellReference) { - list(, $row, $column) = explode('.', $index); + [, $row, $column] = explode('.', $index); if ($cellReference->getWorksheet()->cellExists($column . $row)) { //take this cell out if it contains the SUBTOTAL or AGGREGATE functions in a formula $isFormula = $cellReference->getWorksheet()->getCell($column . $row)->isFormula(); diff --git a/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php b/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php index 4052c23c..1d28f247 100644 --- a/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php +++ b/src/PhpSpreadsheet/Cell/AdvancedValueBinder.php @@ -118,7 +118,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder // Check for time without seconds e.g. '9:45', '09:45' if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d$/', $value)) { // Convert value to number - list($h, $m) = explode(':', $value); + [$h, $m] = explode(':', $value); $days = $h / 24 + $m / 1440; $cell->setValueExplicit($days, DataType::TYPE_NUMERIC); // Set style @@ -131,7 +131,7 @@ class AdvancedValueBinder extends DefaultValueBinder implements IValueBinder // Check for time with seconds '9:45:59', '09:45:59' if (preg_match('/^(\d|[0-1]\d|2[0-3]):[0-5]\d:[0-5]\d$/', $value)) { // Convert value to number - list($h, $m, $s) = explode(':', $value); + [$h, $m, $s] = explode(':', $value); $days = $h / 24 + $m / 1440 + $s / 86400; // Convert value to number $cell->setValueExplicit($days, DataType::TYPE_NUMERIC); diff --git a/src/PhpSpreadsheet/Cell/Cell.php b/src/PhpSpreadsheet/Cell/Cell.php index 813eee4a..45d1b5ba 100644 --- a/src/PhpSpreadsheet/Cell/Cell.php +++ b/src/PhpSpreadsheet/Cell/Cell.php @@ -511,7 +511,7 @@ class Cell { if ($mergeRange = $this->getMergeRange()) { $mergeRange = Coordinate::splitRange($mergeRange); - list($startCell) = $mergeRange[0]; + [$startCell] = $mergeRange[0]; if ($this->getCoordinate() === $startCell) { return true; } @@ -569,7 +569,7 @@ class Cell */ public function isInRange($pRange) { - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($pRange); // Translate properties $myColumn = Coordinate::columnIndexFromString($this->getColumn()); diff --git a/src/PhpSpreadsheet/Cell/Coordinate.php b/src/PhpSpreadsheet/Cell/Coordinate.php index 5e20ec6d..cc0543f6 100644 --- a/src/PhpSpreadsheet/Cell/Coordinate.php +++ b/src/PhpSpreadsheet/Cell/Coordinate.php @@ -71,7 +71,7 @@ abstract class Coordinate } // Split out any worksheet name from the reference - list($worksheet, $pCoordinateString) = Worksheet::extractSheetTitle($pCoordinateString, true); + [$worksheet, $pCoordinateString] = Worksheet::extractSheetTitle($pCoordinateString, true); if ($worksheet > '') { $worksheet .= '!'; } @@ -102,13 +102,13 @@ abstract class Coordinate } // Split out any worksheet name from the coordinate - list($worksheet, $pCoordinateString) = Worksheet::extractSheetTitle($pCoordinateString, true); + [$worksheet, $pCoordinateString] = Worksheet::extractSheetTitle($pCoordinateString, true); if ($worksheet > '') { $worksheet .= '!'; } // Create absolute coordinate - list($column, $row) = self::coordinateFromString($pCoordinateString); + [$column, $row] = self::coordinateFromString($pCoordinateString); $column = ltrim($column, '$'); $row = ltrim($row, '$'); @@ -187,7 +187,7 @@ abstract class Coordinate if (strpos($pRange, ':') === false) { $rangeA = $rangeB = $pRange; } else { - list($rangeA, $rangeB) = explode(':', $pRange); + [$rangeA, $rangeB] = explode(':', $pRange); } // Calculate range outer borders @@ -211,7 +211,7 @@ abstract class Coordinate public static function rangeDimension($pRange) { // Calculate range outer borders - list($rangeStart, $rangeEnd) = self::rangeBoundaries($pRange); + [$rangeStart, $rangeEnd] = self::rangeBoundaries($pRange); return [($rangeEnd[0] - $rangeStart[0] + 1), ($rangeEnd[1] - $rangeStart[1] + 1)]; } @@ -238,7 +238,7 @@ abstract class Coordinate if (strpos($pRange, ':') === false) { $rangeA = $rangeB = $pRange; } else { - list($rangeA, $rangeB) = explode(':', $pRange); + [$rangeA, $rangeB] = explode(':', $pRange); } return [self::coordinateFromString($rangeA), self::coordinateFromString($rangeB)]; @@ -376,9 +376,9 @@ abstract class Coordinate } // Range... - list($rangeStart, $rangeEnd) = $range; - list($startColumn, $startRow) = self::coordinateFromString($rangeStart); - list($endColumn, $endRow) = self::coordinateFromString($rangeEnd); + [$rangeStart, $rangeEnd] = $range; + [$startColumn, $startRow] = self::coordinateFromString($rangeStart); + [$endColumn, $endRow] = self::coordinateFromString($rangeEnd); $startColumnIndex = self::columnIndexFromString($startColumn); $endColumnIndex = self::columnIndexFromString($endColumn); ++$endColumnIndex; @@ -432,7 +432,7 @@ abstract class Coordinate continue; } - list($column, $row) = self::coordinateFromString($coord); + [$column, $row] = self::coordinateFromString($coord); $row = (int) (ltrim($row, '$')); $hashCode = $column . '-' . (is_object($value) ? $value->getHashCode() : $value); diff --git a/src/PhpSpreadsheet/Chart/DataSeriesValues.php b/src/PhpSpreadsheet/Chart/DataSeriesValues.php index e82b7efe..73905d97 100644 --- a/src/PhpSpreadsheet/Chart/DataSeriesValues.php +++ b/src/PhpSpreadsheet/Chart/DataSeriesValues.php @@ -376,7 +376,7 @@ class DataSeriesValues } unset($dataValue); } else { - list($worksheet, $cellRange) = Worksheet::extractSheetTitle($this->dataSource, true); + [$worksheet, $cellRange] = Worksheet::extractSheetTitle($this->dataSource, true); $dimensions = Coordinate::rangeDimension(str_replace('$', '', $cellRange)); if (($dimensions[0] == 1) || ($dimensions[1] == 1)) { $this->dataValues = Functions::flattenArray($newDataValues); diff --git a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php index c0445d49..9dcab049 100644 --- a/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php +++ b/src/PhpSpreadsheet/Chart/Renderer/JpGraph.php @@ -442,7 +442,7 @@ class JpGraph implements IRenderer $seriesPlot->link->SetColor(self::$colourSet[self::$plotColour]); } elseif ($scatterStyle == 'smoothMarker') { $spline = new \Spline($dataValuesY, $dataValuesX); - list($splineDataY, $splineDataX) = $spline->Get(count($dataValuesX) * self::$width / 20); + [$splineDataY, $splineDataX] = $spline->Get(count($dataValuesX) * self::$width / 20); $lplot = new \LinePlot($splineDataX, $splineDataY); $lplot->SetColor(self::$colourSet[self::$plotColour]); diff --git a/src/PhpSpreadsheet/Reader/Csv.php b/src/PhpSpreadsheet/Reader/Csv.php index 81ca1a8c..21251913 100644 --- a/src/PhpSpreadsheet/Reader/Csv.php +++ b/src/PhpSpreadsheet/Reader/Csv.php @@ -175,9 +175,8 @@ class Csv extends BaseReader } } foreach ($potentialDelimiters as $delimiter) { - $counts[$delimiter][] = isset($countLine[$delimiter]) - ? $countLine[$delimiter] - : 0; + $counts[$delimiter][] = $countLine[$delimiter] + ?? 0; } } diff --git a/src/PhpSpreadsheet/Reader/Gnumeric.php b/src/PhpSpreadsheet/Reader/Gnumeric.php index 7445ef1b..44ab701d 100644 --- a/src/PhpSpreadsheet/Reader/Gnumeric.php +++ b/src/PhpSpreadsheet/Reader/Gnumeric.php @@ -267,7 +267,7 @@ class Gnumeric extends BaseReader break; case 'user-defined': - list(, $attrName) = explode(':', $attributes['name']); + [, $attrName] = explode(':', $attributes['name']); switch ($attrName) { case 'publisher': $docProps->setCompany(trim($propertyValue)); @@ -879,7 +879,7 @@ class Gnumeric extends BaseReader private static function parseGnumericColour($gnmColour) { - list($gnmR, $gnmG, $gnmB) = explode(':', $gnmColour); + [$gnmR, $gnmG, $gnmB] = explode(':', $gnmColour); $gnmR = substr(str_pad($gnmR, 4, '0', STR_PAD_RIGHT), 0, 2); $gnmG = substr(str_pad($gnmG, 4, '0', STR_PAD_RIGHT), 0, 2); $gnmB = substr(str_pad($gnmB, 4, '0', STR_PAD_RIGHT), 0, 2); diff --git a/src/PhpSpreadsheet/Reader/Html.php b/src/PhpSpreadsheet/Reader/Html.php index 75db7591..d599424d 100644 --- a/src/PhpSpreadsheet/Reader/Html.php +++ b/src/PhpSpreadsheet/Reader/Html.php @@ -920,7 +920,7 @@ class Html extends BaseReader */ private function setBorderStyle(Style $cellStyle, $styleValue, $type) { - list(, $borderStyle, $color) = explode(' ', $styleValue); + [, $borderStyle, $color] = explode(' ', $styleValue); $cellStyle->applyFromArray([ 'borders' => [ diff --git a/src/PhpSpreadsheet/Reader/Ods.php b/src/PhpSpreadsheet/Reader/Ods.php index 51462c20..5fff07aa 100644 --- a/src/PhpSpreadsheet/Reader/Ods.php +++ b/src/PhpSpreadsheet/Reader/Ods.php @@ -490,7 +490,7 @@ class Ods extends BaseReader $dateObj = new DateTime($value, $GMT); $dateObj->setTimeZone($timezoneObj); - list($year, $month, $day, $hour, $minute, $second) = explode( + [$year, $month, $day, $hour, $minute, $second] = explode( ' ', $dateObj->format('Y m d H i s') ); diff --git a/src/PhpSpreadsheet/Reader/Slk.php b/src/PhpSpreadsheet/Reader/Slk.php index c1013c2e..d73f598c 100644 --- a/src/PhpSpreadsheet/Reader/Slk.php +++ b/src/PhpSpreadsheet/Reader/Slk.php @@ -384,7 +384,7 @@ class Slk extends BaseReader break; case 'W': - list($startCol, $endCol, $columnWidth) = explode(' ', substr($rowDatum, 1)); + [$startCol, $endCol, $columnWidth] = explode(' ', substr($rowDatum, 1)); break; case 'S': diff --git a/src/PhpSpreadsheet/Reader/Xls.php b/src/PhpSpreadsheet/Reader/Xls.php index bd2c9c1d..36b50f0a 100644 --- a/src/PhpSpreadsheet/Reader/Xls.php +++ b/src/PhpSpreadsheet/Reader/Xls.php @@ -1089,8 +1089,8 @@ class Xls extends BaseReader } // calculate the width and height of the shape - list($startColumn, $startRow) = Coordinate::coordinateFromString($spContainer->getStartCoordinates()); - list($endColumn, $endRow) = Coordinate::coordinateFromString($spContainer->getEndCoordinates()); + [$startColumn, $startRow] = Coordinate::coordinateFromString($spContainer->getStartCoordinates()); + [$endColumn, $endRow] = Coordinate::coordinateFromString($spContainer->getEndCoordinates()); $startOffsetX = $spContainer->getStartOffsetX(); $startOffsetY = $spContainer->getStartOffsetY(); @@ -1175,7 +1175,7 @@ class Xls extends BaseReader // treat SHAREDFMLA records if ($this->version == self::XLS_BIFF8) { foreach ($this->sharedFormulaParts as $cell => $baseCell) { - list($column, $row) = Coordinate::coordinateFromString($cell); + [$column, $row] = Coordinate::coordinateFromString($cell); if (($this->getReadFilter() !== null) && $this->getReadFilter()->readCell($column, $row, $this->phpSheet->getTitle())) { $formula = $this->getFormulaFromStructure($this->sharedFormulas[$baseCell], $cell); $this->phpSheet->getCell($cell)->setValueExplicit('=' . $formula, DataType::TYPE_FORMULA); @@ -1251,8 +1251,8 @@ class Xls extends BaseReader $coordinateStrings = explode(':', $extractedRange); if (count($coordinateStrings) == 2) { - list($firstColumn, $firstRow) = Coordinate::coordinateFromString($coordinateStrings[0]); - list($lastColumn, $lastRow) = Coordinate::coordinateFromString($coordinateStrings[1]); + [$firstColumn, $firstRow] = Coordinate::coordinateFromString($coordinateStrings[0]); + [$lastColumn, $lastRow] = Coordinate::coordinateFromString($coordinateStrings[1]); if ($firstColumn == 'A' and $lastColumn == 'IV') { // then we have repeating rows @@ -5355,12 +5355,12 @@ class Xls extends BaseReader $formulaStrings = []; foreach ($tokens as $token) { // initialize spaces - $space0 = isset($space0) ? $space0 : ''; // spaces before next token, not tParen - $space1 = isset($space1) ? $space1 : ''; // carriage returns before next token, not tParen - $space2 = isset($space2) ? $space2 : ''; // spaces before opening parenthesis - $space3 = isset($space3) ? $space3 : ''; // carriage returns before opening parenthesis - $space4 = isset($space4) ? $space4 : ''; // spaces before closing parenthesis - $space5 = isset($space5) ? $space5 : ''; // carriage returns before closing parenthesis + $space0 = $space0 ?? ''; // spaces before next token, not tParen + $space1 = $space1 ?? ''; // carriage returns before next token, not tParen + $space2 = $space2 ?? ''; // spaces before opening parenthesis + $space3 = $space3 ?? ''; // carriage returns before opening parenthesis + $space4 = $space4 ?? ''; // spaces before closing parenthesis + $space5 = $space5 ?? ''; // carriage returns before closing parenthesis switch ($token['name']) { case 'tAdd': // addition @@ -7145,7 +7145,7 @@ class Xls extends BaseReader */ private function readBIFF8CellAddressB($cellAddressStructure, $baseCell = 'A1') { - list($baseCol, $baseRow) = Coordinate::coordinateFromString($baseCell); + [$baseCol, $baseRow] = Coordinate::coordinateFromString($baseCell); $baseCol = Coordinate::columnIndexFromString($baseCol) - 1; // offset: 0; size: 2; index to row (0... 65535) (or offset (-32768... 32767)) @@ -7328,7 +7328,7 @@ class Xls extends BaseReader */ private function readBIFF8CellRangeAddressB($subData, $baseCell = 'A1') { - list($baseCol, $baseRow) = Coordinate::coordinateFromString($baseCell); + [$baseCol, $baseRow] = Coordinate::coordinateFromString($baseCell); $baseCol = Coordinate::columnIndexFromString($baseCol) - 1; // TODO: if cell range is just a single cell, should this funciton diff --git a/src/PhpSpreadsheet/Reader/Xlsx.php b/src/PhpSpreadsheet/Reader/Xlsx.php index 5372fef9..1c1351f7 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx.php +++ b/src/PhpSpreadsheet/Reader/Xlsx.php @@ -1352,7 +1352,7 @@ class Xlsx extends BaseReader $rangeSets = preg_split("/('?(?:.*?)'?(?:![A-Z0-9]+:[A-Z0-9]+)),?/", $extractedRange, -1, PREG_SPLIT_NO_EMPTY | PREG_SPLIT_DELIM_CAPTURE); $newRangeSets = []; foreach ($rangeSets as $rangeSet) { - list($sheetName, $rangeSet) = Worksheet::extractSheetTitle($rangeSet, true); + [$sheetName, $rangeSet] = Worksheet::extractSheetTitle($rangeSet, true); if (strpos($rangeSet, ':') === false) { $rangeSet = $rangeSet . ':' . $rangeSet; } @@ -1426,7 +1426,7 @@ class Xlsx extends BaseReader $locatedSheet = $excel->getSheetByName($extractedSheetName); // Modify range - list($worksheetName, $extractedRange) = Worksheet::extractSheetTitle($extractedRange, true); + [$worksheetName, $extractedRange] = Worksheet::extractSheetTitle($extractedRange, true); } if ($locatedSheet !== null) { @@ -1841,7 +1841,7 @@ class Xlsx extends BaseReader private static function getArrayItem($array, $key = 0) { - return isset($array[$key]) ? $array[$key] : null; + return $array[$key] ?? null; } private static function dirAdd($base, $add) diff --git a/src/PhpSpreadsheet/Reader/Xlsx/Properties.php b/src/PhpSpreadsheet/Reader/Xlsx/Properties.php index bc6bba2c..bf8e57d8 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx/Properties.php +++ b/src/PhpSpreadsheet/Reader/Xlsx/Properties.php @@ -86,6 +86,6 @@ class Properties private static function getArrayItem(array $array, $key = 0) { - return isset($array[$key]) ? $array[$key] : null; + return $array[$key] ?? null; } } diff --git a/src/PhpSpreadsheet/Reader/Xlsx/Styles.php b/src/PhpSpreadsheet/Reader/Xlsx/Styles.php index c06564a3..af52a6b2 100644 --- a/src/PhpSpreadsheet/Reader/Xlsx/Styles.php +++ b/src/PhpSpreadsheet/Reader/Xlsx/Styles.php @@ -260,6 +260,6 @@ class Styles extends BaseParserClass private static function getArrayItem($array, $key = 0) { - return isset($array[$key]) ? $array[$key] : null; + return $array[$key] ?? null; } } diff --git a/src/PhpSpreadsheet/ReferenceHelper.php b/src/PhpSpreadsheet/ReferenceHelper.php index 13dbe042..143e80d8 100644 --- a/src/PhpSpreadsheet/ReferenceHelper.php +++ b/src/PhpSpreadsheet/ReferenceHelper.php @@ -82,11 +82,8 @@ class ReferenceHelper */ public static function cellSort($a, $b) { - // TODO Scrutinizer doesn't like sscanf($a, '%[A-Z]%d', $ac, $ar), and we can't use short list() syntax - // [$ac, $ar] = sscanf($a, '%[A-Z]%d') while retaining PHP 5.6 support. - // Switch when we drop support for 5.6 - list($ac, $ar) = sscanf($a, '%[A-Z]%d'); - list($bc, $br) = sscanf($b, '%[A-Z]%d'); + [$ac, $ar] = sscanf($a, '%[A-Z]%d'); + [$bc, $br] = sscanf($b, '%[A-Z]%d'); if ($ar === $br) { return strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); @@ -106,11 +103,8 @@ class ReferenceHelper */ public static function cellReverseSort($a, $b) { - // TODO Scrutinizer doesn't like sscanf($a, '%[A-Z]%d', $ac, $ar), and we can't use short list() syntax - // [$ac, $ar] = sscanf($a, '%[A-Z]%d') while retaining PHP 5.6 support. - // Switch when we drop support for 5.6 - list($ac, $ar) = sscanf($a, '%[A-Z]%d'); - list($bc, $br) = sscanf($b, '%[A-Z]%d'); + [$ac, $ar] = sscanf($a, '%[A-Z]%d'); + [$bc, $br] = sscanf($b, '%[A-Z]%d'); if ($ar === $br) { return 1 - strcasecmp(strlen($ac) . $ac, strlen($bc) . $bc); @@ -132,7 +126,7 @@ class ReferenceHelper */ private static function cellAddressInDeleteRange($cellAddress, $beforeRow, $pNumRows, $beforeColumnIndex, $pNumCols) { - list($cellColumn, $cellRow) = Coordinate::coordinateFromString($cellAddress); + [$cellColumn, $cellRow] = Coordinate::coordinateFromString($cellAddress); $cellColumnIndex = Coordinate::columnIndexFromString($cellColumn); // Is cell within the range of rows/columns if we're deleting if ($pNumRows < 0 && @@ -319,7 +313,7 @@ class ReferenceHelper if (!empty($aColumnDimensions)) { foreach ($aColumnDimensions as $objColumnDimension) { $newReference = $this->updateCellReference($objColumnDimension->getColumnIndex() . '1', $pBefore, $pNumCols, $pNumRows); - list($newReference) = Coordinate::coordinateFromString($newReference); + [$newReference] = Coordinate::coordinateFromString($newReference); if ($objColumnDimension->getColumnIndex() != $newReference) { $objColumnDimension->setColumnIndex($newReference); } @@ -344,7 +338,7 @@ class ReferenceHelper if (!empty($aRowDimensions)) { foreach ($aRowDimensions as $objRowDimension) { $newReference = $this->updateCellReference('A' . $objRowDimension->getRowIndex(), $pBefore, $pNumCols, $pNumRows); - list(, $newReference) = Coordinate::coordinateFromString($newReference); + [, $newReference] = Coordinate::coordinateFromString($newReference); if ($objRowDimension->getRowIndex() != $newReference) { $objRowDimension->setRowIndex($newReference); } @@ -378,7 +372,7 @@ class ReferenceHelper $allCoordinates = $pSheet->getCoordinates(); // Get coordinate of $pBefore - list($beforeColumn, $beforeRow) = Coordinate::coordinateFromString($pBefore); + [$beforeColumn, $beforeRow] = Coordinate::coordinateFromString($pBefore); $beforeColumnIndex = Coordinate::columnIndexFromString($beforeColumn); // Clear cells if we are removing columns or rows @@ -539,7 +533,7 @@ class ReferenceHelper $row = 0; sscanf($pBefore, '%[A-Z]%d', $column, $row); $columnIndex = Coordinate::columnIndexFromString($column); - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($autoFilterRange); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($autoFilterRange); if ($columnIndex <= $rangeEnd[0]) { if ($pNumCols < 0) { // If we're actually deleting any columns that fall within the autofilter range, @@ -707,7 +701,7 @@ class ReferenceHelper if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { $toString = ($match[2] > '') ? $match[2] . '!' : ''; $toString .= $modified3 . ':' . $modified4; - list($column, $row) = Coordinate::coordinateFromString($match[3]); + [$column, $row] = Coordinate::coordinateFromString($match[3]); // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more $column = Coordinate::columnIndexFromString(trim($column, '$')) + 100000; $row = trim($row, '$') + 10000000; @@ -733,7 +727,7 @@ class ReferenceHelper if (($match[2] == '') || (trim($match[2], "'") == $sheetName)) { $toString = ($match[2] > '') ? $match[2] . '!' : ''; $toString .= $modified3; - list($column, $row) = Coordinate::coordinateFromString($match[3]); + [$column, $row] = Coordinate::coordinateFromString($match[3]); // Max worksheet size is 1,048,576 rows by 16,384 columns in Excel 2007, so our adjustments need to be at least one digit more $column = Coordinate::columnIndexFromString(trim($column, '$')) + 100000; $row = trim($row, '$') + 10000000; @@ -881,10 +875,10 @@ class ReferenceHelper } // Get coordinate of $pBefore - list($beforeColumn, $beforeRow) = Coordinate::coordinateFromString($pBefore); + [$beforeColumn, $beforeRow] = Coordinate::coordinateFromString($pBefore); // Get coordinate of $pCellReference - list($newColumn, $newRow) = Coordinate::coordinateFromString($pCellReference); + [$newColumn, $newRow] = Coordinate::coordinateFromString($pCellReference); // Verify which parts should be updated $updateColumn = (($newColumn[0] != '$') && ($beforeColumn[0] != '$') && (Coordinate::columnIndexFromString($newColumn) >= Coordinate::columnIndexFromString($beforeColumn))); diff --git a/src/PhpSpreadsheet/Settings.php b/src/PhpSpreadsheet/Settings.php index c297dd68..03fa6ac2 100644 --- a/src/PhpSpreadsheet/Settings.php +++ b/src/PhpSpreadsheet/Settings.php @@ -30,7 +30,6 @@ class Settings * 7.2 < 7.2.1 * 7.1 < 7.1.13 * 7.0 < 7.0.27 - * 5.6 ANY * then you may need to disable this check to prevent unwanted behaviour in other threads * SECURITY WARNING: Changing this flag is not recommended. * @@ -122,7 +121,6 @@ class Settings * 7.2 < 7.2.1 * 7.1 < 7.1.13 * 7.0 < 7.0.27 - * 5.6 ANY * then you may need to disable this check to prevent unwanted behaviour in other threads * SECURITY WARNING: Changing this flag to false is not recommended. * diff --git a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php index b3d82d46..17f32107 100644 --- a/src/PhpSpreadsheet/Shared/JAMA/Matrix.php +++ b/src/PhpSpreadsheet/Shared/JAMA/Matrix.php @@ -174,7 +174,7 @@ class Matrix switch ($match) { //A($i0...; $j0...) case 'integer,integer': - list($i0, $j0) = $args; + [$i0, $j0] = $args; if ($i0 >= 0) { $m = $this->m - $i0; } else { @@ -197,7 +197,7 @@ class Matrix break; //A($i0...$iF; $j0...$jF) case 'integer,integer,integer,integer': - list($i0, $iF, $j0, $jF) = $args; + [$i0, $iF, $j0, $jF] = $args; if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { @@ -220,7 +220,7 @@ class Matrix break; //$R = array of row indices; $C = array of column indices case 'array,array': - list($RL, $CL) = $args; + [$RL, $CL] = $args; if (count($RL) > 0) { $m = count($RL); } else { @@ -243,7 +243,7 @@ class Matrix break; //A($i0...$iF); $CL = array of column indices case 'integer,integer,array': - list($i0, $iF, $CL) = $args; + [$i0, $iF, $CL] = $args; if (($iF > $i0) && ($this->m >= $iF) && ($i0 >= 0)) { $m = $iF - $i0; } else { @@ -266,7 +266,7 @@ class Matrix break; //$RL = array of row indices case 'array,integer,integer': - list($RL, $j0, $jF) = $args; + [$RL, $j0, $jF] = $args; if (count($RL) > 0) { $m = count($RL); } else { diff --git a/src/PhpSpreadsheet/Shared/OLE.php b/src/PhpSpreadsheet/Shared/OLE.php index f09fbc92..efa7522f 100644 --- a/src/PhpSpreadsheet/Shared/OLE.php +++ b/src/PhpSpreadsheet/Shared/OLE.php @@ -253,7 +253,7 @@ class OLE */ private static function _readInt1($fh) { - list(, $tmp) = unpack('c', fread($fh, 1)); + [, $tmp] = unpack('c', fread($fh, 1)); return $tmp; } @@ -267,7 +267,7 @@ class OLE */ private static function _readInt2($fh) { - list(, $tmp) = unpack('v', fread($fh, 2)); + [, $tmp] = unpack('v', fread($fh, 2)); return $tmp; } @@ -281,7 +281,7 @@ class OLE */ private static function _readInt4($fh) { - list(, $tmp) = unpack('V', fread($fh, 4)); + [, $tmp] = unpack('V', fread($fh, 4)); return $tmp; } diff --git a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php index 578e08fa..c52cea23 100644 --- a/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php +++ b/src/PhpSpreadsheet/Shared/OLE/PPS/Root.php @@ -118,7 +118,7 @@ class Root extends PPS $aList = []; PPS::_savePpsSetPnt($aList, [$this]); // calculate values for header - list($iSBDcnt, $iBBcnt, $iPPScnt) = $this->_calcSize($aList); //, $rhInfo); + [$iSBDcnt, $iBBcnt, $iPPScnt] = $this->_calcSize($aList); //, $rhInfo); // Save Header $this->_saveHeader($iSBDcnt, $iBBcnt, $iPPScnt); @@ -149,7 +149,7 @@ class Root extends PPS public function _calcSize(&$raList) { // Calculate Basic Setting - list($iSBDcnt, $iBBcnt, $iPPScnt) = [0, 0, 0]; + [$iSBDcnt, $iBBcnt, $iPPScnt] = [0, 0, 0]; $iSmallLen = 0; $iSBcnt = 0; $iCount = count($raList); diff --git a/src/PhpSpreadsheet/Shared/Xls.php b/src/PhpSpreadsheet/Shared/Xls.php index 177779f8..51407ade 100644 --- a/src/PhpSpreadsheet/Shared/Xls.php +++ b/src/PhpSpreadsheet/Shared/Xls.php @@ -211,7 +211,7 @@ class Xls */ public static function oneAnchor2twoAnchor($sheet, $coordinates, $offsetX, $offsetY, $width, $height) { - list($column, $row) = Coordinate::coordinateFromString($coordinates); + [$column, $row] = Coordinate::coordinateFromString($coordinates); $col_start = Coordinate::columnIndexFromString($column); $row_start = $row - 1; diff --git a/src/PhpSpreadsheet/Spreadsheet.php b/src/PhpSpreadsheet/Spreadsheet.php index 8eadcbe8..04a9f1df 100644 --- a/src/PhpSpreadsheet/Spreadsheet.php +++ b/src/PhpSpreadsheet/Spreadsheet.php @@ -721,7 +721,7 @@ class Spreadsheet { $worksheetCount = count($this->workSheetCollection); for ($i = 0; $i < $worksheetCount; ++$i) { - if ($this->workSheetCollection[$i]->getTitle() === $pName) { + if ($this->workSheetCollection[$i]->getTitle() === trim($pName, "'")) { return $this->workSheetCollection[$i]; } } diff --git a/src/PhpSpreadsheet/Style/NumberFormat.php b/src/PhpSpreadsheet/Style/NumberFormat.php index 785c1f0c..ac64b20e 100644 --- a/src/PhpSpreadsheet/Style/NumberFormat.php +++ b/src/PhpSpreadsheet/Style/NumberFormat.php @@ -706,7 +706,7 @@ class NumberFormat extends Supervisor if (preg_match('/\[\$(.*)\]/u', $format, $m)) { // Currency or Accounting $currencyCode = $m[1]; - list($currencyCode) = explode('-', $currencyCode); + [$currencyCode] = explode('-', $currencyCode); if ($currencyCode == '') { $currencyCode = StringHelper::getCurrencyCode(); } @@ -807,7 +807,7 @@ class NumberFormat extends Supervisor // Additional formatting provided by callback function if ($callBack !== null) { - list($writerInstance, $function) = $callBack; + [$writerInstance, $function] = $callBack; $value = $writerInstance->$function($value, $formatColor); } diff --git a/src/PhpSpreadsheet/Style/Style.php b/src/PhpSpreadsheet/Style/Style.php index fbe07c2c..9cdfc1b1 100644 --- a/src/PhpSpreadsheet/Style/Style.php +++ b/src/PhpSpreadsheet/Style/Style.php @@ -204,7 +204,7 @@ class Style extends Supervisor $rangeA = $pRange; $rangeB = $pRange; } else { - list($rangeA, $rangeB) = explode(':', $pRange); + [$rangeA, $rangeB] = explode(':', $pRange); } // Calculate range outer borders diff --git a/src/PhpSpreadsheet/Worksheet/AutoFilter.php b/src/PhpSpreadsheet/Worksheet/AutoFilter.php index 494948a7..b4449254 100644 --- a/src/PhpSpreadsheet/Worksheet/AutoFilter.php +++ b/src/PhpSpreadsheet/Worksheet/AutoFilter.php @@ -90,7 +90,7 @@ class AutoFilter public function setRange($pRange) { // extract coordinate - list($worksheet, $pRange) = Worksheet::extractSheetTitle($pRange, true); + [$worksheet, $pRange] = Worksheet::extractSheetTitle($pRange, true); if (strpos($pRange, ':') !== false) { $this->range = $pRange; @@ -105,7 +105,7 @@ class AutoFilter $this->columns = []; } else { // Discard any column rules that are no longer valid within this range - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($this->range); foreach ($this->columns as $key => $value) { $colIndex = Coordinate::columnIndexFromString($key); if (($rangeStart[0] > $colIndex) || ($rangeEnd[0] < $colIndex)) { @@ -143,7 +143,7 @@ class AutoFilter } $columnIndex = Coordinate::columnIndexFromString($column); - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($this->range); if (($rangeStart[0] > $columnIndex) || ($rangeEnd[0] < $columnIndex)) { throw new PhpSpreadsheetException('Column is outside of current autofilter range.'); } @@ -196,7 +196,7 @@ class AutoFilter */ public function getColumnByOffset($pColumnOffset) { - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($this->range); $pColumn = Coordinate::stringFromColumnIndex($rangeStart[0] + $pColumnOffset); return $this->getColumn($pColumn); @@ -357,7 +357,7 @@ class AutoFilter { $dataSet = $ruleSet['filterRules']; $join = $ruleSet['join']; - $customRuleForBlanks = isset($ruleSet['customRuleForBlanks']) ? $ruleSet['customRuleForBlanks'] : false; + $customRuleForBlanks = $ruleSet['customRuleForBlanks'] ?? false; if (!$customRuleForBlanks) { // Blank cells are always ignored, so return a FALSE @@ -621,7 +621,7 @@ class AutoFilter */ public function showHideRows() { - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($this->range); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($this->range); // The heading row should always be visible $this->workSheet->getRowDimension($rangeStart[1])->setVisible(true); diff --git a/src/PhpSpreadsheet/Worksheet/Drawing.php b/src/PhpSpreadsheet/Worksheet/Drawing.php index ed26006c..8194da31 100644 --- a/src/PhpSpreadsheet/Worksheet/Drawing.php +++ b/src/PhpSpreadsheet/Worksheet/Drawing.php @@ -88,7 +88,7 @@ class Drawing extends BaseDrawing if ($this->width == 0 && $this->height == 0) { // Get width/height - list($this->width, $this->height) = getimagesize($pValue); + [$this->width, $this->height] = getimagesize($pValue); } } else { throw new PhpSpreadsheetException("File $pValue not found!"); diff --git a/src/PhpSpreadsheet/Worksheet/Worksheet.php b/src/PhpSpreadsheet/Worksheet/Worksheet.php index 1e525a3f..689c547e 100644 --- a/src/PhpSpreadsheet/Worksheet/Worksheet.php +++ b/src/PhpSpreadsheet/Worksheet/Worksheet.php @@ -1561,7 +1561,7 @@ class Worksheet implements IComparable } // Calculate range outer borders - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange . ':' . $pRange); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($pRange . ':' . $pRange); // Make sure we can loop upwards on rows and columns if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { @@ -1601,7 +1601,7 @@ class Worksheet implements IComparable } // Calculate range outer borders - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange . ':' . $pRange); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($pRange . ':' . $pRange); // Make sure we can loop upwards on rows and columns if ($rangeStart[0] > $rangeEnd[0] && $rangeStart[1] > $rangeEnd[1]) { @@ -2424,7 +2424,7 @@ class Worksheet implements IComparable $pCoordinate = preg_replace('/^(\d+):(\d+)$/', 'A${1}:XFD${2}', $pCoordinate); if (Coordinate::coordinateIsRange($pCoordinate)) { - list($first) = Coordinate::splitRange($pCoordinate); + [$first] = Coordinate::splitRange($pCoordinate); $this->activeCell = $first[0]; } else { $this->activeCell = $pCoordinate; @@ -2493,7 +2493,7 @@ class Worksheet implements IComparable } // start coordinate - list($startColumn, $startRow) = Coordinate::coordinateFromString($startCell); + [$startColumn, $startRow] = Coordinate::coordinateFromString($startCell); // Loop through $source foreach ($source as $rowData) { @@ -2535,7 +2535,7 @@ class Worksheet implements IComparable // Returnvalue $returnValue = []; // Identify the range that we need to extract from the worksheet - list($rangeStart, $rangeEnd) = Coordinate::rangeBoundaries($pRange); + [$rangeStart, $rangeEnd] = Coordinate::rangeBoundaries($pRange); $minCol = Coordinate::stringFromColumnIndex($rangeStart[0]); $minRow = $rangeStart[1]; $maxCol = Coordinate::stringFromColumnIndex($rangeEnd[0]); diff --git a/src/PhpSpreadsheet/Writer/Html.php b/src/PhpSpreadsheet/Writer/Html.php index 8cd026d3..ebda5c33 100644 --- a/src/PhpSpreadsheet/Writer/Html.php +++ b/src/PhpSpreadsheet/Writer/Html.php @@ -643,7 +643,10 @@ class Html extends BaseWriter } else { $imageDetails = getimagesize($filename); if ($fp = fopen($filename, 'rb', 0)) { - $picture = fread($fp, filesize($filename)); + $picture = ''; + while (!feof($fp)) { + $picture .= fread($fp, 1024); + } fclose($fp); // base64 encode the binary data, then break it // into chunks according to RFC 2045 semantics @@ -1538,14 +1541,14 @@ class Html extends BaseWriter // loop through all Excel merged cells foreach ($sheet->getMergeCells() as $cells) { - list($cells) = Coordinate::splitRange($cells); + [$cells] = Coordinate::splitRange($cells); $first = $cells[0]; $last = $cells[1]; - list($fc, $fr) = Coordinate::coordinateFromString($first); + [$fc, $fr] = Coordinate::coordinateFromString($first); $fc = Coordinate::columnIndexFromString($fc) - 1; - list($lc, $lr) = Coordinate::coordinateFromString($last); + [$lc, $lr] = Coordinate::coordinateFromString($last); $lc = Coordinate::columnIndexFromString($lc) - 1; // loop through the individual cells in the individual merge diff --git a/src/PhpSpreadsheet/Writer/Ods/Content.php b/src/PhpSpreadsheet/Writer/Ods/Content.php index 11de0fd3..962f8fff 100644 --- a/src/PhpSpreadsheet/Writer/Ods/Content.php +++ b/src/PhpSpreadsheet/Writer/Ods/Content.php @@ -383,7 +383,7 @@ class Content extends WriterPart } $mergeRange = Coordinate::splitRange($cell->getMergeRange()); - list($startCell, $endCell) = $mergeRange[0]; + [$startCell, $endCell] = $mergeRange[0]; $start = Coordinate::coordinateFromString($startCell); $end = Coordinate::coordinateFromString($endCell); $columnSpan = Coordinate::columnIndexFromString($end[0]) - Coordinate::columnIndexFromString($start[0]) + 1; diff --git a/src/PhpSpreadsheet/Writer/Xls.php b/src/PhpSpreadsheet/Writer/Xls.php index 6dff1342..6932eb1a 100644 --- a/src/PhpSpreadsheet/Writer/Xls.php +++ b/src/PhpSpreadsheet/Writer/Xls.php @@ -459,7 +459,7 @@ class Xls extends BaseWriter if ($drawing instanceof Drawing) { $filename = $drawing->getPath(); - list($imagesx, $imagesy, $imageFormat) = getimagesize($filename); + [$imagesx, $imagesy, $imageFormat] = getimagesize($filename); switch ($imageFormat) { case 1: // GIF, not supported by BIFF8, we convert to PNG diff --git a/src/PhpSpreadsheet/Writer/Xls/Escher.php b/src/PhpSpreadsheet/Writer/Xls/Escher.php index 1dcef807..1ee2e904 100644 --- a/src/PhpSpreadsheet/Writer/Xls/Escher.php +++ b/src/PhpSpreadsheet/Writer/Xls/Escher.php @@ -420,7 +420,7 @@ class Escher $recType = 0xF010; // start coordinates - list($column, $row) = Coordinate::coordinateFromString($this->object->getStartCoordinates()); + [$column, $row] = Coordinate::coordinateFromString($this->object->getStartCoordinates()); $c1 = Coordinate::columnIndexFromString($column) - 1; $r1 = $row - 1; @@ -431,7 +431,7 @@ class Escher $startOffsetY = $this->object->getStartOffsetY(); // end coordinates - list($column, $row) = Coordinate::coordinateFromString($this->object->getEndCoordinates()); + [$column, $row] = Coordinate::coordinateFromString($this->object->getEndCoordinates()); $c2 = Coordinate::columnIndexFromString($column) - 1; $r2 = $row - 1; diff --git a/src/PhpSpreadsheet/Writer/Xls/Parser.php b/src/PhpSpreadsheet/Writer/Xls/Parser.php index 6049e328..625a243d 100644 --- a/src/PhpSpreadsheet/Writer/Xls/Parser.php +++ b/src/PhpSpreadsheet/Writer/Xls/Parser.php @@ -608,15 +608,15 @@ class Parser // TODO: possible class value 0,1,2 check Formula.pm // Split the range into 2 cell refs if (preg_match('/^(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)\:(\$)?([A-Ia-i]?[A-Za-z])(\$)?(\d+)$/', $range)) { - list($cell1, $cell2) = explode(':', $range); + [$cell1, $cell2] = explode(':', $range); } else { // TODO: use real error codes throw new WriterException('Unknown range separator'); } // Convert the cell references - list($row1, $col1) = $this->cellToPackedRowcol($cell1); - list($row2, $col2) = $this->cellToPackedRowcol($cell2); + [$row1, $col1] = $this->cellToPackedRowcol($cell1); + [$row2, $col2] = $this->cellToPackedRowcol($cell2); // The ptg value depends on the class of the ptg. if ($class == 0) { @@ -644,20 +644,20 @@ class Parser private function convertRange3d($token) { // Split the ref at the ! symbol - list($ext_ref, $range) = PhpspreadsheetWorksheet::extractSheetTitle($token, true); + [$ext_ref, $range] = PhpspreadsheetWorksheet::extractSheetTitle($token, true); // Convert the external reference part (different for BIFF8) $ext_ref = $this->getRefIndex($ext_ref); // Split the range into 2 cell refs - list($cell1, $cell2) = explode(':', $range); + [$cell1, $cell2] = explode(':', $range); // Convert the cell references if (preg_match('/^(\$)?[A-Ia-i]?[A-Za-z](\$)?(\\d+)$/', $cell1)) { - list($row1, $col1) = $this->cellToPackedRowcol($cell1); - list($row2, $col2) = $this->cellToPackedRowcol($cell2); + [$row1, $col1] = $this->cellToPackedRowcol($cell1); + [$row2, $col2] = $this->cellToPackedRowcol($cell2); } else { // It's a rows range (like 26:27) - list($row1, $col1, $row2, $col2) = $this->rangeToPackedRange($cell1 . ':' . $cell2); + [$row1, $col1, $row2, $col2] = $this->rangeToPackedRange($cell1 . ':' . $cell2); } // The ptg value depends on the class of the ptg. @@ -677,7 +677,7 @@ class Parser { // Convert the cell reference $cell_array = $this->cellToPackedRowcol($cell); - list($row, $col) = $cell_array; + [$row, $col] = $cell_array; // The ptg value depends on the class of the ptg. $ptgRef = pack('C', $this->ptg['ptgRefA']); @@ -696,13 +696,13 @@ class Parser private function convertRef3d($cell) { // Split the ref at the ! symbol - list($ext_ref, $cell) = PhpspreadsheetWorksheet::extractSheetTitle($cell, true); + [$ext_ref, $cell] = PhpspreadsheetWorksheet::extractSheetTitle($cell, true); // Convert the external reference part (different for BIFF8) $ext_ref = $this->getRefIndex($ext_ref); // Convert the cell reference part - list($row, $col) = $this->cellToPackedRowcol($cell); + [$row, $col] = $this->cellToPackedRowcol($cell); // The ptg value depends on the class of the ptg. $ptgRef = pack('C', $this->ptg['ptgRef3dA']); @@ -756,7 +756,7 @@ class Parser // Check if there is a sheet range eg., Sheet1:Sheet2. if (preg_match('/:/', $ext_ref)) { - list($sheet_name1, $sheet_name2) = explode(':', $ext_ref); + [$sheet_name1, $sheet_name2] = explode(':', $ext_ref); $sheet1 = $this->getSheetIndex($sheet_name1); if ($sheet1 == -1) { @@ -769,7 +769,7 @@ class Parser // Reverse max and min sheet numbers if necessary if ($sheet1 > $sheet2) { - list($sheet1, $sheet2) = [$sheet2, $sheet1]; + [$sheet1, $sheet2] = [$sheet2, $sheet1]; } } else { // Single sheet name only. $sheet1 = $this->getSheetIndex($ext_ref); @@ -843,7 +843,7 @@ class Parser private function cellToPackedRowcol($cell) { $cell = strtoupper($cell); - list($row, $col, $row_rel, $col_rel) = $this->cellToRowcol($cell); + [$row, $col, $row_rel, $col_rel] = $this->cellToRowcol($cell); if ($col >= 256) { throw new WriterException("Column in: $cell greater than 255"); } @@ -1078,7 +1078,7 @@ class Parser { $this->currentCharacter = 0; $this->formula = $formula; - $this->lookAhead = isset($formula[1]) ? $formula[1] : ''; + $this->lookAhead = $formula[1] ?? ''; $this->advance(); $this->parseTree = $this->condition(); diff --git a/src/PhpSpreadsheet/Writer/Xls/Worksheet.php b/src/PhpSpreadsheet/Writer/Xls/Worksheet.php index db63fa34..d8822d80 100644 --- a/src/PhpSpreadsheet/Writer/Xls/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Xls/Worksheet.php @@ -479,7 +479,7 @@ class Worksheet extends BIFFwriter // Hyperlinks foreach ($phpSheet->getHyperLinkCollection() as $coordinate => $hyperlink) { - list($column, $row) = Coordinate::coordinateFromString($coordinate); + [$column, $row] = Coordinate::coordinateFromString($coordinate); $url = $hyperlink->getUrl(); @@ -1355,17 +1355,17 @@ class Worksheet extends BIFFwriter $selectedCells = Coordinate::splitRange($this->phpSheet->getSelectedCells()); $selectedCells = $selectedCells[0]; if (count($selectedCells) == 2) { - list($first, $last) = $selectedCells; + [$first, $last] = $selectedCells; } else { $first = $selectedCells[0]; $last = $selectedCells[0]; } - list($colFirst, $rwFirst) = Coordinate::coordinateFromString($first); + [$colFirst, $rwFirst] = Coordinate::coordinateFromString($first); $colFirst = Coordinate::columnIndexFromString($colFirst) - 1; // base 0 column index --$rwFirst; // base 0 row index - list($colLast, $rwLast) = Coordinate::coordinateFromString($last); + [$colLast, $rwLast] = Coordinate::coordinateFromString($last); $colLast = Coordinate::columnIndexFromString($colLast) - 1; // base 0 column index --$rwLast; // base 0 row index @@ -1394,11 +1394,11 @@ class Worksheet extends BIFFwriter // Swap last row/col for first row/col as necessary if ($rwFirst > $rwLast) { - list($rwFirst, $rwLast) = [$rwLast, $rwFirst]; + [$rwFirst, $rwLast] = [$rwLast, $rwFirst]; } if ($colFirst > $colLast) { - list($colFirst, $colLast) = [$colLast, $colFirst]; + [$colFirst, $colLast] = [$colLast, $colFirst]; } $header = pack('vv', $record, $length); @@ -1440,9 +1440,9 @@ class Worksheet extends BIFFwriter // extract the row and column indexes $range = Coordinate::splitRange($mergeCell); - list($first, $last) = $range[0]; - list($firstColumn, $firstRow) = Coordinate::coordinateFromString($first); - list($lastColumn, $lastRow) = Coordinate::coordinateFromString($last); + [$first, $last] = $range[0]; + [$firstColumn, $firstRow] = Coordinate::coordinateFromString($first); + [$lastColumn, $lastRow] = Coordinate::coordinateFromString($last); $recordData .= pack('vvvv', $firstRow - 1, $lastRow - 1, Coordinate::columnIndexFromString($firstColumn) - 1, Coordinate::columnIndexFromString($lastColumn) - 1); @@ -1589,11 +1589,11 @@ class Worksheet extends BIFFwriter { $panes = []; if ($this->phpSheet->getFreezePane()) { - list($column, $row) = Coordinate::coordinateFromString($this->phpSheet->getFreezePane()); + [$column, $row] = Coordinate::coordinateFromString($this->phpSheet->getFreezePane()); $panes[0] = Coordinate::columnIndexFromString($column) - 1; $panes[1] = $row - 1; - list($leftMostColumn, $topRow) = Coordinate::coordinateFromString($this->phpSheet->getTopLeftCell()); + [$leftMostColumn, $topRow] = Coordinate::coordinateFromString($this->phpSheet->getTopLeftCell()); //Coordinates are zero-based in xls files $panes[2] = $topRow - 1; $panes[3] = Coordinate::columnIndexFromString($leftMostColumn) - 1; @@ -1602,10 +1602,10 @@ class Worksheet extends BIFFwriter return; } - $x = isset($panes[0]) ? $panes[0] : null; - $y = isset($panes[1]) ? $panes[1] : null; - $rwTop = isset($panes[2]) ? $panes[2] : null; - $colLeft = isset($panes[3]) ? $panes[3] : null; + $x = $panes[0] ?? null; + $y = $panes[1] ?? null; + $rwTop = $panes[2] ?? null; + $colLeft = $panes[3] ?? null; if (count($panes) > 4) { // if Active pane was received $pnnAct = $panes[4]; } else { @@ -2215,7 +2215,7 @@ class Worksheet extends BIFFwriter public function insertBitmap($row, $col, $bitmap, $x = 0, $y = 0, $scale_x = 1, $scale_y = 1) { $bitmap_array = (is_resource($bitmap) ? $this->processBitmapGd($bitmap) : $this->processBitmap($bitmap)); - list($width, $height, $size, $data) = $bitmap_array; + [$width, $height, $size, $data] = $bitmap_array; // Scale the frame of the image. $width *= $scale_x; diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php index 625fd16d..3241d403 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Chart.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Chart.php @@ -1136,7 +1136,7 @@ class Chart extends WriterPart $fillColorValues = $plotSeriesValues->getFillColor(); if ($fillColorValues !== null && is_array($fillColorValues)) { foreach ($plotSeriesValues->getDataValues() as $dataKey => $dataValue) { - $this->writePlotSeriesValuesElement($objWriter, $dataKey, (isset($fillColorValues[$dataKey]) ? $fillColorValues[$dataKey] : 'FF9900')); + $this->writePlotSeriesValuesElement($objWriter, $dataKey, ($fillColorValues[$dataKey] ?? 'FF9900')); } } else { $this->writePlotSeriesValuesElement($objWriter); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Comments.php b/src/PhpSpreadsheet/Writer/Xlsx/Comments.php index 8b08f31f..a95298af 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Comments.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Comments.php @@ -175,7 +175,7 @@ class Comments extends WriterPart private function writeVMLComment(XMLWriter $objWriter, $pCellReference, Comment $pComment) { // Metadata - list($column, $row) = Coordinate::coordinateFromString($pCellReference); + [$column, $row] = Coordinate::coordinateFromString($pCellReference); $column = Coordinate::columnIndexFromString($column); $id = 1024 + $column + $row; $id = substr($id, 0, 4); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php b/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php index b9f8f99b..fd936748 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Workbook.php @@ -339,7 +339,7 @@ class Workbook extends WriterPart $range = Coordinate::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref so we can make the cell ref absolute - list($ws, $range[0]) = Worksheet::extractSheetTitle($range[0], true); + [$ws, $range[0]] = Worksheet::extractSheetTitle($range[0], true); $range[0] = Coordinate::absoluteCoordinate($range[0]); $range[1] = Coordinate::absoluteCoordinate($range[1]); diff --git a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php index 065eaaf1..07bf39bf 100644 --- a/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php +++ b/src/PhpSpreadsheet/Writer/Xlsx/Worksheet.php @@ -251,7 +251,7 @@ class Worksheet extends WriterPart // Pane $pane = ''; if ($pSheet->getFreezePane()) { - list($xSplit, $ySplit) = Coordinate::coordinateFromString($pSheet->getFreezePane()); + [$xSplit, $ySplit] = Coordinate::coordinateFromString($pSheet->getFreezePane()); $xSplit = Coordinate::columnIndexFromString($xSplit); --$xSplit; --$ySplit; @@ -752,7 +752,7 @@ class Worksheet extends WriterPart $range = Coordinate::splitRange($autoFilterRange); $range = $range[0]; // Strip any worksheet ref - list($ws, $range[0]) = PhpspreadsheetWorksheet::extractSheetTitle($range[0], true); + [$ws, $range[0]] = PhpspreadsheetWorksheet::extractSheetTitle($range[0], true); $range = implode(':', $range); $objWriter->writeAttribute('ref', str_replace('$', '', $range)); diff --git a/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php b/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php index 86ca7a3e..4b81fbf4 100644 --- a/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/CalculationTest.php @@ -52,7 +52,7 @@ class CalculationTest extends TestCase */ public function testGetFunctions($category, $functionCall, $argumentCount) { - self::assertInternalType('callable', $functionCall); + self::assertIsCallable($functionCall); } public function providerGetFunctions() diff --git a/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php b/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php index 09da20c9..003ef206 100644 --- a/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/EngineeringTest.php @@ -37,7 +37,7 @@ class EngineeringTest extends TestCase public function testBESSELI($expectedResult, ...$args) { $result = Engineering::BESSELI(...$args); - self::assertEquals($expectedResult, $result, null, self::BESSEL_PRECISION); + self::assertEquals($expectedResult, $result, '', self::BESSEL_PRECISION); } public function providerBESSELI() @@ -53,7 +53,7 @@ class EngineeringTest extends TestCase public function testBESSELJ($expectedResult, ...$args) { $result = Engineering::BESSELJ(...$args); - self::assertEquals($expectedResult, $result, null, self::BESSEL_PRECISION); + self::assertEquals($expectedResult, $result, '', self::BESSEL_PRECISION); } public function providerBESSELJ() @@ -69,7 +69,7 @@ class EngineeringTest extends TestCase public function testBESSELK($expectedResult, ...$args) { $result = Engineering::BESSELK(...$args); - self::assertEquals($expectedResult, $result, null, self::BESSEL_PRECISION); + self::assertEquals($expectedResult, $result, '', self::BESSEL_PRECISION); } public function providerBESSELK() @@ -85,7 +85,7 @@ class EngineeringTest extends TestCase public function testBESSELY($expectedResult, ...$args) { $result = Engineering::BESSELY(...$args); - self::assertEquals($expectedResult, $result, null, self::BESSEL_PRECISION); + self::assertEquals($expectedResult, $result, '', self::BESSEL_PRECISION); } public function providerBESSELY() @@ -100,7 +100,7 @@ class EngineeringTest extends TestCase */ public function testParseComplex() { - list($real, $imaginary, $suffix) = [1.23e-4, 5.67e+8, 'j']; + [$real, $imaginary, $suffix] = [1.23e-4, 5.67e+8, 'j']; $result = Engineering::parseComplex('1.23e-4+5.67e+8j'); $this->assertArrayHasKey('real', $result); @@ -136,7 +136,7 @@ class EngineeringTest extends TestCase public function testIMAGINARY($expectedResult, $value) { $result = Engineering::IMAGINARY($value); - self::assertEquals($expectedResult, $result, null, self::COMPLEX_PRECISION); + self::assertEquals($expectedResult, $result, '', self::COMPLEX_PRECISION); } public function providerIMAGINARY() @@ -153,7 +153,7 @@ class EngineeringTest extends TestCase public function testIMREAL($expectedResult, $value) { $result = Engineering::IMREAL($value); - self::assertEquals($expectedResult, $result, null, self::COMPLEX_PRECISION); + self::assertEquals($expectedResult, $result, '', self::COMPLEX_PRECISION); } public function providerIMREAL() @@ -170,7 +170,7 @@ class EngineeringTest extends TestCase public function testIMABS($expectedResult, $value) { $result = Engineering::IMABS($value); - self::assertEquals($expectedResult, $result, null, self::COMPLEX_PRECISION); + self::assertEquals($expectedResult, $result, '', self::COMPLEX_PRECISION); } public function providerIMABS() @@ -187,7 +187,7 @@ class EngineeringTest extends TestCase public function testIMARGUMENT($expectedResult, $value) { $result = Engineering::IMARGUMENT($value); - self::assertEquals($expectedResult, $result, null, self::COMPLEX_PRECISION); + self::assertEquals($expectedResult, $result, '', self::COMPLEX_PRECISION); } public function providerIMARGUMENT() @@ -618,7 +618,7 @@ class EngineeringTest extends TestCase public function testERF($expectedResult, ...$args) { $result = Engineering::ERF(...$args); - self::assertEquals($expectedResult, $result, null, self::ERF_PRECISION); + self::assertEquals($expectedResult, $result, '', self::ERF_PRECISION); } public function providerERF() @@ -634,7 +634,7 @@ class EngineeringTest extends TestCase public function testERFPRECISE($expectedResult, ...$args) { $result = Engineering::ERFPRECISE(...$args); - self::assertEquals($expectedResult, $result, null, self::ERF_PRECISION); + self::assertEquals($expectedResult, $result, '', self::ERF_PRECISION); } public function providerERFPRECISE() @@ -650,7 +650,7 @@ class EngineeringTest extends TestCase public function testERFC($expectedResult, ...$args) { $result = Engineering::ERFC(...$args); - self::assertEquals($expectedResult, $result, null, self::ERF_PRECISION); + self::assertEquals($expectedResult, $result, '', self::ERF_PRECISION); } public function providerERFC() @@ -714,7 +714,7 @@ class EngineeringTest extends TestCase public function testDEC2BIN($expectedResult, ...$args) { $result = Engineering::DECTOBIN(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerDEC2BIN() @@ -730,7 +730,7 @@ class EngineeringTest extends TestCase public function testDEC2HEX($expectedResult, ...$args) { $result = Engineering::DECTOHEX(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerDEC2HEX() @@ -746,7 +746,7 @@ class EngineeringTest extends TestCase public function testDEC2OCT($expectedResult, ...$args) { $result = Engineering::DECTOOCT(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerDEC2OCT() @@ -762,7 +762,7 @@ class EngineeringTest extends TestCase public function testHEX2BIN($expectedResult, ...$args) { $result = Engineering::HEXTOBIN(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerHEX2BIN() @@ -778,7 +778,7 @@ class EngineeringTest extends TestCase public function testHEX2DEC($expectedResult, ...$args) { $result = Engineering::HEXTODEC(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerHEX2DEC() @@ -794,7 +794,7 @@ class EngineeringTest extends TestCase public function testHEX2OCT($expectedResult, ...$args) { $result = Engineering::HEXTOOCT(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerHEX2OCT() @@ -810,7 +810,7 @@ class EngineeringTest extends TestCase public function testOCT2BIN($expectedResult, ...$args) { $result = Engineering::OCTTOBIN(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerOCT2BIN() @@ -826,7 +826,7 @@ class EngineeringTest extends TestCase public function testOCT2DEC($expectedResult, ...$args) { $result = Engineering::OCTTODEC(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerOCT2DEC() @@ -842,7 +842,7 @@ class EngineeringTest extends TestCase public function testOCT2HEX($expectedResult, ...$args) { $result = Engineering::OCTTOHEX(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerOCT2HEX() @@ -859,7 +859,7 @@ class EngineeringTest extends TestCase public function testBITAND($expectedResult, array $args) { $result = Engineering::BITAND(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerBITAND() @@ -876,7 +876,7 @@ class EngineeringTest extends TestCase public function testBITOR($expectedResult, array $args) { $result = Engineering::BITOR(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerBITOR() @@ -893,7 +893,7 @@ class EngineeringTest extends TestCase public function testBITXOR($expectedResult, array $args) { $result = Engineering::BITXOR(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerBITXOR() @@ -910,7 +910,7 @@ class EngineeringTest extends TestCase public function testBITLSHIFT($expectedResult, array $args) { $result = Engineering::BITLSHIFT(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerBITLSHIFT() @@ -927,7 +927,7 @@ class EngineeringTest extends TestCase public function testBITRSHIFT($expectedResult, array $args) { $result = Engineering::BITRSHIFT(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerBITRSHIFT() @@ -943,7 +943,7 @@ class EngineeringTest extends TestCase public function testDELTA($expectedResult, ...$args) { $result = Engineering::DELTA(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerDELTA() @@ -959,7 +959,7 @@ class EngineeringTest extends TestCase public function testGESTEP($expectedResult, ...$args) { $result = Engineering::GESTEP(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerGESTEP() @@ -970,25 +970,25 @@ class EngineeringTest extends TestCase public function testGetConversionGroups() { $result = Engineering::getConversionGroups(); - self::assertInternalType('array', $result); + self::assertIsArray($result); } public function testGetConversionGroupUnits() { $result = Engineering::getConversionGroupUnits(); - self::assertInternalType('array', $result); + self::assertIsArray($result); } public function testGetConversionGroupUnitDetails() { $result = Engineering::getConversionGroupUnitDetails(); - self::assertInternalType('array', $result); + self::assertIsArray($result); } public function testGetConversionMultipliers() { $result = Engineering::getConversionMultipliers(); - self::assertInternalType('array', $result); + self::assertIsArray($result); } /** @@ -999,7 +999,7 @@ class EngineeringTest extends TestCase public function testCONVERTUOM($expectedResult, ...$args) { $result = Engineering::CONVERTUOM(...$args); - self::assertEquals($expectedResult, $result, null); + self::assertEquals($expectedResult, $result, ''); } public function providerCONVERTUOM() diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateTest.php index 08587336..6628322a 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateTest.php @@ -49,7 +49,7 @@ class DateTest extends TestCase $result = DateTime::DATE(2012, 1, 31); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type $this->assertTrue(is_a($result, 'DateTimeInterface')); // ... with the correct value diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateValueTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateValueTest.php index 937fc10a..2c4e96eb 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateValueTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/DateValueTest.php @@ -2,6 +2,7 @@ namespace PhpOffice\PhpSpreadsheetTests\Calculation\Functions\DateTime; +use DateTimeInterface; use PhpOffice\PhpSpreadsheet\Calculation\DateTime; use PhpOffice\PhpSpreadsheet\Calculation\Functions; use PhpOffice\PhpSpreadsheet\Shared\Date; @@ -47,9 +48,9 @@ class DateValueTest extends TestCase $result = DateTime::DATEVALUE('2012-1-31'); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type - $this->assertTrue(is_a($result, 'DateTimeInterface')); + $this->assertTrue(is_a($result, DateTimeInterface::class)); // ... with the correct value $this->assertEquals($result->format('d-M-Y'), '31-Jan-2012'); } diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EDateTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EDateTest.php index 74c4a388..7f885096 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EDateTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EDateTest.php @@ -48,7 +48,7 @@ class EDateTest extends TestCase $result = DateTime::EDATE('2012-1-26', -1); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type $this->assertTrue(is_a($result, 'DateTimeInterface')); // ... with the correct value diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EoMonthTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EoMonthTest.php index edb9d7ed..6092151a 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EoMonthTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/EoMonthTest.php @@ -48,7 +48,7 @@ class EoMonthTest extends TestCase $result = DateTime::EOMONTH('2012-1-26', -1); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type $this->assertTrue(is_a($result, 'DateTimeInterface')); // ... with the correct value diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeTest.php index 5a0f3b00..61406f5a 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeTest.php @@ -46,7 +46,7 @@ class TimeTest extends TestCase $result = DateTime::TIME(7, 30, 20); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type $this->assertTrue(is_a($result, 'DateTimeInterface')); // ... with the correct value diff --git a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeValueTest.php b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeValueTest.php index 6a45f6a3..4fc09a2d 100644 --- a/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeValueTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/Functions/DateTime/TimeValueTest.php @@ -46,7 +46,7 @@ class TimeValueTest extends TestCase $result = DateTime::TIMEVALUE('7:30:20'); // Must return an object... - $this->assertInternalType('object', $result); + self::assertIsObject($result); // ... of the correct type $this->assertTrue(is_a($result, 'DateTimeInterface')); // ... with the correct value diff --git a/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php b/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php index df2028c0..2e8e7e9d 100644 --- a/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/FunctionsTest.php @@ -114,7 +114,7 @@ class FunctionsTest extends TestCase public function testIsBlank($expectedResult, ...$args) { $result = Functions::isBlank(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsBlank() @@ -130,7 +130,7 @@ class FunctionsTest extends TestCase public function testIsErr($expectedResult, ...$args) { $result = Functions::isErr(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsErr() @@ -146,7 +146,7 @@ class FunctionsTest extends TestCase public function testIsError($expectedResult, ...$args) { $result = Functions::isError(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsError() @@ -162,7 +162,7 @@ class FunctionsTest extends TestCase public function testErrorType($expectedResult, ...$args) { $result = Functions::errorType(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerErrorType() @@ -178,7 +178,7 @@ class FunctionsTest extends TestCase public function testIsLogical($expectedResult, ...$args) { $result = Functions::isLogical(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsLogical() @@ -194,7 +194,7 @@ class FunctionsTest extends TestCase public function testIsNa($expectedResult, ...$args) { $result = Functions::isNa(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsNa() @@ -210,7 +210,7 @@ class FunctionsTest extends TestCase public function testIsNumber($expectedResult, ...$args) { $result = Functions::isNumber(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsNumber() @@ -226,7 +226,7 @@ class FunctionsTest extends TestCase public function testIsText($expectedResult, ...$args) { $result = Functions::isText(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsText() @@ -242,7 +242,7 @@ class FunctionsTest extends TestCase public function testIsNonText($expectedResult, ...$args) { $result = Functions::isNonText(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsNonText() @@ -258,7 +258,7 @@ class FunctionsTest extends TestCase public function testIsEven($expectedResult, ...$args) { $result = Functions::isEven(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsEven() @@ -274,7 +274,7 @@ class FunctionsTest extends TestCase public function testIsOdd($expectedResult, ...$args) { $result = Functions::isOdd(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsOdd() @@ -290,7 +290,7 @@ class FunctionsTest extends TestCase public function testTYPE($expectedResult, ...$args) { $result = Functions::TYPE(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerTYPE() @@ -306,7 +306,7 @@ class FunctionsTest extends TestCase public function testN($expectedResult, ...$args) { $result = Functions::n(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerN() @@ -359,7 +359,7 @@ class FunctionsTest extends TestCase } $result = Functions::isFormula($reference, $ourCell); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerIsFormula() diff --git a/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php b/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php index acf709be..f7f035e7 100644 --- a/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/LookupRefTest.php @@ -178,7 +178,7 @@ class LookupRefTest extends TestCase } $result = LookupRef::FORMULATEXT($reference, $ourCell); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerFormulaText() diff --git a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php index b625727d..32d7605f 100644 --- a/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php +++ b/tests/PhpSpreadsheetTests/Calculation/TextDataTest.php @@ -362,7 +362,7 @@ class TextDataTest extends TestCase StringHelper::setCurrencyCode('$'); $result = TextData::VALUE(...$args); - self::assertEquals($expectedResult, $result, null, 1E-8); + self::assertEquals($expectedResult, $result, '', 1E-8); } public function providerVALUE() @@ -383,7 +383,7 @@ class TextDataTest extends TestCase StringHelper::setCurrencyCode('$'); $result = TextData::EXACT(...$args); - self::assertSame($expectedResult, $result, null); + self::assertSame($expectedResult, $result); } /** diff --git a/tests/PhpSpreadsheetTests/Cell/CoordinateTest.php b/tests/PhpSpreadsheetTests/Cell/CoordinateTest.php index 5136226d..8d041c26 100644 --- a/tests/PhpSpreadsheetTests/Cell/CoordinateTest.php +++ b/tests/PhpSpreadsheetTests/Cell/CoordinateTest.php @@ -243,10 +243,6 @@ class CoordinateTest extends TestCase { $this->expectException(\TypeError::class); - if (PHP_MAJOR_VERSION < 7) { - $this->markTestSkipped('Cannot catch type hinting error with PHP 5.6'); - } - $cellRange = ''; Coordinate::buildRange($cellRange); } diff --git a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php index c450e6e1..1e1b5ecc 100644 --- a/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php +++ b/tests/PhpSpreadsheetTests/Cell/DataTypeTest.php @@ -10,7 +10,7 @@ class DataTypeTest extends TestCase public function testGetErrorCodes() { $result = DataType::getErrorCodes(); - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertGreaterThan(0, count($result)); self::assertArrayHasKey('#NULL!', $result); } diff --git a/tests/PhpSpreadsheetTests/Helper/SampleTest.php b/tests/PhpSpreadsheetTests/Helper/SampleTest.php index a56d7813..121ec148 100644 --- a/tests/PhpSpreadsheetTests/Helper/SampleTest.php +++ b/tests/PhpSpreadsheetTests/Helper/SampleTest.php @@ -21,6 +21,8 @@ class SampleTest extends TestCase }); require $sample; + + self::assertTrue(true); } public function providerSample() diff --git a/tests/PhpSpreadsheetTests/Reader/OdsTest.php b/tests/PhpSpreadsheetTests/Reader/OdsTest.php index 59ae006b..bec85f7b 100644 --- a/tests/PhpSpreadsheetTests/Reader/OdsTest.php +++ b/tests/PhpSpreadsheetTests/Reader/OdsTest.php @@ -240,28 +240,28 @@ class OdsTest extends TestCase $properties = $spreadsheet->getProperties(); // Core Properties -// $this->assertSame('Mark Baker', $properties->getCreator()); - $this->assertSame('Property Test File', $properties->getTitle()); - $this->assertSame('Testing for Properties', $properties->getSubject()); - $this->assertSame('TEST ODS PHPSpreadsheet', $properties->getKeywords()); +// self::assertSame('Mark Baker', $properties->getCreator()); + self::assertSame('Property Test File', $properties->getTitle()); + self::assertSame('Testing for Properties', $properties->getSubject()); + self::assertSame('TEST ODS PHPSpreadsheet', $properties->getKeywords()); // Extended Properties -// $this->assertSame('PHPOffice', $properties->getCompany()); -// $this->assertSame('The Big Boss', $properties->getManager()); +// self::assertSame('PHPOffice', $properties->getCompany()); +// self::assertSame('The Big Boss', $properties->getManager()); // Custom Properties $customProperties = $properties->getCustomProperties(); - $this->assertInternalType('array', $customProperties); + self::assertIsArray($customProperties); $customProperties = array_flip($customProperties); - $this->assertArrayHasKey('TestDate', $customProperties); + self::assertArrayHasKey('TestDate', $customProperties); foreach ($customPropertySet as $propertyName => $testData) { - $this->assertTrue($properties->isCustomPropertySet($propertyName)); - $this->assertSame($testData['type'], $properties->getCustomPropertyType($propertyName)); + self::assertTrue($properties->isCustomPropertySet($propertyName)); + self::assertSame($testData['type'], $properties->getCustomPropertyType($propertyName)); if ($properties->getCustomPropertyType($propertyName) == Properties::PROPERTY_TYPE_DATE) { - $this->assertSame($testData['value'], date('Y-m-d', $properties->getCustomPropertyValue($propertyName))); + self::assertSame($testData['value'], date('Y-m-d', $properties->getCustomPropertyValue($propertyName))); } else { - $this->assertSame($testData['value'], $properties->getCustomPropertyValue($propertyName)); + self::assertSame($testData['value'], $properties->getCustomPropertyValue($propertyName)); } } } diff --git a/tests/PhpSpreadsheetTests/Reader/Security/XmlScannerTest.php b/tests/PhpSpreadsheetTests/Reader/Security/XmlScannerTest.php index c1d7fa38..0d9fc13f 100644 --- a/tests/PhpSpreadsheetTests/Reader/Security/XmlScannerTest.php +++ b/tests/PhpSpreadsheetTests/Reader/Security/XmlScannerTest.php @@ -82,7 +82,7 @@ class XmlScannerTest extends TestCase $scanner = $fileReader->getSecurityScanner(); // Must return an object... - $this->assertInternalType('object', $scanner); + self::assertIsObject($scanner); // ... of the correct type $this->assertInstanceOf(XmlScanner::class, $scanner); } diff --git a/tests/PhpSpreadsheetTests/Reader/XlsxTest.php b/tests/PhpSpreadsheetTests/Reader/XlsxTest.php index 5cf6f93f..1180aacc 100644 --- a/tests/PhpSpreadsheetTests/Reader/XlsxTest.php +++ b/tests/PhpSpreadsheetTests/Reader/XlsxTest.php @@ -40,7 +40,7 @@ class XlsxTest extends TestCase // Custom Properties $customProperties = $properties->getCustomProperties(); - $this->assertInternalType('array', $customProperties); + self::assertIsArray($customProperties); $customProperties = array_flip($customProperties); $this->assertArrayHasKey('Publisher', $customProperties); diff --git a/tests/PhpSpreadsheetTests/Shared/DateTest.php b/tests/PhpSpreadsheetTests/Shared/DateTest.php index 4a5479ef..5de34702 100644 --- a/tests/PhpSpreadsheetTests/Shared/DateTest.php +++ b/tests/PhpSpreadsheetTests/Shared/DateTest.php @@ -55,7 +55,7 @@ class DateTest extends TestCase Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $result = Date::timestampToExcel(...$args); - self::assertEquals($expectedResult, $result, null, 1E-5); + self::assertEquals($expectedResult, $result, '', 1E-5); } public function providerDateTimeTimestampToExcel1900() @@ -73,7 +73,7 @@ class DateTest extends TestCase Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $result = Date::dateTimeToExcel(...$args); - self::assertEquals($expectedResult, $result, null, 1E-5); + self::assertEquals($expectedResult, $result, '', 1E-5); } public function providerDateTimeDateTimeToExcel() @@ -91,7 +91,7 @@ class DateTest extends TestCase Date::setExcelCalendar(Date::CALENDAR_WINDOWS_1900); $result = Date::formattedPHPToExcel(...$args); - self::assertEquals($expectedResult, $result, null, 1E-5); + self::assertEquals($expectedResult, $result, '', 1E-5); } public function providerDateTimeFormattedPHPToExcel1900() @@ -127,7 +127,7 @@ class DateTest extends TestCase Date::setExcelCalendar(Date::CALENDAR_MAC_1904); $result = Date::timestampToExcel(...$args); - self::assertEquals($expectedResult, $result, null, 1E-5); + self::assertEquals($expectedResult, $result, '', 1E-5); } public function providerDateTimeTimestampToExcel1904() diff --git a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php index 9ce636d8..855de2bc 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/AutoFilter/ColumnTest.php @@ -127,7 +127,7 @@ class ColumnTest extends TestCase $this->testAutoFilterColumnObject->setAttributes($attributeSet); $result = $this->testAutoFilterColumnObject->getAttributes(); - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(count($attributeSet), $result); } diff --git a/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php b/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php index 6766aac8..aa66eb8e 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/AutoFilterTest.php @@ -111,7 +111,7 @@ class AutoFilterTest extends TestCase { // There should be no columns yet defined $result = $this->testAutoFilterObject->getColumns(); - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(0, $result); } @@ -151,7 +151,7 @@ class AutoFilterTest extends TestCase $result = $this->testAutoFilterObject->getColumns(); // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(1, $result); self::assertArrayHasKey($expectedResult, $result); self::assertInstanceOf(Column::class, $result[$expectedResult]); @@ -178,7 +178,7 @@ class AutoFilterTest extends TestCase $result = $this->testAutoFilterObject->getColumns(); // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(1, $result); self::assertArrayHasKey($expectedResult, $result); self::assertInstanceOf(Column::class, $result[$expectedResult]); @@ -211,7 +211,7 @@ class AutoFilterTest extends TestCase $result = $this->testAutoFilterObject->getColumns(); // Result should be an array of \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet\AutoFilter\Column // objects for each column we set indexed by the column ID - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(count($columnIndexes), $result); foreach ($columnIndexes as $columnIndex) { self::assertArrayHasKey($columnIndex, $result); @@ -288,7 +288,7 @@ class AutoFilterTest extends TestCase // Column array should be cleared $result = $this->testAutoFilterObject->getColumns(); - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(0, $result); } @@ -318,7 +318,7 @@ class AutoFilterTest extends TestCase // Only columns that existed in the original range and that // still fall within the new range should be retained $result = $this->testAutoFilterObject->getColumns(); - self::assertInternalType('array', $result); + self::assertIsArray($result); self::assertCount(count($columnIndexes1), $result); } diff --git a/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php b/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php index 46df9405..ce2df837 100644 --- a/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php +++ b/tests/PhpSpreadsheetTests/Worksheet/WorksheetTest.php @@ -137,6 +137,7 @@ class WorksheetTest extends TestCase ['B2', '', '', 'B2'], ['testTitle!B2', 'testTitle', 'B2', 'B2'], ['test!Title!B2', 'test!Title', 'B2', 'B2'], + ['test Title!B2', 'test Title', 'B2', 'B2'], ]; } diff --git a/tests/data/Calculation/Functions/ISFORMULA.php b/tests/data/Calculation/Functions/ISFORMULA.php index 9e0d0d0b..60d9c07f 100644 --- a/tests/data/Calculation/Functions/ISFORMULA.php +++ b/tests/data/Calculation/Functions/ISFORMULA.php @@ -81,4 +81,14 @@ return [ '\'Worksheet1\'!A16', '123', ], + [ + true, + 'A17', + '=\'Work sheet1\'!A1', + ], + [ + true, + 'A18', + '=\'Work!sheet1\'!A1', + ], ]; diff --git a/tests/data/Calculation/LookupRef/FORMULATEXT.php b/tests/data/Calculation/LookupRef/FORMULATEXT.php index 30b2d6eb..48d528bf 100644 --- a/tests/data/Calculation/LookupRef/FORMULATEXT.php +++ b/tests/data/Calculation/LookupRef/FORMULATEXT.php @@ -21,11 +21,26 @@ return [ 'A4', '=\'Worksheet1\'!A1', ], + [ + '=\'Works heet1\'!A1', + 'A4', + '=\'Works heet1\'!A1', + ], [ '="HELLO WORLD"', '\'Worksheet1\'!A5', '="HELLO WORLD"', ], + [ + '="HELLO WORLD"', + '\'Work sheet1\'!A5', + '="HELLO WORLD"', + ], + [ + '="HELLO WORLD"', + '\'Work!sheet1\'!A5', + '="HELLO WORLD"', + ], [ '#N/A', '\'Worksheet1\'!A6', diff --git a/tests/data/Calculation/TextData/TEXT.php b/tests/data/Calculation/TextData/TEXT.php index e92f4a2e..fcb05191 100644 --- a/tests/data/Calculation/TextData/TEXT.php +++ b/tests/data/Calculation/TextData/TEXT.php @@ -37,17 +37,17 @@ return [ '#,##0.00', ], [ - '1.23E05', + '1.23E+5', 123456.789, '0.00E+00', ], [ - '-1.23E05', + '-1.23E+5', -123456.789, '0.00E+00', ], [ - '1.23E-05', + '1.23E-5', 1.2345E-5, '0.00E+00', ], diff --git a/tests/data/Style/NumberFormat.php b/tests/data/Style/NumberFormat.php index 4c3b2f14..b7c39b3a 100644 --- a/tests/data/Style/NumberFormat.php +++ b/tests/data/Style/NumberFormat.php @@ -29,7 +29,7 @@ return [ '##0', ], [ - '12.0', + '12.00', 12, '#.0#', ], @@ -263,12 +263,12 @@ return [ [ '-70', -70, - '#,##0;[Red]-#,##0' + '#,##0;[Red]-#,##0', ], [ '-12,345', -12345, - '#,##0;[Red]-#,##0' + '#,##0;[Red]-#,##0', ], // Multiple colors [