Edgaras Janušauskas
f41abfca34
Add platform check for 64-bit PHP ( #11334 )
2023-03-20 16:08:12 +01:00
Jordi Boggiano
0a2846cb24
Fix autoloading on PHP 5.6 ( #11285 )
...
* Add a CI check to ensure the autoloader can run on php5.6+
* Fix autoloading on PHP 5.6
2023-01-27 16:26:04 +01:00
Jordi Boggiano
d047f38f73
Make sure autoloader closures do not have a scope class set
2022-12-22 21:01:38 +01:00
Jordi Boggiano
ce082cd5b3
Merge branch '2.4'
2022-10-13 11:21:52 +02:00
Jordi Boggiano
205ba37825
Fix tests
2022-10-13 11:21:41 +02:00
Jordi Boggiano
39de9899a7
Lock down include wrappers to avoid abuse from third parties ( #11015 )
2022-08-31 12:07:23 +02:00
Jordi Boggiano
3a945ac70f
Delete ClassMapGenerator tests which are not needed anymore
2022-06-19 14:08:02 +02:00
Jordi Boggiano
e0cce2bfb0
Allow autoload to run on 5.6 still, add early exits when running composer or autoload.php with outdated PHP versions, fixes #10714 , refs #10709
2022-04-06 22:07:16 +02:00
Jordi Boggiano
5122bd42fb
Merge branch '2.2' into main
2022-03-15 13:11:59 +01:00
Jordi Boggiano
f31700bf19
Sort packages with the same weight alphabetically to have a completely stable sort not dependent on input order, fixes #10614
2022-03-15 11:35:33 +01:00
Jordi Boggiano
45218092b4
Merge branch '2.2' into main
2022-02-15 16:52:03 +01:00
Jordi Boggiano
f808e4907c
Fix handling for non-lowercased enum keyword, fixes #10521
2022-02-15 16:41:06 +01:00
Jordi Boggiano
3446091027
Merge branch '2.2' into main
2022-02-04 16:31:14 +01:00
Jordi Boggiano
db8ea45295
Fix enum parsing when the syntax is "enum foo:string {}" without space between name and type, fixes #10498
2022-02-02 17:48:45 +01:00
Jordi Boggiano
06e445ce02
Drop PHP <7.2 and HHVM support from autoload_real, individual autoload files are kept as is for BC
2022-01-04 11:55:36 +01:00
Michael Voříšek
4fdc8b8ee1
dirname(__FILE__) no longer needed
2022-01-04 11:22:13 +01:00
Jordi Boggiano
e1bf45aa80
Fix issue parsing php files with unterminated comments found inside backticks, fixes #10385
2021-12-22 21:42:19 +01:00
Helmut Hummel
0b9e1da4fc
Allow recursively call composerRequire ( #10312 )
...
Fixes : #10311
Related: #10065
2021-11-25 20:50:26 +01:00
Jordi Boggiano
6aa8a466b7
Fix tests
2021-11-10 22:10:36 +01:00
Jordi Boggiano
d64d1adf61
Rewrite php file cleaning step to be less regex intensive and support extreme cases better, fixes #10106 ( #10107 )
2021-10-02 14:39:39 +02:00
Jordi Boggiano
8cd2d0e541
Fix scanning of classmaps in files containing invalid Unicode, fixes #10102
2021-09-15 11:31:43 +02:00
Jordi Boggiano
d8054d1d2f
Add more possessive quantifiers, unicode flag and support for more post-heredoc syntax, fix test file syntax being invalid
2021-08-29 12:23:02 +02:00
Jordi Boggiano
3f79e59f69
Add test assertions for heredoc marker inside the text
2021-08-23 13:14:16 +02:00
jrfnl
b66b23a03f
ClassMapGeneratorTest: add test with consecutive duplicate heredoc markers
...
... as well as a test with heredoc markers with only a newline character between the start and end marker.
2021-08-21 17:45:42 +02:00
jrfnl
e729c418dd
ClassMapGenerator: add test for "marker in text" bug
...
In PHP < 7.3, the heredoc/nowdoc marker was allowed to occur in the text, as long as it did not occur at the very start of the line.
This was also not handled correctly.
Ref: https://www.php.net/manual/en/migration73.incompatible.php#migration73.incompatible.core.heredoc-nowdoc
2021-08-11 22:23:24 +02:00
jrfnl
9588654ae3
ClassMapGenerator: add tests for "long heredoc" bug
...
... to proof the existence of the bug and demonstrate the effect.
Note: in the test the backtrack limit is being lowered (and restored back to the default afterwards) to prevent the tests needing ridiculously huge test fixture files.
2021-08-11 22:21:57 +02:00
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
Nicolas Grekas
ba94445bb9
Ensure InstalledVersions reports info about all currently registered class loaders
2021-01-27 10:39:35 +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
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
Simon Berger
80a75e9959
Minor code improvements
2020-09-20 02:16:28 +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
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
remorhaz
8df263a756
Test added for issue #8622 fix
2020-02-26 17:39:54 +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
Jordi Boggiano
3b9d6769bf
Fix class names in comments being parsed in short_open_tags files, fixes #7289
2018-05-04 11:02:12 +02:00