* Test Protocol Not Supplied Before Using is_file
* added missing assertFile and renamed prohibitPhar
* More Tests
---------
Co-authored-by: calligraf0 <115566010+calligraf0@users.noreply.github.com>
Too many errors when Dependabot tried. These seem mostly to involve `implode`, whose use is often embedded in other function calls. For that reason, these changes include a higher proportion than usual of `// @phpstan-ignore-line`.
A follow-up to PR #4837. PR #4827, to which I am not necessarily committed, shows that there could be a use case for letting a user perform customized logic to convert a non-UTF8-encoded CSV. In addition, several other CSV Reader properties require the use of static or locale properties, which is somewhat problematic; this PR allows them to be set as instance variables, falling back to static/locale only when unset.
Fix#1453, which went stale in 2000, which I unstaled in 2024, and which I finally got to. The code, and several unit tests, was substantially generated by AI, my first foray into that frontier.
Trait `ArrayEnabled` is not able to handle this function because it has too many array parameters. I would have liked to update it to handle this, but that seemed too difficult. I have let the code do its own array handling; it looks a little kludgey but seems to do the job. I may return to this at some point.
Drop the clone-based copy() since benchmark results vary across PHP
versions and platforms. Keep the benchmark test (renamed to end in Test)
in a separate testsuite so users can assess which approach suits their
environment. Add docblock @see references on copy() and __clone().
# This is the 1st commit message:
Integrated unit test to capture the bug.
# This is the commit message #2:
Added Date.safeModify() method for secure DateTime modifications and integrated exception handling - Fixed#4840.
# This is the commit message #3:
PHPCS Fixes.
# This is the commit message #4:
PHPCS Fixes.
# This is the commit message #5:
Codestyle fix.
# This is the commit message #6:
Added description to CHANGELOG.md.
# This is the commit message #7:
Enhanced Date.safeModify() to ensure consistent exception handling across PHP versions, addressing changes in DateTime::modify() behavior in PHP 8.3 - #4840.
# This is the commit message #8:
Confusion Checking for Union Arguments
Fix#4832. PR #4657 added support for passing union arguments to functions. User reports a problem with a peculiar formula afterwards. See issue for details - the very loose restrictions placed on worksheet names can lead to an ambiguous situation for the parser.
This problem arose with a function whose first argument was a cell address *including sheet name*. Parser is changed to try to avoid this situation. If the regular expression which tells us we have a potential need for union has a left parenthesis in the "sheet name" without a right parenthesis, then it will no longer try to treat the formula as containing union arguments except in the unlikely event that "sheet name" truly is a worksheet title in the spreadsheet. This feels pretty kludgey, but it solves the problem at hand, and seems unlikely to cause problems. There may still be edge cases more subtle than the one in the issue; I am satisfied to wait for reports of such.
# This is the commit message #9:
Weird Regexp Difference between Php8.4+ and Php8.3-
Specify codeCoverageIgnore for now, remove later.
# This is the commit message #10:
Move Test to More Sensible Location
# This is the commit message #11:
Ods Reader/Writer Support for Integer Styles with Leading Zero
Fix#1606, which went stale and is now reopened. PR #4806 supplied support for some Number Formats for Ods, but did not directly address this issue. This PR does. In addition to the original issue, this could be useful for zip codes. As I stated in 4806, I may be amenable to adding some unsupported styles to the built-in list, but the custom style option will always be around in case I am being slow or unreasonable.
# This is the commit message #12:
A Bit More Flexibility
And some more tests.
# This is the commit message #13:
Update CHANGELOG.md
Xlsx Writer Support Data URI for Images
Fix#4823. When writing a spreadsheet to Html, a data Uri can be used if `embedImages` is true. Reading such an Html spreadsheet and attempting to write it to Xlsx results in an Exception. It should be noted that Excel itself cannot open the Html properly; none of the images are present.
The PhpSpreadsheet problem arises not with the inclusion of the image, but rather with attempting to include the appropriate entry in `[ContentTypes].xml`. This PR corrects that problem.
For the record, Xls Writer does not have a problem with this situation. Just to demonstrate that, a parallel test for Xls Writer is added in addition to the new Xlsx Writer test.
Update CHANGELOG.md
Update CHANGELOG.md
Added phpcs and php-cs-fixer corrections #4840.
Updated DateTest to handle DateMalformedStringException for PHP 8.3 in excelToDateTimeObject exception tests.
Fixed phpcs issues.
Fixed php-cs-fixer issue.
Updated DateTest so to not directly reference DateMalformedStringException class which is not existing prior to PHP 8.3.
Refactored DateTest to dynamically set the expected exception class, ensuring compatibility across PHP versions.
Removed unused Throwable import and updated expected exception type in DateTest for consistency with PHP version handling.
Added DateMalformedStringException polyfill to solve the phpstan issue.
Fixed phpcs issue.