1
0
Fork 0
Commit Graph

326 Commits (203ec4b485e43f77a9aa8e5064e72d1c67f96543)

Author SHA1 Message Date
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
Rob Bast adf3b956d0 try to use unique test directories
any tests that use the filesystem should have their own unique directory, as we run our test suite in parallel and
cleanup of tests (removing directories) should not interfere with currently running tests
2016-01-26 09:41:21 +01:00
Alexander Loutsenko fa5de786ff clean garbage dirs in tmp after composer tests #4694 2015-12-14 17:52:37 +03:00
Jordi Boggiano 8072448cf3 Adjust deduplication of files autoloads, refs 9710b26d3f 2015-11-26 10:39:16 +00:00
Jordi Boggiano 1fe690f810 Autoload generator cleanups 2015-11-21 18:33:17 +00:00
Jordi Boggiano 3748c11709 Simplify files autoload include function, and make sure files are included once per package even if exactly the same, refs #4186 2015-11-21 18:30:44 +00:00
Jordi Boggiano 9710b26d3f Merge remote-tracking branch 'jeskew/feature/require_files_but_once' 2015-11-21 17:31:05 +00:00
Jordi Boggiano c0b49d09f3 Merge remote-tracking branch 'cw-ozaki/no-script-dump-autoload'
Conflicts:
	src/Composer/Autoload/AutoloadGenerator.php
	src/Composer/Command/DumpAutoloadCommand.php
2015-11-21 17:14:33 +00:00
Omer Karadagli 4046ae042d Up-level relative paths in exclude-from-classmap 2015-11-12 15:53:47 +00:00
Jordi Boggiano 6c16510743 Add support for wildcards in exclude-from-classmap, refs #1607 2015-10-30 19:12:30 +00:00
Jordi Boggiano f1b0c073ad Tweaked exclude-from-classmap: windows support, normalize paths and make sure they are all package-relative and do not leak to other packages, refs #1607 2015-10-30 00:22:04 +00:00
Jordi Boggiano 084f6de24e Merge remote-tracking branch 'trivago/add_exclude'
Conflicts:
	doc/04-schema.md
	src/Composer/Autoload/AutoloadGenerator.php
2015-10-30 00:00:44 +00:00
Rob Bast b523fc0b7b ran fixers 2015-10-13 11:35:51 +02:00
Jordi Boggiano ce08582671 Fix CS 2015-09-28 10:53:24 +01:00
Bryan Davis cc2b9cfca5 Add cli argument for classmap-authoritative
Add a `--classmap-authoritative (-a)` argument to `composer install`,
`composer update` and `composer dumpautoload`. This enables the same
authoritative classmap behavior as the existing `classmap-authoritative`
configuration setting. The option can be used for creating highly
optimized production autoloaders via `composer install --no-dev
--optimize-autoloader --classmap-authoritative` for projects where
multiple autoloaders are present and unnecessary `file_exists` calls
introduce performance issues.

Closes #4361
2015-08-19 22:18:54 -06:00
voroks 154092ba1a Added removing file 'include_path.php' (if it is empty). 2015-08-19 15:08:27 +08:00
voroks 85de450fe9 Removed some extra assertions. 2015-08-15 16:41:35 +08:00