oleibman
Repos
4
Followers
2

Events

pull request closed
Calculation suppressFormulaErrors - Minor Breaks

Fix #1531. Calculation has a property suppressFormulaErrors, which really doesn't work as one might expect. If a calculation throws an exception, the setting of this property might prevent the Exception from being thrown, but it will still trigger an Error. I do not think this makes sense, and will change it so the calculation will return false, which is part of the original design but which would essentially never happen. This allows the user to save a corrupt spreadsheet, but this was already possible through the use of setPreCalculateFormulas(false) on the Writer, so this doesn't really open any new exposures. It nevertheless might be considered a breaking change because of the difference in behavior.

Another break - the visibility of the property is changed from public to private, and a public setter/getter is added.

Although I am enabling this ability, I don't necessarily think it's a good idea to make use of it. See the original issue for a discussion of why. It is not mentioned in the official documentation, and I will not be adding documentation for it. The originator discovered it by reading the code, and I think that is sufficient for what will often be an ill-advised choice.

Many of the large number (unfortunately not quite all) of problems with Calculation.php in phpstan baseline are addressed. Of note are that private arrays phpSpreadsheetFunctions, controlFunctions, comparisonOperators, and operatorPrecedence are changed from static to const.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [x] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 14 hours ago
issue comment
Calculation suppressFormulaErrors - Minor Breaks

Superseded by 3092. Closing.

Created at 14 hours ago
issue comment
suppressFormulaErrors is not configurable

Had to replace 3082 with 3091 for some reason. Essentially the same change.

Created at 16 hours ago
pull request opened
Calculation suppressFormulaErrors - Minor Break and Deprecation

Fix #1531. This is a replacement for PR #3081 (see last paragraph below), which I will close.

Calculation has a property suppressFormulaErrors, which really doesn't work as one might expect. If a calculation throws an exception, the setting of this property might prevent the Exception from being thrown, but it will still trigger an Error. I do not think this makes sense, and will change it so the calculation will return false, which is part of the original design but which would essentially never happen. This allows the user to save a corrupt spreadsheet, but this was already possible through the use of setPreCalculateFormulas(false) on the Writer, so this doesn't really open any new exposures. It nevertheless might be considered a breaking change because of the difference in behavior.

Deprecation - the visibility of the existing property is public, which means it can be changed directly. A new private property is added with a public setter/getter. The new property will be used when the existing property is null (default), which will allow the existing property to be deprecated.

Function getFunctions is changed to static - the array which it returns is static. Existing callers using it as non-static will still function correctly.

Although I am enabling this ability, I don't necessarily think it's a good idea to make use of it. See the original issue for a discussion of why. It is not mentioned in the official documentation, and I will not be adding documentation for it. The originator discovered it by reading the code, and I think that is sufficient for what will often be an ill-advised choice.

Many of the large number of problems with Calculation.php in phpstan baseline are addressed. PR 3081 ran afoul of something in phpstan. The changes in this ticket are more limited, adding a number of doc blocks but leaving executable code unchanged.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [x] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 16 hours ago
create branch
oleibman create branch nocalcthrow3
Created at 16 hours ago
issue comment
Calculation suppressFormulaErrors - Minor Breaks

Phpstan failure does not seem to be the result of a botched merge. I will resubmit a less ambitious PR.

Created at 23 hours ago
delete branch
oleibman delete branch syncmpdf
Created at 1 day ago

Sync mpdf in composer.lock (#3091)

Composer was complaining locally.

Created at 1 day ago

Sync mpdf in composer.lock (#3091)

Composer was complaining locally.

Created at 1 day ago
pull request closed
Sync mpdf in composer.lock

Composer was complaining locally.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [ ] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 1 day ago
pull request opened
Sync mpdf in composer.lock

Composer was complaining locally.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [ ] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 1 day ago
create branch
oleibman create branch syncmpdf
Created at 1 day ago

More Carets in composer.json (#3090)

  • More Carets in composer.json

Following up on PR #3086, there are 3 additional items in the require-dev section that should have carets. I probably accidentally removed them for tcpdf and mitoteam, which point to the current release anyhow. Dependabot appears to be responsible for mpdf, which is not pointing to the current release, but I have tested with current successfully.

  • Minor Fix for Change Made Earlier Today

"Scrutinizer Tweak" causes a Phpstan error. Fix baseline to correct it.

Xlsx Reader External Data Validations Flag Missing (#3078)

  • Xlsx Reader External Data Validations Flag Missing

Fix #2677. This PR supersedes #2679, written by @technghiath, which lacks tests, and probably doesn't solve the problem entirely. The code causing the problem appears to be the last remnant in Xlsx Reader which calls children using a namespace prefix rather than a namespace. That is changed, and tests are added where the tag is unexpectedly missing, and also where it uses a non-standard namespace prefix.

  • Scrutinizer

Reports 1 "new" error. It isn't, but fix it anyhow.

  • Fix One Existing Scrutinizer Problem

Only remaining problem in Reader/Xlsx.

Created at 1 day ago
pull request closed
Add Condition When Read Property On Null

This is:

- [x] a bugfix
- [ ] a new feature

Checklist:

  • [ ] Changes are covered by unit tests
  • [ ] Code style is respected
  • [ ] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Add Condition When Read Property On Null Related issue: https://github.com/PHPOffice/PhpSpreadsheet/issues/2677

Created at 1 day ago
issue comment
Add Condition When Read Property On Null

Superseded by 3078 which was just merged. Closing.

Created at 1 day ago

Xlsx Reader External Data Validations Flag Missing (#3078)

  • Xlsx Reader External Data Validations Flag Missing

Fix #2677. This PR supersedes #2679, written by @technghiath, which lacks tests, and probably doesn't solve the problem entirely. The code causing the problem appears to be the last remnant in Xlsx Reader which calls children using a namespace prefix rather than a namespace. That is changed, and tests are added where the tag is unexpectedly missing, and also where it uses a non-standard namespace prefix.

  • Scrutinizer

Reports 1 "new" error. It isn't, but fix it anyhow.

  • Fix One Existing Scrutinizer Problem

Only remaining problem in Reader/Xlsx.

Created at 1 day ago
Attempt to read property "f" on null

This is:

- [x] a bug report
- [ ] a feature request
- [ ] **not** a usage question (ask them on https://stackoverflow.com/questions/tagged/phpspreadsheet or https://gitter.im/PHPOffice/PhpSpreadsheet)

What is the expected behavior?

  • Not appear ErrorException

What is the current behavior?

  • I received an ErrorException, but I don't know which cell it is from from the excel template file image

What are the steps to reproduce?

I would like to create PR fix as below:

....
$node->addAttribute('sqref', $item->children('xm', true)->sqref ?? null);
$node->addChild('formula1', $item->formula1->children('xm', true)->f ?? null);
....

I'm worried, will this affect performance?

Please provide a Minimal, Complete, and Verifiable example of code that exhibits the issue without relying on an external Excel file or a web server:

...src\PhpSpreadsheet\Reader\Xlsx.php
....
    /**
     * Loads Spreadsheet from file.
     */
    public function load(string $filename, int $flags = 0): Spreadsheet
    {
       ...
        $node->addAttribute('sqref', $item->children('xm', true)->sqref);
        $node->addChild('formula1', $item->formula1->children('xm', true)->f);
      ...
    }

https://github.com/PHPOffice/PhpSpreadsheet/blob/master/src/PhpSpreadsheet/Reader/Xlsx.php#L901-L902

Which versions of PhpSpreadsheet and PHP are affected?

Created at 1 day ago
pull request closed
Xlsx Reader External Data Validations Flag Missing

Fix #2677. This PR supersedes #2679, written by @technghiath, which lacks tests, and probably doesn't solve the problem entirely. The code causing the problem appears to be the last remnant in Xlsx Reader which calls children using a namespace prefix rather than a namespace. That is changed, and tests are added where the tag is unexpectedly missing, and also where it uses a non-standard namespace prefix.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [x] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 1 day ago

Add throws tag to writer::save

Do not remove @throws

Merge branch 'master' into writerSave

Merge pull request #2959 from VincentLanglet/writerSave

Add throws tag to Writer::save method

Minor cosmetic changes

Minor cosmetic changes

Correct update to named ranges and formulae when inserting/deleting columns/rows

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge remote-tracking branch 'origin/Issue-3076_Insert-Row-with-Defined-Names-Examples' into Issue-3076_Insert-Row-with-Defined-Names-Examples

Conflicts:

src/PhpSpreadsheet/ReferenceHelper.php

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge pull request #3077 from PHPOffice/Issue-3076_Insert-Row-with-Defined-Names-Examples

Correct update to named ranges and formulae when inserting/deleting columns/rows

Minor tweak

Minor tweak

1.25.0 - 2022-09-25

Added

  • Implementation of the new TEXTBEFORE(), TEXTAFTER() and TEXTSPLIT() Excel Functions
  • Implementation of the ARRAYTOTEXT() and VALUETOTEXT() Excel Functions
  • Support for mitoteam/jpgraph implementation of JpGraph library to render charts added.
  • Charts: Add Gradients, Transparency, Hidden Axes, Rounded Corners, Trendlines, Date Axes.

Changed

  • Allow variant behaviour when merging cells Issue #3065
    • Merge methods now allow an additional $behaviour argument. Permitted values are:
      • Worksheet::MERGE_CELL_CONTENT_EMPTY - Empty the content of the hidden cells (the default behaviour)
      • Worksheet::MERGE_CELL_CONTENT_HIDE - Keep the content of the hidden cells
      • Worksheet::MERGE_CELL_CONTENT_MERGE - Move the content of the hidden cells into the first cell

Deprecated

  • Axis getLineProperty deprecated in favor of getLineColorProperty.
  • Moved majorGridlines and minorGridlines from Chart to Axis. Setting either in Chart constructor or through Chart methods, or getting either using Chart methods is deprecated.
  • Chart::EXCEL_COLOR_TYPE_* copied from Properties to ChartColor; use in Properties is deprecated.
  • ChartColor::EXCEL_COLOR_TYPE_ARGB deprecated in favor of EXCEL_COLOR_TYPE_RGB ("A" component was never allowed).
  • Misspelled Properties::LINE_STYLE_DASH_SQUERE_DOT deprecated in favor of LINE_STYLE_DASH_SQUARE_DOT.
  • Clone not permitted for Spreadsheet. Spreadsheet->copy() can be used instead.

Removed

  • Nothing

Fixed

Prepare Change Log for next release

Fix ezyang/htmlpurifier caret version range

Merge pull request #3086 from BrokenSourceCode/master

Fix ezyang/htmlpurifier caret version range

Minor tweak for phpstan and pathinfo return array

Merge remote-tracking branch 'origin/master'

Minor tweak for phpstan and pathinfo return array

Created at 1 day ago
issue comment
Calculation suppressFormulaErrors - Minor Breaks

Phpstan seems to be timing out, for reasons which I do not understand. I may have to cancel this PR and submit another in its place.

Created at 1 day ago

Add throws tag to writer::save

Do not remove @throws

Merge branch 'master' into writerSave

Merge pull request #2959 from VincentLanglet/writerSave

Add throws tag to Writer::save method

Minor cosmetic changes

Minor cosmetic changes

Correct update to named ranges and formulae when inserting/deleting columns/rows

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge remote-tracking branch 'origin/Issue-3076_Insert-Row-with-Defined-Names-Examples' into Issue-3076_Insert-Row-with-Defined-Names-Examples

Conflicts:

src/PhpSpreadsheet/ReferenceHelper.php

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge pull request #3077 from PHPOffice/Issue-3076_Insert-Row-with-Defined-Names-Examples

Correct update to named ranges and formulae when inserting/deleting columns/rows

Minor tweak

Minor tweak

1.25.0 - 2022-09-25

Added

  • Implementation of the new TEXTBEFORE(), TEXTAFTER() and TEXTSPLIT() Excel Functions
  • Implementation of the ARRAYTOTEXT() and VALUETOTEXT() Excel Functions
  • Support for mitoteam/jpgraph implementation of JpGraph library to render charts added.
  • Charts: Add Gradients, Transparency, Hidden Axes, Rounded Corners, Trendlines, Date Axes.

Changed

  • Allow variant behaviour when merging cells Issue #3065
    • Merge methods now allow an additional $behaviour argument. Permitted values are:
      • Worksheet::MERGE_CELL_CONTENT_EMPTY - Empty the content of the hidden cells (the default behaviour)
      • Worksheet::MERGE_CELL_CONTENT_HIDE - Keep the content of the hidden cells
      • Worksheet::MERGE_CELL_CONTENT_MERGE - Move the content of the hidden cells into the first cell

Deprecated

  • Axis getLineProperty deprecated in favor of getLineColorProperty.
  • Moved majorGridlines and minorGridlines from Chart to Axis. Setting either in Chart constructor or through Chart methods, or getting either using Chart methods is deprecated.
  • Chart::EXCEL_COLOR_TYPE_* copied from Properties to ChartColor; use in Properties is deprecated.
  • ChartColor::EXCEL_COLOR_TYPE_ARGB deprecated in favor of EXCEL_COLOR_TYPE_RGB ("A" component was never allowed).
  • Misspelled Properties::LINE_STYLE_DASH_SQUERE_DOT deprecated in favor of LINE_STYLE_DASH_SQUARE_DOT.
  • Clone not permitted for Spreadsheet. Spreadsheet->copy() can be used instead.

Removed

  • Nothing

Fixed

Prepare Change Log for next release

Fix ezyang/htmlpurifier caret version range

Merge pull request #3086 from BrokenSourceCode/master

Fix ezyang/htmlpurifier caret version range

Minor tweak for phpstan and pathinfo return array

Merge remote-tracking branch 'origin/master'

Minor tweak for phpstan and pathinfo return array

Created at 1 day ago

More Carets in composer.json (#3090)

  • More Carets in composer.json

Following up on PR #3086, there are 3 additional items in the require-dev section that should have carets. I probably accidentally removed them for tcpdf and mitoteam, which point to the current release anyhow. Dependabot appears to be responsible for mpdf, which is not pointing to the current release, but I have tested with current successfully.

  • Minor Fix for Change Made Earlier Today

"Scrutinizer Tweak" causes a Phpstan error. Fix baseline to correct it.

Created at 1 day ago
pull request closed
More Carets in composer.json

Following up on PR #3086, there are 3 additional items in the require-dev section that should have carets. I probably accidentally removed them for tcpdf and mitoteam, which point to the current release anyhow. Dependabot appears to be responsible for mpdf, which is not pointing to the current release, but I have tested with current successfully.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [ ] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 1 day ago

Minor Fix for Change Made Earlier Today

"Scrutinizer Tweak" causes a Phpstan error. Fix baseline to correct it.

Created at 1 day ago
pull request opened
More Carets in composer.json

Following up on PR #3086, there are 3 additional items in the require-dev section that should have carets. I probably accidentally removed them for tcpdf and mitoteam, which point to the current release anyhow. Dependabot appears to be responsible for mpdf, which is not pointing to the current release, but I have tested with current successfully.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [ ] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 1 day ago
create branch
oleibman create branch caretchg
Created at 1 day ago

Add throws tag to writer::save

Do not remove @throws

Merge branch 'master' into writerSave

Merge pull request #2959 from VincentLanglet/writerSave

Add throws tag to Writer::save method

Minor cosmetic changes

Minor cosmetic changes

Correct update to named ranges and formulae when inserting/deleting columns/rows

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge remote-tracking branch 'origin/Issue-3076_Insert-Row-with-Defined-Names-Examples' into Issue-3076_Insert-Row-with-Defined-Names-Examples

Conflicts:

src/PhpSpreadsheet/ReferenceHelper.php

Correct update to named ranges and formulae when inserting/deleting columns/rows

Merge pull request #3077 from PHPOffice/Issue-3076_Insert-Row-with-Defined-Names-Examples

Correct update to named ranges and formulae when inserting/deleting columns/rows

Minor tweak

Minor tweak

1.25.0 - 2022-09-25

Added

  • Implementation of the new TEXTBEFORE(), TEXTAFTER() and TEXTSPLIT() Excel Functions
  • Implementation of the ARRAYTOTEXT() and VALUETOTEXT() Excel Functions
  • Support for mitoteam/jpgraph implementation of JpGraph library to render charts added.
  • Charts: Add Gradients, Transparency, Hidden Axes, Rounded Corners, Trendlines, Date Axes.

Changed

  • Allow variant behaviour when merging cells Issue #3065
    • Merge methods now allow an additional $behaviour argument. Permitted values are:
      • Worksheet::MERGE_CELL_CONTENT_EMPTY - Empty the content of the hidden cells (the default behaviour)
      • Worksheet::MERGE_CELL_CONTENT_HIDE - Keep the content of the hidden cells
      • Worksheet::MERGE_CELL_CONTENT_MERGE - Move the content of the hidden cells into the first cell

Deprecated

  • Axis getLineProperty deprecated in favor of getLineColorProperty.
  • Moved majorGridlines and minorGridlines from Chart to Axis. Setting either in Chart constructor or through Chart methods, or getting either using Chart methods is deprecated.
  • Chart::EXCEL_COLOR_TYPE_* copied from Properties to ChartColor; use in Properties is deprecated.
  • ChartColor::EXCEL_COLOR_TYPE_ARGB deprecated in favor of EXCEL_COLOR_TYPE_RGB ("A" component was never allowed).
  • Misspelled Properties::LINE_STYLE_DASH_SQUERE_DOT deprecated in favor of LINE_STYLE_DASH_SQUARE_DOT.
  • Clone not permitted for Spreadsheet. Spreadsheet->copy() can be used instead.

Removed

  • Nothing

Fixed

Prepare Change Log for next release

Fix ezyang/htmlpurifier caret version range

Merge pull request #3086 from BrokenSourceCode/master

Fix ezyang/htmlpurifier caret version range

Minor tweak for phpstan and pathinfo return array

Merge remote-tracking branch 'origin/master'

Minor tweak for phpstan and pathinfo return array

Created at 1 day ago
issue comment
Calculation suppressFormulaErrors - Minor Breaks

No interest in resolving Scrutinizer failure. One method needed to add some tests for null in order to satisfy Phpstan; Scrutinizer says these extra checks changed complexity from B to C, which is a failure condition. C'est la vie.

Created at 5 days ago
issue comment
suppressFormulaErrors is not configurable

See PR #3081. I have met you at least part way. It is now configurable, and allows continuation when an exception is thrown in Calculation. It will not attempt to do anything about the cell in error; the result will be false, but any attempt by PhpSpreadsheet to alter the user's data (e.g. your suggestion of adding a comment) is way out of scope. Therefore Excel will still pop up "we found a problem" when the file is opened.

Created at 5 days ago
pull request opened
Calculation suppressFormulaErrors - Minor Breaks

Fix #1531. Calculation has a property suppressFormulaErrors, which really doesn't work as one might expect. If a calculation throws an exception, the setting of this property might prevent the Exception from being thrown, but it will still trigger an Error. I do not think this makes sense, and will change it so the calculation will return false, which is part of the original design but which would essentially never happen. This allows the user to save a corrupt spreadsheet, but this was already possible through the use of setPreCalculateFormulas(false) on the Writer, so this doesn't really open any new exposures. It nevertheless might be considered a breaking change because of the difference in behavior.

Another break - the visibility of the property is changed from public to private, and a public setter/getter is added.

Although I am enabling this ability, I don't necessarily think it's a good idea to make use of it. See the original issue for a discussion of why. It is not mentioned in the official documentation, and I will not be adding documentation for it. The originator discovered it by reading the code, and I think that is sufficient for what will often be an ill-advised choice.

Many of the large number (unfortunately not quite all) of problems with Calculation.php in phpstan baseline are addressed. Of note are that private arrays phpSpreadsheetFunctions, controlFunctions, comparisonOperators, and operatorPrecedence are changed from static to const.

This is:

- [x] a bugfix
- [ ] a new feature
- [ ] refactoring
- [ ] additional unit tests

Checklist:

  • [x] Changes are covered by unit tests
    • [x] Changes are covered by existing unit tests
    • [x] New unit tests have been added
  • [x] Code style is respected
  • [x] Commit message explains why the change is made (see https://github.com/erlang/otp/wiki/Writing-good-commit-messages)
  • [ ] CHANGELOG.md contains a short summary of the change
  • [ ] Documentation is updated as necessary

Why this change is needed?

Provide an explanation of why this change is needed, with links to any Issues (if appropriate). If this is a bugfix or a new feature, and there are no existing Issues, then please also create an issue that will make it easier to track progress with this PR.

Created at 5 days ago