You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Anatoly Pashin 529bc4f194
Fix getopt() return type (#758)
2 days ago
.idea Fix parsing of constants with negative value, add missing constants, fix constant values 6 months ago
Core PHP tags cleanup 1 week ago
Ev Add new extensions + fixes for them 6 months ago
FFI Actualize FFI interface using latest API info (#623) 9 months ago
PDO Cleanup @since tags with old versions <5.3 2 months ago
Parle Update RParser.php 11 months ago
Phar return type for Phar::compress and Phar::decompress should be static 1 month ago
Reflection Cleanup @since tags with old versions <5.3 2 months ago
SPL Remove unnecessary since tag 1 month ago
SQLite Cleanup @since tags with old versions <5.3 2 months ago
SaxonC Convert links to HTTPS 1 year ago
SimpleXML PHP tags cleanup 1 week ago
SplType Use https for @link annotations (#367) 1 year ago
Zend OPcache Provide some missing @since tags 2 months ago
ZendCache Add hand-picked changes from pr553 9 months ago
ZendDebugger WI-33237 split embedded stubs into modules 3 years ago
ZendUtils WI-33237 split embedded stubs into modules 3 years ago
amqp update amqp stubs 3 months ago
apache Cleanup @since tags with old versions <5.3 2 months ago
apcu add ttl to apcu_inc() / apcu_dec() 2 months ago
bcmath Remove "since 7" leftovers 1 month ago
bz2 Cleanup @since tags with old versions <5.3 2 months ago
calendar Cleanup @since tags with old versions <5.3 2 months ago
cassandra PHP tags cleanup 1 week ago
com_dotnet com_dotnet fix optional parameters 2 months ago
couchbase Remove unsupported tags 1 week ago
crypto Fix default value for parameter to be compatible with PHP 9 months ago
ctype Cleanup @since tags with old versions <5.3 2 months ago
cubrid @link and @see tags should use https 1 year ago
curl update stubs map 1 month ago
date WI-51054 Inspections: DateTime::setTime incorrectly specified as available since 7.1 1 month ago
dba Cleanup @since tags with old versions <5.3 2 months ago
decimal We don't allow referencing in stub tests 1 week ago
dom Add false return type to saveXML 2 months ago
enchant Fix some type according to review 8 months ago
event Change all other links available in HTTPS 1 year ago
exif Cleanup @since tags with old versions <5.3 2 months ago
fann Add test on unsupported tags 1 week ago
ffmpeg Add hand-picked changes from pr553 9 months ago
fileinfo Cleanup @since tags with old versions <5.3 2 months ago
filter Cleanup @since tags with old versions <5.3 2 months ago
fpm update since versions in core to make it major 5 months ago
ftp add false types on ftp as documented 2 months ago
gd Cleanup @since tags with old versions <5.3 2 months ago
gearman Add hand-picked changes from pr553 9 months ago
geoip Fix some type according to review 8 months ago
geos Fix geos stubs 7 months ago
gettext Cleanup @since tags with old versions <5.3 2 months ago
gmagick Add hand-picked changes from pr553 9 months ago
gmp Cleanup @since tags with old versions <5.3 2 months ago
gnupg PHP tags cleanup 1 week ago
grpc Grpc\ChannelCredentials::createSsl() has all optional parameters. 8 months ago
hash Cleanup @since tags with old versions <5.3 2 months ago
http PHP tags cleanup 1 week ago
ibm_db2 Add hand-picked changes from pr553 9 months ago
iconv Cleanup @since tags with old versions <5.3 2 months ago
igbinary Remove duplicate url scheme inside phpDoc blocks 1 year ago
imagick PHP tags cleanup 1 week ago
imap Cleanup @since tags with old versions <5.3 2 months ago
inotify PHP tags cleanup 1 week ago
interbase Cleanup @since tags with old versions <5.3 2 months ago
intl fix: IntlChar::chr and IntlChar::ord returns null (#754) 4 days ago
json Cleanup @since tags with old versions <5.3 2 months ago
judy Use https for @link annotations (#367) 1 year ago
ldap Remove "since 7" leftovers 1 month ago
leveldb renamed folder for leveldb extension to a proper case 10 months ago
libevent Add hand-picked changes from pr553 9 months ago
libsodium Make PHPDocs PHPDoc parser compatible 1 year ago
libxml Specify array value type in libxml_get_errors (#752) 1 week ago
lua Fix stub for assign method 1 year ago
lzf Added pecl LZF 3 months ago
mailparse Add hand-picked changes from pr553 9 months ago
mapscript Add hand-picked changes from pr553 9 months ago
mbstring Cleanup @since tags with old versions <5.3 2 months ago
mcrypt Cleanup @since tags with old versions <5.3 2 months ago
memcache Add hand-picked changes from pr553 9 months ago
memcached Add hand-picked changes from pr553 9 months ago
meminfo Add ext-meminfo stub 10 months ago
meta fix: IntlChar::chr and IntlChar::ord returns null (#754) 4 days ago
ming Use https for @link annotations (#367) 1 year ago
mongo PHP tags cleanup 1 week ago
mongodb PHP tags cleanup 1 week ago
mqseries PHP tags cleanup 1 week ago
msgpack Cleanup @since tags with old versions <5.3 2 months ago
mssql Add 7.0 removals 2 months ago
mysql Cleanup @since tags with old versions <5.3 2 months ago
mysql_xdevapi mysql_xdevapi_8_0_11 7 months ago
mysqli Adding optional parameter to mysqli::store_result 4 weeks ago
ncurses Use https for @link annotations (#367) 1 year ago
newrelic Add hand-picked changes from pr553 9 months ago
oauth PHP tags cleanup 1 week ago
oci8 update since versions in core to make it major 5 months ago
odbc Cleanup @since tags with old versions <5.3 2 months ago
openssl Cleanup @since tags with old versions <5.3 2 months ago
parallel Add test on unsupported tags 1 week ago
pcntl PHP tags cleanup 1 week ago
pcov Fixed docblock spacing, added correct version numbers 5 months ago
pcre Cleanup @since tags with old versions <5.3 2 months ago
pdflib @link and @see tags should use https 1 year ago
pdo_ibm WI-33237 split embedded stubs into modules 3 years ago
pdo_mysql WI-33237 split embedded stubs into modules 3 years ago
pdo_pgsql WI-33237 split embedded stubs into modules 3 years ago
pdo_sqlite WI-33237 split embedded stubs into modules 3 years ago
pgsql Cleanup @since tags with old versions <5.3 2 months ago
posix Cleanup @since tags with old versions <5.3 2 months ago
pq Add stub for pecl/pq 2 months ago
pspell Cleanup @since tags with old versions <5.3 2 months ago
pthreads Add pthreads stubs for addRef/delRef/getRefCount functions for Threaded class 1 year ago
radius Add hand-picked changes from pr553 9 months ago
rar Add hand-picked changes from pr553 9 months ago
rdkafka Add missing const for rdkafka 2 months ago
readline Fix possible return values from `readline` (#762) 1 week ago
recode Cleanup @since tags with old versions <5.3 2 months ago
redis update ping doc 3 months ago
regex Add missing @removed tags for ereg and sybace 2 months ago
rrd Fix stubs according to new tests 6 months ago
session Remove "since 7" leftovers 1 month ago
shmop Cleanup @since tags with old versions <5.3 2 months ago
snmp Cleanup @since tags with old versions <5.3 2 months ago
soap Cleanup @since tags with old versions <5.3 2 months ago
sockets Cleanup @since tags with old versions <5.3 2 months ago
sodium update since versions in core to make it major 5 months ago
solr Add test on unsupported tags 1 week ago
sqlite3 Cleanup @since tags with old versions <5.3 2 months ago
sqlsrv Add some sqlsrv constants 1 month ago
ssh2 Properly type ssh2_auth_none() return value 2 months ago
standard Fix getopt() return type (#758) 2 days ago
stats Added stubs for PECL "stats" package. 2 months ago
stomp Add stubs for pecl-stomp php extension 11 months ago
suhosin Add hand-picked changes from pr553 9 months ago
superglobals Don't use bugfix number in deprecation tag 5 months ago
svn Add hand-picked changes from pr553 9 months ago
sybase Add missing @removed tags for ereg and sybace 2 months ago
sync Use https for @link annotations (#367) 1 year ago
sysvmsg Cleanup @since tags with old versions <5.3 2 months ago
sysvsem Cleanup @since tags with old versions <5.3 2 months ago
sysvshm Cleanup @since tags with old versions <5.3 2 months ago
tests Remove duplicated since entry 1 week ago
tidy Cleanup @since tags with old versions <5.3 2 months ago
tokenizer Cleanup @since tags with old versions <5.3 2 months ago
uopz @link and @see tags should use https 1 year ago
uuid Add stub for uuid PECL extension 2 months ago
uv Fix UV stubs to be compatible with PHP 7 9 months ago
v8js Rename V8Js.php to v8js.php 3 years ago
wddx Cleanup @since tags with old versions <5.3 2 months ago
win32service Add hand-picked changes from pr553 9 months ago
winbinder PHP tags cleanup 1 week ago
wincache Add hand-picked changes from pr553 9 months ago
xcache WI-33237 split embedded stubs into modules 3 years ago
xdebug Update xdebug_stop_code_coverage parameter (#617) 9 months ago
xhprof PHP tags cleanup 1 week ago
xml Cleanup @since tags with old versions <5.3 2 months ago
xmlreader Cleanup @since tags with old versions <5.3 2 months ago
xmlrpc Cleanup @since tags with old versions <5.3 2 months ago
xmlwriter Use https for @link annotations (#367) 1 year ago
xsl Cleanup @since tags with old versions <5.3 2 months ago
xxtea Stubs for PECL XXTEA 4 months ago
yaf Update yaf_namespace.php 3 months ago
yaml PHP tags cleanup 1 week ago
yar Fix invalid tags 1 week ago
zend PHP tags cleanup 1 week ago
zip update since versions in core to make it major 5 months ago
zlib PHP tags cleanup 1 week ago
zmq @link and @see tags should use https 1 year ago
zookeeper Add stub for zookeeper extension 8 months ago
.gitignore remove quality tools and redundant mapping 1 year ago
.travis.yml update PHP version in travis build 3 months ago
CONTRIBUTING.md Update requirements for PR requests 1 year ago
Dockerfile PHP 7.4 stubs initial support + switch to PHP 7.4 docker image 3 months ago
PhpStormStubsMap.php update stubs map 1 month ago
README.md Update description how to work with custom stubs from IDE 6 months ago
composer.json add test for internal @meta tag. php7.4 migration 2 months ago
docker-compose.yml add tests on ldap extension 7 months ago
generate-stub-map Don't parse the content of vendor 9 months ago

README.md

phpstorm-stubs

official JetBrains project Build Status License Total Downloads

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.

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 composer install
  2. Execute docker-compose -f docker-compose.yml run php /opt/project/phpstorm-stubs/vendor/bin/phpunit /opt/project/phpstorm-stubs/tests/

How to update stub map

Execute php generate-stub-map and commit the resulting PhpStormStubsMap.php

License

Apache 2