Ayesh Karunaratne
228428747a
Add support for autoloading Enums
...
PHP 8.1 supports Enums, and [Enums follow class-semantics](https://php.watch/versions/8.1/enums#class-semantics-autoload ).
Composer's class-map generator currently looks for `class`, `interface`, and `trait` keywords. If Composer is run in PHP 8.1 or later, Composer now additionally looks for `enum` keyword as well. This is similar to how Hack's `enum` support is added.
This PR also adds tests for basic enums, backed enums, namespaced enums, and an enum that implements an interface and extends a class.
2021-02-06 15:51:18 +07:00
Jordi Boggiano
07b8c23f02
Merge branch '1.10'
2021-01-27 15:46:58 +01:00
Jordi Boggiano
92313447d6
Filter out exclude-from-classmap rules to avoid generating very long regexes, fixes #9487
2021-01-27 15:10:32 +01:00
Nicolas Grekas
ba94445bb9
Ensure InstalledVersions reports info about all currently registered class loaders
2021-01-27 10:39:35 +01:00
Jordi Boggiano
b7d770659b
CS fixes
2020-11-22 14:52:39 +01:00
Jordi Boggiano
b574f10d9d
Rename mainPackage to rootPackage in AutoloadGenerator and ensure we use RootPackageInterface
2020-11-12 10:41:06 +01:00
Jakub Bouček
8dc5effee7
AutoloadGenerator: Send error HTTP status on error
2020-11-05 09:57:48 +01:00
Jordi Boggiano
56c65a58e2
Make platform-check only check non-dev requires, refs #9412
2020-11-04 23:41:58 +01:00
Jordi Boggiano
8c1355f448
Improve output of platform check further in case errors are hidden
2020-11-04 22:28:17 +01:00
Jakub Bouček
2595de07ce
AutoloadGenerator: Trigger native PHP error on platform checks fails - tests
2020-11-04 12:28:15 +01:00
Jakub Bouček
6f1761fe18
AutoloadGenerator: Send error HTTP status on error - update tests
2020-11-04 11:18:21 +01:00
zorn
5aa90baab1
Add new lines to platform reqs issues
2020-11-01 23:39:06 +10:00
Jordi Boggiano
24abd233ec
Merge branch 'master' into code-improvements
2020-10-13 12:23:13 +02:00
Jordi Boggiano
0775e261c5
Merge remote-tracking branch 'lstrojny/apcu-prefix'
2020-10-13 10:19:30 +02:00
Michael Telgmann
a4509d28e7
Introduce constants for Composer\Package\Link types
2020-09-21 14:22:06 +02:00
Simon Berger
80a75e9959
Minor code improvements
2020-09-20 02:16:28 +02:00
Lars Strojny
0b6abf3b96
APCu prefix as a separate option
2020-09-16 10:49:00 +02:00
Lars Strojny
de0085767c
Sanitize prefix
2020-09-15 12:39:22 +02:00
Lars Strojny
dafd225a35
Allow to pass a string for apcu-autoloader to set the APCu prefix
2020-09-14 22:36:53 +02:00
Jordi Boggiano
d942c65e0c
Fix more warnings
2020-09-11 11:32:09 +02:00
Jordi Boggiano
1593b67230
Fix warnings on higher phpunit versions
2020-09-11 11:01:32 +02:00
Jordi Boggiano
67a88880ec
Get rid of EmptyConstraint
2020-06-05 16:52:24 +02:00
Yanick Witschi
bde9502473
Made the constraint argument in Link mandatory
2020-06-05 16:52:24 +02:00
Jordi Boggiano
537402f814
Add tests for #8861
2020-06-01 16:01:43 +02:00
Jordi Boggiano
21e708f2c4
Remove upper bound PHP version checks from platform-check as there is not enough value added and it risks causing issues
2020-06-01 09:39:44 +02:00
Jordi Boggiano
45d3e133a4
Avoid checking for unbounded constraints in platform checks
2020-05-19 17:15:08 +02:00
Jordi Boggiano
6a6ea6057f
Handle provider/replacer packages and avoid checking extensions which are provided by packages, refs #8546
2020-04-24 13:38:50 +02:00
Jordi Boggiano
d494df61ff
Make sure platform-check returns a non-0 exit code if it fails
2020-04-24 13:25:13 +02:00
Jordi Boggiano
7049bbb714
Switch require_once to require for autoload_static as the once variant seems unnecessary
2020-04-22 17:05:37 +02:00
Jordi Boggiano
0d1922dc27
Add a Composer\Versions class which is available in all projects at runtime to query installed packages/versions
2020-04-22 12:10:09 +02:00
Jordi Boggiano
2c8a4a1b93
Add platform-check config option to disable platform_check.php generation, and disable it for Composer
2020-04-21 15:25:35 +02:00
Nicolas Grekas
6463ab9e49
Optimize extension checks
2020-04-21 09:35:34 +02:00
Yanick Witschi
e23710f92d
Implemented php version check in autoload.php ( #8546 )
2020-04-21 08:59:36 +02:00
Jordi Boggiano
24a5a0dacb
Skip invalid PSR-0/4 classes from optimized autoloader, fixes #8403
2020-03-10 15:40:45 +01:00
remorhaz
8df263a756
Test added for issue #8622 fix
2020-02-26 17:39:54 +02:00
Jordi Boggiano
4d74f5ba95
Fix exclude-from-classmap handling to avoid foo matching foo* directories, fixes #8563 , refs #8575
2020-02-12 10:23:03 +01:00
Jordi Boggiano
c7ba751319
Merge commit 'refs/pull/8575/head' of github.com:composer/composer
2020-02-12 10:11:58 +01:00
Ion Bazan
a2137d5263
use Symfony PHPUnit Bridge
2020-02-07 12:22:22 +08:00
Jeroen Versteeg
cabf373bf4
Added test for exclude-from-classmap (see issue #8563 )
2020-02-04 12:57:26 +01:00
Jordi Boggiano
502b68967a
Fix tests for PSR-fix in optimized autoloader, refs #8397
2019-11-01 15:31:55 +01:00
Jordi Boggiano
c3f034e33b
Fix tests for PSR-fix in optimized autoloader, refs #8397
2019-11-01 15:13:28 +01:00
Jordi Boggiano
3a0d05c148
Merge remote-tracking branch 'and800/fix-autoload-opts'
2019-10-30 16:22:44 +01:00
Andriy Maletsky
ec293adabc
make optimized autoloader respect PSR standards
2019-10-29 20:36:29 +02:00
Markus Staab
e47aa38ad4
Added phpdoc for ComposerAutoloaderInit$SHA1::getLoader() ( #8393 )
2019-10-29 14:08:33 +01:00
zakonnic
f159eb724a
Add test for double gap in php-file
2019-09-20 17:08:00 +03:00
ShiraNai7
a2b647a99e
Handle absolute phar:// paths in autoload_static.php
2019-04-11 20:23:31 +02:00
Rob Bast
25e3f6d4b9
expand regex and testcases
2019-04-04 08:31:26 +02:00
Rob Bast
971528916b
fix regex for heredoc/nowdoc
...
* take into account relaxed changes introduced in php 7.3
* see: 4887357269
* allow " as well as ', which was introduced in php 5.3
closes #8080
2019-04-03 10:46:35 +02:00
Nils Adermann
386382503d
Add a test for autoloading if a package is only required via replacing name
2019-01-28 17:08:51 +01:00
Den Girnyk
3b6b63784f
Fix: Keep replaced packages for autoload dumping with --no-dev
2019-01-28 17:02:32 +01:00