Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix opcache being loaded twice #9265

Merged
merged 2 commits into from
Feb 13, 2023
Merged

Conversation

weirdan
Copy link
Collaborator

@weirdan weirdan commented Feb 11, 2023

Fixes #9263

@weirdan weirdan added the release:fix The PR will be included in 'Fixes' section of the release notes label Feb 11, 2023
@weirdan weirdan requested a review from danog February 11, 2023 10:44
// executed in the parent process (before restart)
// if it wasn't loaded then we apparently don't have opcache installed and there's no point trying
// to tweak it
if (extension_loaded('opcache') || extension_loaded('Zend OPcache')) {
Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zend OPcache is what the extension called on my system:

$ php -r 'var_dump(["opcache" => extension_loaded("opcache"), "Zend OPcache" => extension_loaded("Zend OPcache")]);'
array(2) {
  'opcache' =>
  bool(false)
  'Zend OPcache' =>
  bool(true)
}

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think using the opcache_get_status function is more reliable, as I did in https://github.com/vimeo/psalm/pull/9240/files

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually it may be less reliable as it can throw warnings depending on the configuration: https://www.php.net/opcache_get_status#refsect1-function.opcache-get-status-errors

@danog
Copy link
Collaborator

danog commented Feb 12, 2023

BTW, my PR @ #9240 also fixes the issue, and imo loading opcache even on 7.4 should improve performance.

@weirdan
Copy link
Collaborator Author

weirdan commented Feb 12, 2023

imo loading opcache even on 7.4 should improve performance.

My stance is that the decision to load the extension or not should be left to the user (with an appropriate suppressible suggestion, as in your PR, when it's not loaded). There could be various reasons why it's not available.

@weirdan weirdan merged commit 08f5b35 into vimeo:master Feb 13, 2023
@weirdan weirdan deleted the fix-opcache-loaded-twice branch February 13, 2023 02:42
tcarrio referenced this pull request in open-feature/php-sdk Mar 11, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [vimeo/psalm](https://togithub.com/vimeo/psalm) | require-dev | minor
| `~5.4.0` -> `~5.8.0` |

---

### Release Notes

<details>
<summary>vimeo/psalm</summary>

### [`v5.8.0`](https://togithub.com/vimeo/psalm/releases/tag/5.8.0)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.7...5.8.0)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Features

- FFI stubs improvement by
[@&#8203;UlrichEckhardt](https://togithub.com/UlrichEckhardt) in
[https://github.com/vimeo/psalm/pull/9368](https://togithub.com/vimeo/psalm/pull/9368)
- Support sizeof alias of count by
[@&#8203;jsanahuja](https://togithub.com/jsanahuja) in
[https://github.com/vimeo/psalm/pull/9375](https://togithub.com/vimeo/psalm/pull/9375)
- Iterated array in `foreach` body is never empty by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9380](https://togithub.com/vimeo/psalm/pull/9380)
- Process `@psalm-api` tags on methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9383](https://togithub.com/vimeo/psalm/pull/9383)
- Enforce literal string length limit by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9381](https://togithub.com/vimeo/psalm/pull/9381)
- \[ibm_db2] Improve return type inference for `db2_autocommit()` by
[@&#8203;phansys](https://togithub.com/phansys) in
[https://github.com/vimeo/psalm/pull/9310](https://togithub.com/vimeo/psalm/pull/9310)
- Only disable grpc extension if it is not properly configured by
[@&#8203;gndk](https://togithub.com/gndk) in
[https://github.com/vimeo/psalm/pull/9398](https://togithub.com/vimeo/psalm/pull/9398)
- PHP 8.3 dictionary by [@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9366](https://togithub.com/vimeo/psalm/pull/9366)
- concat should never remove non empty non falsy from string
[#&#8203;9411](https://togithub.com/vimeo/psalm/issues/9411) by
[@&#8203;EgorBakulin](https://togithub.com/EgorBakulin) in
[https://github.com/vimeo/psalm/pull/9422](https://togithub.com/vimeo/psalm/pull/9422)
- Forbid private final methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9442](https://togithub.com/vimeo/psalm/pull/9442)
- Support for `readonly` classes by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9444](https://togithub.com/vimeo/psalm/pull/9444)
- Consider new HTML entity en/decode function defaults since PHP 8.1 by
[@&#8203;pereorga](https://togithub.com/pereorga) in
[https://github.com/vimeo/psalm/pull/9471](https://togithub.com/vimeo/psalm/pull/9471)

##### Fixes

- Instances of `object` returned by `db2_*()` functions are always
instances of `stdClass` by
[@&#8203;phansys](https://togithub.com/phansys) in
[https://github.com/vimeo/psalm/pull/9369](https://togithub.com/vimeo/psalm/pull/9369)
- Simplify and fix Shepherd to support custom endpoints for reporting by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9296](https://togithub.com/vimeo/psalm/pull/9296)
- Fixes [#&#8203;9384](https://togithub.com/vimeo/psalm/issues/9384)
(Wrong type for variable checked with is_long) by
[@&#8203;ygottschalk](https://togithub.com/ygottschalk) in
[https://github.com/vimeo/psalm/pull/9385](https://togithub.com/vimeo/psalm/pull/9385)
- Update Phar callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9389](https://togithub.com/vimeo/psalm/pull/9389)
- Correctly process use aliases in `@psalm-scope-this` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9390](https://togithub.com/vimeo/psalm/pull/9390)
- Allow `array` as magic method name by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9391](https://togithub.com/vimeo/psalm/pull/9391)
- Consistently report docblock issues on all classlikes by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9392](https://togithub.com/vimeo/psalm/pull/9392)
- \[ibm_db2] Update some return types in callmaps by
[@&#8203;phansys](https://togithub.com/phansys) in
[https://github.com/vimeo/psalm/pull/9387](https://togithub.com/vimeo/psalm/pull/9387)
- Preserve PossiblyUndefinedVariable when fixing UnusedVariable by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/9400](https://togithub.com/vimeo/psalm/pull/9400)
- \[ibm_db2] Update callmaps by
[@&#8203;phansys](https://togithub.com/phansys) in
[https://github.com/vimeo/psalm/pull/9404](https://togithub.com/vimeo/psalm/pull/9404)
- Fix [#&#8203;9401](https://togithub.com/vimeo/psalm/issues/9401) by
[@&#8203;ptomulik](https://togithub.com/ptomulik) in
[https://github.com/vimeo/psalm/pull/9418](https://togithub.com/vimeo/psalm/pull/9418)
- Fix remaining spl and iterator callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9420](https://togithub.com/vimeo/psalm/pull/9420)
- An attempt to fix
[#&#8203;4460](https://togithub.com/vimeo/psalm/issues/4460) by
[@&#8203;ptomulik](https://togithub.com/ptomulik) in
[https://github.com/vimeo/psalm/pull/9415](https://togithub.com/vimeo/psalm/pull/9415)
- `array_pop` is impure by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9434](https://togithub.com/vimeo/psalm/pull/9434)
- Revert "`array_pop` is impure" by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9435](https://togithub.com/vimeo/psalm/pull/9435)
- Update pack() stub by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9438](https://togithub.com/vimeo/psalm/pull/9438)
- Merge param descriptions when adding or updating types by
[@&#8203;aboyton](https://togithub.com/aboyton) in
[https://github.com/vimeo/psalm/pull/9441](https://togithub.com/vimeo/psalm/pull/9441)
- PHP 8.2 attributes moved to 8.2 stub by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9445](https://togithub.com/vimeo/psalm/pull/9445)
- Improce enum case reconciliation by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9457](https://togithub.com/vimeo/psalm/pull/9457)
- Do not strip the last `)` bracket when parsing phpdoc type aliases. by
[@&#8203;pvandommelen](https://togithub.com/pvandommelen) in
[https://github.com/vimeo/psalm/pull/9458](https://togithub.com/vimeo/psalm/pull/9458)
- Replace package-versions with Composer 2 APIs by
[@&#8203;Jean85](https://togithub.com/Jean85) in
[https://github.com/vimeo/psalm/pull/9459](https://togithub.com/vimeo/psalm/pull/9459)
- Fix DOM callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9460](https://togithub.com/vimeo/psalm/pull/9460)
- Don't crash on unary minus overflow by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9466](https://togithub.com/vimeo/psalm/pull/9466)
- Fix remaining intl callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9473](https://togithub.com/vimeo/psalm/pull/9473)

##### Internal changes

- Convert callmap associative-array types into proper array types by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9362](https://togithub.com/vimeo/psalm/pull/9362)
- Callmap is always non-empty by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9405](https://togithub.com/vimeo/psalm/pull/9405)
- Reorganize pushes to `psalm/phar` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9399](https://togithub.com/vimeo/psalm/pull/9399)
- Do not display ext deprecation note when `disableExtensions` used by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9291](https://togithub.com/vimeo/psalm/pull/9291)
- Require `<?php` tag in tests by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9443](https://togithub.com/vimeo/psalm/pull/9443)

#### New Contributors

- [@&#8203;UlrichEckhardt](https://togithub.com/UlrichEckhardt) made
their first contribution in
[https://github.com/vimeo/psalm/pull/9368](https://togithub.com/vimeo/psalm/pull/9368)
- [@&#8203;jsanahuja](https://togithub.com/jsanahuja) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9375](https://togithub.com/vimeo/psalm/pull/9375)
- [@&#8203;EgorBakulin](https://togithub.com/EgorBakulin) made their
first contribution in
[https://github.com/vimeo/psalm/pull/9422](https://togithub.com/vimeo/psalm/pull/9422)
- [@&#8203;pereorga](https://togithub.com/pereorga) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9471](https://togithub.com/vimeo/psalm/pull/9471)

**Full Changelog**: vimeo/psalm@5.7.7...5.8.0

### [`v5.7.7`](https://togithub.com/vimeo/psalm/releases/tag/5.7.7)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.6...5.7.7)

<!-- Release notes generated using configuration in .github/release.yml
at 5.7.x -->

#### What's Changed

##### Fixes

- Don't crash on empty `jit_buffer_size` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9397](https://togithub.com/vimeo/psalm/pull/9397)

**Full Changelog**: vimeo/psalm@5.7.6...5.7.7

### [`v5.7.6`](https://togithub.com/vimeo/psalm/releases/tag/5.7.6)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.5...5.7.6)

<!-- Release notes generated using configuration in .github/release.yml
at 5.7.x -->

#### What's Changed

##### Fixes

- Disable `opcache.preload` if it's enabled by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9388](https://togithub.com/vimeo/psalm/pull/9388)

**Full Changelog**: vimeo/psalm@5.7.5...5.7.6

### [`v5.7.5`](https://togithub.com/vimeo/psalm/releases/tag/5.7.5)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.4...5.7.5)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes

- Workaround opcache issue (fixes
[#&#8203;9363](https://togithub.com/vimeo/psalm/issues/9363)) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9364](https://togithub.com/vimeo/psalm/pull/9364)

**Full Changelog**: vimeo/psalm@5.7.4...5.7.5

### [`v5.7.4`](https://togithub.com/vimeo/psalm/releases/tag/5.7.4)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.3...5.7.4)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes

- Include setrawcookie as an impure function by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/9356](https://togithub.com/vimeo/psalm/pull/9356)
- Fix several spl callmap methods by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9360](https://togithub.com/vimeo/psalm/pull/9360)
- Revert "[#&#8203;7387](https://togithub.com/vimeo/psalm/issues/7387)
Add asserting non-empty-string by strlen" by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9358](https://togithub.com/vimeo/psalm/pull/9358)

**Full Changelog**: vimeo/psalm@5.7.3...5.7.4

### [`v5.7.3`](https://togithub.com/vimeo/psalm/releases/tag/5.7.3)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.2...5.7.3)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes

- Replace use of DOMParentNode::append() with appendChild() by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9354](https://togithub.com/vimeo/psalm/pull/9354)

**Full Changelog**: vimeo/psalm@5.7.2...5.7.3

### [`v5.7.2`](https://togithub.com/vimeo/psalm/releases/tag/5.7.2)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.1...5.7.2)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes

- fix (DateTime|DateTimeImmutable)::modify() return types by
[@&#8203;DaDeather](https://togithub.com/DaDeather) in
[https://github.com/vimeo/psalm/pull/9172](https://togithub.com/vimeo/psalm/pull/9172)
- Workaround arm64 opcache bug (fixes
[#&#8203;9350](https://togithub.com/vimeo/psalm/issues/9350)) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9351](https://togithub.com/vimeo/psalm/pull/9351)

#### New Contributors

- [@&#8203;DaDeather](https://togithub.com/DaDeather) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9172](https://togithub.com/vimeo/psalm/pull/9172)

**Full Changelog**: vimeo/psalm@5.7.1...5.7.2

### [`v5.7.1`](https://togithub.com/vimeo/psalm/releases/tag/5.7.1)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.7.0...5.7.1)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Fixes

- Always use 0x7FFEBFFF opcache optimization level (fixes
[#&#8203;9340](https://togithub.com/vimeo/psalm/issues/9340)) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9342](https://togithub.com/vimeo/psalm/pull/9342)
- Fix `PsalmRestarter::restart()` signature by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9347](https://togithub.com/vimeo/psalm/pull/9347)

**Full Changelog**: vimeo/psalm@5.7.0...5.7.1

### [`v5.7.0`](https://togithub.com/vimeo/psalm/releases/tag/5.7.0)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.6.0...5.7.0)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Deprecations

- Deprecate `FunctionLikeStorage::$unused_docblock_params` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9312](https://togithub.com/vimeo/psalm/pull/9312)

##### Features

- [#&#8203;7387](https://togithub.com/vimeo/psalm/issues/7387) Add
asserting non-empty-string by strlen by
[@&#8203;LeoVie](https://togithub.com/LeoVie) in
[https://github.com/vimeo/psalm/pull/8761](https://togithub.com/vimeo/psalm/pull/8761)
- Forbid implementing some interfaces by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9272](https://togithub.com/vimeo/psalm/pull/9272)
- Added issue type and psalm.dev link to Emacs report by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9299](https://togithub.com/vimeo/psalm/pull/9299)
- Allow `@var` annotations on global vars by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9301](https://togithub.com/vimeo/psalm/pull/9301)
- Allow suppressing `MissingThrowsDocblock` for individual exceptions by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9303](https://togithub.com/vimeo/psalm/pull/9303)
- Flag direct constructor calls by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9311](https://togithub.com/vimeo/psalm/pull/9311)
- Flag docblock parameters that have no counterparts in function
signature by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9314](https://togithub.com/vimeo/psalm/pull/9314)
- Forbid non-null defaults for callable parameters by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9316](https://togithub.com/vimeo/psalm/pull/9316)

##### Fixes

- cdata in baseline by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9184](https://togithub.com/vimeo/psalm/pull/9184)
- Resolve class constants within PhpStorm metadata by
[@&#8203;shvlv](https://togithub.com/shvlv) in
[https://github.com/vimeo/psalm/pull/9173](https://togithub.com/vimeo/psalm/pull/9173)
- Detect duplicate keys in array shapes by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9177](https://togithub.com/vimeo/psalm/pull/9177)
- Fix xmlrpc callmap functions that were dropped in PHP 8.0 by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9212](https://togithub.com/vimeo/psalm/pull/9212)
- fix `didChange` event in LSP by
[@&#8203;ging-dev](https://togithub.com/ging-dev) in
[https://github.com/vimeo/psalm/pull/9207](https://togithub.com/vimeo/psalm/pull/9207)
- Added [@&#8203;psalm-pure](https://togithub.com/psalm-pure) to
filter_var() by [@&#8203;mmcev106](https://togithub.com/mmcev106) in
[https://github.com/vimeo/psalm/pull/9170](https://togithub.com/vimeo/psalm/pull/9170)
- Add DatePeriod::INCLUDE_END_DATE option by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9220](https://togithub.com/vimeo/psalm/pull/9220)
- Add more specific return for class-implements by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9228](https://togithub.com/vimeo/psalm/pull/9228)
- Convert callmaps resource types by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9227](https://togithub.com/vimeo/psalm/pull/9227)
- Use "numeric-string" type for some MySQLi properties by
[@&#8203;phansys](https://togithub.com/phansys) in
[https://github.com/vimeo/psalm/pull/9226](https://togithub.com/vimeo/psalm/pull/9226)
- find_unused_code CLI arg should not be overwritten by config file by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9235](https://togithub.com/vimeo/psalm/pull/9235)
- Fix divide by a floating point zero by
[@&#8203;aboyton](https://togithub.com/aboyton) in
[https://github.com/vimeo/psalm/pull/9247](https://togithub.com/vimeo/psalm/pull/9247)
- Don't crash on unknown exceptions in `@throws` docblock by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9250](https://togithub.com/vimeo/psalm/pull/9250)
- Fix Spoofchecker callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9256](https://togithub.com/vimeo/psalm/pull/9256)
- Fix crashes with invalid `@psalm-check-type` syntax by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9257](https://togithub.com/vimeo/psalm/pull/9257)
- Fix crash when int range boundary is overflown by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9260](https://togithub.com/vimeo/psalm/pull/9260)
- Drop abandoned mcve m\_ functions by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9266](https://togithub.com/vimeo/psalm/pull/9266)
- Fix several callmap fuction signatures by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9264](https://togithub.com/vimeo/psalm/pull/9264)
- fix lstat bug cache directory race condition by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9253](https://togithub.com/vimeo/psalm/pull/9253)
- Drop removed xsl callmap functions by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9269](https://togithub.com/vimeo/psalm/pull/9269)
- Drop abandoned maxdb callmap functions by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9270](https://togithub.com/vimeo/psalm/pull/9270)
- Drop abandoned newt callmap functions by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9271](https://togithub.com/vimeo/psalm/pull/9271)
- Update callmap types for php 8.2 by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9273](https://togithub.com/vimeo/psalm/pull/9273)
- Fix opcache being loaded twice by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9265](https://togithub.com/vimeo/psalm/pull/9265)
- Forbid overriding built-in enum methods by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9280](https://togithub.com/vimeo/psalm/pull/9280)
- Fix remaining callmap functions by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9278](https://togithub.com/vimeo/psalm/pull/9278)
- Add curl stubs to prevent crashes by
[@&#8203;kamil-tekiela](https://togithub.com/kamil-tekiela) in
[https://github.com/vimeo/psalm/pull/9283](https://togithub.com/vimeo/psalm/pull/9283)
- Compare enum cases thoroughly by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9286](https://togithub.com/vimeo/psalm/pull/9286)
- Drop abandoned ncurses extension by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9293](https://togithub.com/vimeo/psalm/pull/9293)
- Drop abandoned cairo extension by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9292](https://togithub.com/vimeo/psalm/pull/9292)
- Emit issues for calls to `is_a(string, class-string, false)` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9287](https://togithub.com/vimeo/psalm/pull/9287)
- Made `WeakReference` mutable by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9297](https://togithub.com/vimeo/psalm/pull/9297)
- Flag class constant references where LHS is ordinary string by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9302](https://togithub.com/vimeo/psalm/pull/9302)
- Fixed issue message for missing `@psalm-external-mutation-free` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9304](https://togithub.com/vimeo/psalm/pull/9304)
- Fix memcached extension callmap by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9309](https://togithub.com/vimeo/psalm/pull/9309)
- Fix strpos stub return type by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9322](https://togithub.com/vimeo/psalm/pull/9322)
- Propagate phantom classes to closure context by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9329](https://togithub.com/vimeo/psalm/pull/9329)
- Fix language server first-class callable crashes by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/9336](https://togithub.com/vimeo/psalm/pull/9336)
- Forbid first-class callables in `new` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9338](https://togithub.com/vimeo/psalm/pull/9338)
- Negated is_numeric narrows scalar type by
[@&#8203;edsrzf](https://togithub.com/edsrzf) in
[https://github.com/vimeo/psalm/pull/9339](https://togithub.com/vimeo/psalm/pull/9339)

##### Docs

- Documentation: Add BackedEnum compatibility to value-of docs by
[@&#8203;bitwise-operators](https://togithub.com/bitwise-operators) in
[https://github.com/vimeo/psalm/pull/9252](https://togithub.com/vimeo/psalm/pull/9252)
- Added note on properties used in constructor only by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9298](https://togithub.com/vimeo/psalm/pull/9298)
- Added a page explaining how to add a new issue type by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9315](https://togithub.com/vimeo/psalm/pull/9315)

##### Internal changes

- Unify warning messages for deprecated config variables by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9135](https://togithub.com/vimeo/psalm/pull/9135)
- Fix newly discovered CS issues by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9210](https://togithub.com/vimeo/psalm/pull/9210)
- Fixed more CS issues by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9236](https://togithub.com/vimeo/psalm/pull/9236)
- Always enable JIT by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9237](https://togithub.com/vimeo/psalm/pull/9237)
- Allow fidry/cpu-core-counter:v0.5 by
[@&#8203;Slamdunk](https://togithub.com/Slamdunk) in
[https://github.com/vimeo/psalm/pull/9234](https://togithub.com/vimeo/psalm/pull/9234)
- Update workflows to use non-deprecated method of setting step output
by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9251](https://togithub.com/vimeo/psalm/pull/9251)
- Emit warning if opcache cannot be enabled by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9240](https://togithub.com/vimeo/psalm/pull/9240)
- Add option to skip callmap test by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9300](https://togithub.com/vimeo/psalm/pull/9300)
- Suggest Psalm to be installed in require-dev section by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9308](https://togithub.com/vimeo/psalm/pull/9308)
- Skip verifying callmaps based on name pattern by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9313](https://togithub.com/vimeo/psalm/pull/9313)
- Skip verifying memcache extension callmap by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9325](https://togithub.com/vimeo/psalm/pull/9325)
- Run assertions on CI by [@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9318](https://togithub.com/vimeo/psalm/pull/9318)
- Allow spatie/array-to-xml v3 by
[@&#8203;gharlan](https://togithub.com/gharlan) in
[https://github.com/vimeo/psalm/pull/9331](https://togithub.com/vimeo/psalm/pull/9331)
- Disable JIT-incompatible extensions to prevent warnings by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9326](https://togithub.com/vimeo/psalm/pull/9326)
- Added the test to validate test environment itself by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9337](https://togithub.com/vimeo/psalm/pull/9337)

##### Other changes

- Remove some logic that didn't need to be there by
[@&#8203;muglug](https://togithub.com/muglug) in
[https://github.com/vimeo/psalm/pull/9209](https://togithub.com/vimeo/psalm/pull/9209)

#### New Contributors

- [@&#8203;shvlv](https://togithub.com/shvlv) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9173](https://togithub.com/vimeo/psalm/pull/9173)
- [@&#8203;LeoVie](https://togithub.com/LeoVie) made their first
contribution in
[https://github.com/vimeo/psalm/pull/8761](https://togithub.com/vimeo/psalm/pull/8761)
- [@&#8203;phansys](https://togithub.com/phansys) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9226](https://togithub.com/vimeo/psalm/pull/9226)
- [@&#8203;Slamdunk](https://togithub.com/Slamdunk) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9234](https://togithub.com/vimeo/psalm/pull/9234)
- [@&#8203;aboyton](https://togithub.com/aboyton) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9247](https://togithub.com/vimeo/psalm/pull/9247)
- [@&#8203;edsrzf](https://togithub.com/edsrzf) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9336](https://togithub.com/vimeo/psalm/pull/9336)

**Full Changelog**: vimeo/psalm@5.6.0...5.7.0

### [`v5.6.0`](https://togithub.com/vimeo/psalm/releases/tag/5.6.0)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.5.0...5.6.0)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Features

- Check `$this` in static closures by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9164](https://togithub.com/vimeo/psalm/pull/9164)

##### Fixes

- Use STDERR for Shepherd output by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9169](https://togithub.com/vimeo/psalm/pull/9169)

##### Typos

- HEAD in all caps by
[@&#8203;buismaarten](https://togithub.com/buismaarten) in
[https://github.com/vimeo/psalm/pull/9163](https://togithub.com/vimeo/psalm/pull/9163)

#### New Contributors

- [@&#8203;buismaarten](https://togithub.com/buismaarten) made their
first contribution in
[https://github.com/vimeo/psalm/pull/9163](https://togithub.com/vimeo/psalm/pull/9163)

**Full Changelog**: vimeo/psalm@5.5.0...5.6.0

### [`v5.5.0`](https://togithub.com/vimeo/psalm/releases/tag/5.5.0)

[Compare Source](https://togithub.com/vimeo/psalm/compare/5.4.0...5.5.0)

<!-- Release notes generated using configuration in .github/release.yml
at master -->

#### What's Changed

##### Features

- Add Codebase to remaining events by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/8961](https://togithub.com/vimeo/psalm/pull/8961)
- Add [@&#8203;psalm-api](https://togithub.com/psalm-api) annotation by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/8987](https://togithub.com/vimeo/psalm/pull/8987)
- Refined `explode()` types by
[@&#8203;Ocramius](https://togithub.com/Ocramius) in
[https://github.com/vimeo/psalm/pull/9016](https://togithub.com/vimeo/psalm/pull/9016)
- Support constants in traits by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9126](https://togithub.com/vimeo/psalm/pull/9126)
- Report unused baseline entries by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9130](https://togithub.com/vimeo/psalm/pull/9130)
- Allow to specify custom shepherd endpoint by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9133](https://togithub.com/vimeo/psalm/pull/9133)
- Narrow ->value of enum case(s) to only the possible values by
[@&#8203;annervisser](https://togithub.com/annervisser) in
[https://github.com/vimeo/psalm/pull/9157](https://togithub.com/vimeo/psalm/pull/9157)

##### Fixes

- Fix bug by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/8955](https://togithub.com/vimeo/psalm/pull/8955)
- getopt() return type fix by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/8945](https://togithub.com/vimeo/psalm/pull/8945)
- Allow omitting argument offsets for map-type overrides in
phpstorm.meta by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/8781](https://togithub.com/vimeo/psalm/pull/8781)
- Extend XML enum of supported PHP ext by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/8971](https://togithub.com/vimeo/psalm/pull/8971)
- Revert [#&#8203;8955](https://togithub.com/vimeo/psalm/issues/8955) by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/8972](https://togithub.com/vimeo/psalm/pull/8972)
- (mb\_)chr returns a non-empty-string by
[@&#8203;fluffycondor](https://togithub.com/fluffycondor) in
[https://github.com/vimeo/psalm/pull/8974](https://togithub.com/vimeo/psalm/pull/8974)
- Remove occurrences from error baseline by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/8967](https://togithub.com/vimeo/psalm/pull/8967)
- Add DateTimeInterface::\__serialize and \__unserialize by
[@&#8203;michnovka](https://togithub.com/michnovka) in
[https://github.com/vimeo/psalm/pull/8976](https://togithub.com/vimeo/psalm/pull/8976)
- Fix get_object_vars on enums by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/8973](https://togithub.com/vimeo/psalm/pull/8973)
- Fixes [#&#8203;8112](https://togithub.com/vimeo/psalm/issues/8112) by
[@&#8203;emmanuelGuiton](https://togithub.com/emmanuelGuiton) in
[https://github.com/vimeo/psalm/pull/8792](https://togithub.com/vimeo/psalm/pull/8792)
- Verify nullable callmap parameters by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/8990](https://togithub.com/vimeo/psalm/pull/8990)
- Improve `invalid references` message in `@psalm-type` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/8996](https://togithub.com/vimeo/psalm/pull/8996)
- Fix missing version in PHARs build on GA by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/8997](https://togithub.com/vimeo/psalm/pull/8997)
- forbidden function bug and better get_defined_functions() signature by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9002](https://togithub.com/vimeo/psalm/pull/9002)
- Add imap_is_open() to PHP 8.2 dictionary by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9007](https://togithub.com/vimeo/psalm/pull/9007)
- Do not require return type on destructors in interfaces by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9009](https://togithub.com/vimeo/psalm/pull/9009)
- feat: add xdebug_info (fixes
[#&#8203;8977](https://togithub.com/vimeo/psalm/issues/8977)) by
[@&#8203;mathe42](https://togithub.com/mathe42) in
[https://github.com/vimeo/psalm/pull/9011](https://togithub.com/vimeo/psalm/pull/9011)
- Make `$http_response_header` a non-empty-list by
[@&#8203;fluffycondor](https://togithub.com/fluffycondor) in
[https://github.com/vimeo/psalm/pull/9001](https://togithub.com/vimeo/psalm/pull/9001)
- Preserve from_docblock in TypeCombiner by
[@&#8203;VincentLanglet](https://togithub.com/VincentLanglet) in
[https://github.com/vimeo/psalm/pull/8999](https://togithub.com/vimeo/psalm/pull/8999)
- Add getAtomicType to IsNotAClass for proper negation Reconciliation by
[@&#8203;orklah](https://togithub.com/orklah) in
[https://github.com/vimeo/psalm/pull/9017](https://togithub.com/vimeo/psalm/pull/9017)
- create proper TClosure instead of TNamedObject with a Closure value by
[@&#8203;orklah](https://togithub.com/orklah) in
[https://github.com/vimeo/psalm/pull/9018](https://togithub.com/vimeo/psalm/pull/9018)
- Prevent DB escaping functions from affecting non-sql taints by
[@&#8203;mmcev106](https://togithub.com/mmcev106) in
[https://github.com/vimeo/psalm/pull/9019](https://togithub.com/vimeo/psalm/pull/9019)
- Is containedbug by [@&#8203;orklah](https://togithub.com/orklah) in
[https://github.com/vimeo/psalm/pull/9020](https://togithub.com/vimeo/psalm/pull/9020)
- Better type inference and type checking for large union types used in
array keys/values by [@&#8203;Ocramius](https://togithub.com/Ocramius)
in
[https://github.com/vimeo/psalm/pull/9022](https://togithub.com/vimeo/psalm/pull/9022)
- fix never return for MethodCalls by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9024](https://togithub.com/vimeo/psalm/pull/9024)
- Fix never return union type wrong condition by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9023](https://togithub.com/vimeo/psalm/pull/9023)
- fixes return type issues of methods reported for the wrong file by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9025](https://togithub.com/vimeo/psalm/pull/9025)
- Non empty reconciliation by
[@&#8203;orklah](https://togithub.com/orklah) in
[https://github.com/vimeo/psalm/pull/9021](https://togithub.com/vimeo/psalm/pull/9021)
- fix [@&#8203;psalm-scope-this](https://togithub.com/psalm-scope-this)
not working with FQCN with leading backslash by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9030](https://togithub.com/vimeo/psalm/pull/9030)
- Fix iterator and exception callmaps by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9035](https://togithub.com/vimeo/psalm/pull/9035)
- fix DateTime::modify() and DateTimeImmutable::modify() return types by
[@&#8203;pilif](https://togithub.com/pilif) in
[https://github.com/vimeo/psalm/pull/9043](https://togithub.com/vimeo/psalm/pull/9043)
- Fix `ReflectionClass::getModifiers()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9047](https://togithub.com/vimeo/psalm/pull/9047)
- Fix `ReflectionClass::getReflectionConstants()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9048](https://togithub.com/vimeo/psalm/pull/9048)
- Fix `ReflectionClass::getTraitAliases()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9046](https://togithub.com/vimeo/psalm/pull/9046)
- Fix `ReflectionFunctionAbstract::getExtensionName()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9053](https://togithub.com/vimeo/psalm/pull/9053)
- Fix `ReflectionMethod::getModifiers()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9052](https://togithub.com/vimeo/psalm/pull/9052)
- Fix `ReflectionClass::getTraitNames()` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9051](https://togithub.com/vimeo/psalm/pull/9051)
- Fix `ReflectionClass` stub by
[@&#8203;kukulich](https://togithub.com/kukulich) in
[https://github.com/vimeo/psalm/pull/9055](https://togithub.com/vimeo/psalm/pull/9055)
- fix autoloader not working with absolute path by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9044](https://togithub.com/vimeo/psalm/pull/9044)
- Narrow down the return type of DOMXPath::query() by
[@&#8203;MidnightDesign](https://togithub.com/MidnightDesign) in
[https://github.com/vimeo/psalm/pull/9072](https://togithub.com/vimeo/psalm/pull/9072)
- fix `I::cases()` where `interface I extends BackedEnum` by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9067](https://togithub.com/vimeo/psalm/pull/9067)
- fix implicit return type by
[@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9026](https://togithub.com/vimeo/psalm/pull/9026)
- Update Call Maps and Signature for get_headers by
[@&#8203;therealryanbonham](https://togithub.com/therealryanbonham) in
[https://github.com/vimeo/psalm/pull/9073](https://togithub.com/vimeo/psalm/pull/9073)
- dont report MissingFile error when file_exists is validated beforehand
by [@&#8203;kkmuffme](https://togithub.com/kkmuffme) in
[https://github.com/vimeo/psalm/pull/9012](https://togithub.com/vimeo/psalm/pull/9012)
- Handle template type on promoted property by
[@&#8203;vincent4vx](https://togithub.com/vincent4vx) in
[https://github.com/vimeo/psalm/pull/9092](https://togithub.com/vimeo/psalm/pull/9092)
- Additional test and fix when comparing nested templates by
[@&#8203;emmanuelGuiton](https://togithub.com/emmanuelGuiton) in
[https://github.com/vimeo/psalm/pull/9095](https://togithub.com/vimeo/psalm/pull/9095)
- Automatically load stubs for random ext on PHP 8.2 by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9099](https://togithub.com/vimeo/psalm/pull/9099)
- Add missing `int-range` aliases into the list of psalm reserved words
by [@&#8203;eopnetto](https://togithub.com/eopnetto) in
[https://github.com/vimeo/psalm/pull/9107](https://togithub.com/vimeo/psalm/pull/9107)
- Clean up more callmap return types by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9113](https://togithub.com/vimeo/psalm/pull/9113)
- Infer getDefaultValueConstantName() type when isDefaultValueConstant()
is true by [@&#8203;BenMorel](https://togithub.com/BenMorel) in
[https://github.com/vimeo/psalm/pull/9115](https://togithub.com/vimeo/psalm/pull/9115)
- Fix libxml_get_errors() return type by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9118](https://togithub.com/vimeo/psalm/pull/9118)
- Fix remaining ignored CallMap return types that can be updated by
[@&#8203;othercorey](https://togithub.com/othercorey) in
[https://github.com/vimeo/psalm/pull/9122](https://togithub.com/vimeo/psalm/pull/9122)
- Fix dom_import_simplexml() by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9139](https://togithub.com/vimeo/psalm/pull/9139)
- Fix ReflectionClass::newInstanceArgs() with named parameters by
[@&#8203;BenMorel](https://togithub.com/BenMorel) in
[https://github.com/vimeo/psalm/pull/9085](https://togithub.com/vimeo/psalm/pull/9085)
- Fix shepherd for default domain by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9136](https://togithub.com/vimeo/psalm/pull/9136)
- Suppress warnings when `--no-output` is specified by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9162](https://togithub.com/vimeo/psalm/pull/9162)

##### Docs

- restrictReturnTypes configuration documentation by
[@&#8203;jack-worman](https://togithub.com/jack-worman) in
[https://github.com/vimeo/psalm/pull/9000](https://togithub.com/vimeo/psalm/pull/9000)
- Update ForbiddenCode.md by
[@&#8203;maniaba](https://togithub.com/maniaba) in
[https://github.com/vimeo/psalm/pull/9105](https://togithub.com/vimeo/psalm/pull/9105)
- Add information on pure-callables to documentation by
[@&#8203;bitwise-operators](https://togithub.com/bitwise-operators) in
[https://github.com/vimeo/psalm/pull/9141](https://togithub.com/vimeo/psalm/pull/9141)

##### Internal changes

- Update BCC by [@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/8966](https://togithub.com/vimeo/psalm/pull/8966)
- Drop symfony/polyfill-php80 dependency by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/8988](https://togithub.com/vimeo/psalm/pull/8988)
- Fix PHPCS trailing comma by
[@&#8203;theodorejb](https://togithub.com/theodorejb) in
[https://github.com/vimeo/psalm/pull/9014](https://togithub.com/vimeo/psalm/pull/9014)
- Misc fixes by [@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9031](https://togithub.com/vimeo/psalm/pull/9031)
- Fix remaining markdown issues by
[@&#8203;danog](https://togithub.com/danog) in
[https://github.com/vimeo/psalm/pull/9033](https://togithub.com/vimeo/psalm/pull/9033)
- Bump mheap/github-action-required-labels from 2 to 3 by
[@&#8203;dependabot](https://togithub.com/dependabot) in
[https://github.com/vimeo/psalm/pull/9039](https://togithub.com/vimeo/psalm/pull/9039)
- Internal: use more specific types by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9063](https://togithub.com/vimeo/psalm/pull/9063)
- Make it more clear what do we test from Psalm output by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9061](https://togithub.com/vimeo/psalm/pull/9061)
- Internal cleanup: Unify syntax for redis.phpstub by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9088](https://togithub.com/vimeo/psalm/pull/9088)
- Cleanup unsupported extensions message by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9089](https://togithub.com/vimeo/psalm/pull/9089)
- Allow sebastian/diff 5 by
[@&#8203;Jean85](https://togithub.com/Jean85) in
[https://github.com/vimeo/psalm/pull/9117](https://togithub.com/vimeo/psalm/pull/9117)
- Enhance error output for shepherd by
[@&#8203;lptn](https://togithub.com/lptn) in
[https://github.com/vimeo/psalm/pull/9134](https://togithub.com/vimeo/psalm/pull/9134)
- Indent docblocks in DocComment test by
[@&#8203;weirdan](https://togithub.com/weirdan) in
[https://github.com/vimeo/psalm/pull/9156](https://togithub.com/vimeo/psalm/pull/9156)

#### New Contributors

- [@&#8203;michnovka](https://togithub.com/michnovka) made their first
contribution in
[https://github.com/vimeo/psalm/pull/8976](https://togithub.com/vimeo/psalm/pull/8976)
- [@&#8203;emmanuelGuiton](https://togithub.com/emmanuelGuiton) made
their first contribution in
[https://github.com/vimeo/psalm/pull/8792](https://togithub.com/vimeo/psalm/pull/8792)
- [@&#8203;mathe42](https://togithub.com/mathe42) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9011](https://togithub.com/vimeo/psalm/pull/9011)
- [@&#8203;kukulich](https://togithub.com/kukulich) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9047](https://togithub.com/vimeo/psalm/pull/9047)
- [@&#8203;therealryanbonham](https://togithub.com/therealryanbonham)
made their first contribution in
[https://github.com/vimeo/psalm/pull/9073](https://togithub.com/vimeo/psalm/pull/9073)
- [@&#8203;maniaba](https://togithub.com/maniaba) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9105](https://togithub.com/vimeo/psalm/pull/9105)
- [@&#8203;eopnetto](https://togithub.com/eopnetto) made their first
contribution in
[https://github.com/vimeo/psalm/pull/9107](https://togithub.com/vimeo/psalm/pull/9107)

**Full Changelog**: vimeo/psalm@5.4.0...5.5.0

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you
are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/open-feature/php-sdk).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC4xMDguNCIsInVwZGF0ZWRJblZlciI6IjM0LjE1OS4yIn0=-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
release:fix The PR will be included in 'Fixes' section of the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Cannot load Zend OPcache - it was already loaded
2 participants