1
0
Fork 0
Commit Graph

342 Commits (98a588eb908f6abb08949cb2cb23693d9a2b8da7)

Author SHA1 Message Date
Martin Herndl 7eca450d9b
Add wildcard support to ignore-platform-req, fixes #10045 (#10083) 2021-11-11 15:56:38 +01:00
Martin Herndl 3013674c92
Refactor ignore platform reqs checks (#10079)
Introduces a `PlatformRequirementFilter` with methods that help to decide if a requirement is ignored or not as discussed in #10045 but without changing behaviour.
2021-11-11 12:24:12 +01:00
Jordi Boggiano 6aa8a466b7
Fix tests 2021-11-10 22:10:36 +01:00
Jordi Boggiano cb0293cf30
Finalize phpstan level 6 for tests dir, closes #10159 2021-11-02 14:32:09 +01:00
Jordi Boggiano 44b69ba77f
Upgrade php-cs-fixer to 3.x and fix CS 2021-10-27 16:21:45 +02:00
megubyte 135f806f6f
phpstan: update tests/Composer/Test/Autoload/* to level 6 standard (#10223) 2021-10-26 21:48:56 +02:00
Martin Herndl bd8b39fe01
Add types to `Package` (#10210) 2021-10-25 13:45:09 +02:00
Jordi Boggiano 9599eb613b
Type annotations 2021-10-16 11:14:10 +02: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
Jordi Boggiano d3c176ec69
PHPStan Level 5 (#10070)
* Bump PHPStan to level 5

* Update seld/phar-utils to latest

* Add phpstan-setup / phpstan scripts
2021-08-21 17:41:52 +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
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
Gabriel Caruso 2a13bb2649 Fixes from PHPStan (#7687)
* fix docblocks

* remove redundant conditional

* fix wrong variable name

* fix wrong namespaces

* add missing private members

* remove unused/redundant arguments

* move testcase class

* exclude TestCase.php

* Tweak RuleWatchGraph type hints

* Tweak doc comment
2018-11-12 15:23:32 +01:00
Jordi Boggiano ff59bbdab0 CS fixer 2018-07-24 14:32:52 +02:00
Jordi Boggiano eedbd218f5 Make sure circular dependencies do not break the autoload dumper, refs #7316, refs #7348 2018-05-31 17:02:04 +02:00
Philipp Fritsche b0be87177d
Filter dev-dependencies from "dump-autoload --no-dev" , fixes #4343 2018-05-08 02:57:26 +02:00
Jordi Boggiano 78ae0a97f7 Terminate quoted strings 2018-05-04 11:02:12 +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
Jordi Boggiano 066351c5b9 Remove use of deprecated getMock method 2018-04-12 10:24:56 +02:00
Petr /Peggy/ Sládek 8d06832077 Update ClassMapGenerator to work better with symlinks, fixes #7252, closes #7251 2018-04-12 09:37:26 +02:00
Gabriel Caruso 885da4c8ef Refactoring tests 2017-12-03 02:41:58 -02:00
Gabriel Caruso afc9a7643e Use PHPUnit\Framework\TestCase instead of PHPUnit_Framework_TestCase 2017-11-30 13:44:43 -02:00
Gabriel Caruso a4b220273e Refactoring Tests (#6849) 2017-11-30 15:58:10 +01:00
Vladimir Reznichenko c8615358cb SCA with PHP Inspections (EA Extended) 2017-09-11 19:40:43 +02:00
Jordi Boggiano 122e422682 CS fixes 2017-03-08 15:16:44 +01:00
Jordi Boggiano 1dcb2b5758 Merge remote-tracking branch 'nicolas-grekas/apcu' 2016-12-07 00:21:13 +01:00
Jordi Boggiano e9d04f2b2d Merge branch '1.2' 2016-12-06 17:04:39 +01:00
Hans-Joachim Michl 817b2747c7 Fix #5672
This fixes the issue reported in #5672.
It just makes sure the ZendGuard encoded files can be autoloaded correctly.
2016-12-06 17:02:27 +01:00
Nicolas Grekas 6d4e60b991 Add --apcu-autoloader option to enable APCu caching of found/not-found classes 2016-12-06 11:21:44 +01:00
Konstantin.Myakshin dc70b40d34 Use implode instead of join 2016-10-11 16:52:29 +03:00
Jordi Boggiano c540dace8c Merge pull request #5765 from fabpot/remove-obsolete-code
removed obsolete code
2016-10-08 11:28:19 +02:00
Fabien Potencier 2853e82400 removed obsolete code 2016-10-06 11:56:54 -07:00
Rob Bast 4213fbc8c6
does not apply for hhvm 2016-09-23 13:27:15 +02:00
Rob Bast 181b172e77
test cases for #5701 2016-09-23 12:22:45 +02:00
Jordi Boggiano 68861c48ed Merge branch '1.2' 2016-09-17 13:27:39 +02:00
SpacePossum 2ae0800cd3 Remove useless concat. 2016-09-16 14:50:34 +02:00
Jordi Boggiano f0f932fca4 Fix classmap test on windows 2016-09-10 12:52:23 +02:00
Vyacheslav Pavlov 108560b9c4 Clean up temp files after a test. 2016-07-21 16:37:26 +03:00
Vyacheslav Pavlov 03995d6caa Added test for 'dump' method of ClassMapGenerator class 2016-07-20 23:33:37 +03:00
Jordi Boggiano 05fab170a7 Merge branch '1.0' 2016-04-24 14:41:02 +01:00
Jordi Boggiano f0d67923a5 Fix classmap generator over anonymous classes extending/implementing something, fixes #5239 2016-04-24 14:40:51 +01:00
Jordi Boggiano 4f6693ad70 Fix regression in 0b44662087, fixes #5199 2016-04-15 15:37:00 +01:00
Jordi Boggiano 0b44662087 Disable static autoloader on HHVM, fixes #5192 2016-04-15 14:57:07 +01:00
Jordi Boggiano 1dc65a40d3 Fix tests, refs #5174 2016-04-11 19:24:19 +01:00
Nicolas Grekas fd2f51cea8 Speedup autoloading on PHP 5.6 & 7.0+ using static arrays 2016-04-11 19:38:24 +02:00
Niels Keurentjes 0b55a0ca91 Can't use error_clear_last as it was introduced in PHP7. 2016-02-06 02:58:36 +01:00