jetbrains/phpstorm-stubs

PHP runtime & extensions header files for PhpStorm

Package info

github.com/JetBrains/phpstorm-stubs

Homepage

pkg:composer/jetbrains/phpstorm-stubs

Statistics

Installs: 31 850 324

Dependents: 67

Suggesters: 0

Stars: 1 364

v2026.1 2026-02-19 20:12 UTC

Requires

None

Suggests

None

Provides

None

Conflicts

None

Replaces

None

Apache-2.0 2cdd054c4109dfb76667c9198bf9427606354243

codeautocompletetypeinferencestubsinspectionphpstormjetbrains


README

πŸ‘ official JetBrains project
πŸ‘ License
πŸ‘ Total Downloads

πŸ‘ PhpStorm Stubs Tests
πŸ‘ PhpStorm Stubs PECL Test
πŸ‘ PhpStorm Stubs Check Links

STUBS are normal, syntactically correct PHP files that contain function & class signatures, constant definitions, etc. for all built-in PHP stuff and most standard extensions. Stubs need to include complete PHPDOC, especially proper @return annotations.

An IDE needs them for completion, code inspection, type inference, doc popups, etc. Quality of most of these services depend on the quality of the stubs (basically their PHPDOC @annotations).

Note that the stubs for β€œnon-standard” extensions are provided as is. (Non-Standard extensions are the ones that are not part of PHP Core or are not Bundled/External - see the complete list here.)

The support for such β€œnon-standard” stubs is community-driven, and we only validate their PHPDoc. We do not check whether a stub matches the actual extension or whether the provided descriptions are correct.

Please note that currently there are no tests for the thrown exceptions so @throws tags should be checked manually according to official docs or PHP source code

Relevant open issues

Contribution process

Contribution process

Updating the IDE

Have a full copy of the .git repo within an IDE and provide its path in Settings | Languages & Frameworks | PHP | PHP Runtime | Advanced settings | Default stubs path. It should then be easily updatable both ways via normal git methods.

Extensions enabled by default

The set of extensions enabled by default in PhpStorm can change anytime without prior notice. To learn how to view the enabled extensions, look here.

How to run tests

  1. Execute docker compose -f docker-compose.yml run test_runner composer install --ignore-platform-reqs
  2. Execute docker compose -f docker-compose.yml run -e PHP_VERSION=8.0 test_runner vendor/bin/phpunit --testsuite PHP_8.0

How to update stub map

Execute docker compose -f docker-compose.yml run test_runner /usr/local/bin/php tests/Tools/generate-stub-map and commit the resulting PhpStormStubsMap.php

License

Apache 2

contains material by the PHP Documentation Group, licensed with CC-BY 3.0