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