Jordi Boggiano
4940009f83
Bump phpstan to level 3 ( #9734 )
...
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
2021-03-09 15:49:40 +01:00
Jordi Boggiano
d0aac44ed2
Auto-detect dev-mode in autoload-dump and deprecate dump-autoload --no-dev ( #9714 )
2021-02-24 21:17:05 +01:00
Jordi Boggiano
09639a0cfc
Merge pull request #9670 from Ayesh/enums
...
Add support for autoloading Enums
2021-02-24 16:03:58 +01:00
Jordi Boggiano
d4073a40f9
Prepend runtime-autoloaders so that dependencies get loaded over Composer bundled packages
...
As Composer is generally compatible with newer versions of Symfony than the bundled ones, this should
not be a problem if dependencies are shared, and it ensures that the most relevant code gets loaded.
2021-02-12 11:14:40 +01: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
Ayesh Karunaratne
980aac6eb2
Minor improvement to ClassLoader::register no-op block
...
A recent change in the ClassAutoloader (#9635 ) added support for specifying a vendorDir, and `\Composer\Autoload\ClassLoader::register` now has a if-elseif-else chain.
The first block has a `// no-op` comment, followed by an `elseif` block. It's more readable to `return;`, and remove the `elseif` for readability.
2021-01-29 20:10: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
b78b2df5bb
Reuse devPackageNames if available instead of filtering the dev packages out by looping through all requirements
2020-11-12 10:41:07 +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
Jordi Boggiano
ec960d12b0
Merge remote-tracking branch 'jakubboucek/feature/jb-platform-check-tigger-error'
2020-11-04 21:54:12 +01:00
Jordi Boggiano
6c31744c04
Disable full platform-check for extensions by default, now set to php-only, refs #9412
2020-11-04 21:50:06 +01:00
Jakub Bouček
3f63bc9205
AutoloadGenerator: Trigger native PHP error on platform checks fails
2020-11-04 12:28:14 +01:00
Jakub Bouček
b83b186ac0
AutoloadGenerator: Send error HTTP status on error
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
Simon Berger
974e7ba296
Removed unneccesary elseifs
2020-09-20 02:16:28 +02:00
Simon Berger
a6475a7118
Removed unused variables, properties and parameters of private functions
2020-09-20 02:16:28 +02:00
Lars Strojny
696f27ca83
Enable APCu if prefix is set
2020-09-16 13:44:51 +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
Simon Berger
bae227ec2d
Changed all substr calls used to compare fragments of text to strpos
...
Some additional code cleanups in those classes
Reverted change causing issues
2020-09-07 21:08:34 +02:00
Jordi Boggiano
fc462ab978
Merge branch '1.10'
2020-09-04 12:18:24 +02:00
Alexander M. Turek
fc961dce70
Call call_user_func_array() with a numeric arguments array.
2020-09-03 23:26:09 +02:00
Yanick Witschi
bd6f62c535
Consistently reuse the new PlatformRepository::isPlatformPackage() method
2020-09-01 17:19:19 +02:00
Ayesh Karunaratne
e3c75b3e87
Replace cascading str_replace() calls with strtr()
...
Replaces cascading str_replace() calls with a single strtr() call that makes it mode readable and provides a micro performance improvement.
Some instances of cascading str_replace() calls were not refactored due to the potential recurring replacement patterns.
2020-06-23 04:10:26 +07:00
Jordi Boggiano
c8731598cc
Merge branch '1.10'
2020-06-16 17:16:42 +02:00
Graham Campbell
fa799970ad
Replace whitelist with allow list
2020-06-07 22:15:09 +01:00
Ayesh Karunaratne
71ddc487fe
Platform Check: Add a special case for `zend-opcache`.
...
Ref #8946
The platform-check feature maps `ext-X` to `extension_loaded('X')` calls.
While most of the extensions can be tested this way, the `zend-opcache`
extension requires `zend opcache` to be probed instead of the `zend-opcache`
name.
This commit adds a special case for `zend-opcache` to use the correct name
in `extension_loaded()` calls in generated `platform_check.php` file.
2020-06-05 02:09:31 +07:00
Jordi Boggiano
5ef7765cbd
Merge pull request #8923 from staabm/glob-classmap
...
Autoload-Generator: support glob patterns in classmaps
2020-06-03 13:12:44 +02:00
Jordi Boggiano
1e08097a17
Fix phpstan warning
2020-06-01 16:05:13 +02:00
Jordi Boggiano
a9affa8413
Add missing use statement
2020-06-01 15:58:34 +02:00
Jordi Boggiano
e85da00dff
Add a way to ignore only some packages in --ignore-platform-reqs, and make the platform check ignore those packages which were ignored as requirements, fixes #8861
2020-06-01 15:43:24 +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
Markus Staab
6a0e02db1b
Autoload-Generator: support glob patterns in classmaps
2020-05-23 21:22:07 +02:00
Jordi Boggiano
c7fb15faf4
Update to MatchAllConstraint
2020-05-21 16:12:41 +02:00
Jordi Boggiano
45d3e133a4
Avoid checking for unbounded constraints in platform checks
2020-05-19 17:15:08 +02:00
Jordi Boggiano
62d0443e07
Avoid checking for readline in non-CLI contexts, fixes #8909
2020-05-19 16:46:33 +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
755a73baa9
Only check for pcntl on cli SAPI, fixes #8828
2020-04-23 20:44:14 +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
Ayesh Karunaratne
280f02b4bc
Update HTTP URLs to their HTTPS if they already redirect automatically
2020-04-13 06:22:02 +07:00
Jordi Boggiano
80505e745e
Fix phpstan issues
2020-04-07 14:40:51 +02:00
Jordi Boggiano
87757de6bc
Merge branch '2.0'
2020-04-07 09:39:00 +02:00
Jordi Boggiano
86677ad172
Avoid scanning files twice when generating optimized autoloaders, fixes #8683
2020-03-13 18:28:27 +01:00
Jordi Boggiano
e15f7d6bb7
Merge branch 'master' into 2.0
2020-03-13 11:18:23 +01:00
Mathias Berchtold
1ebeb143ae
Fix PHP 8 warnings
...
The PR fixes this PHP 8 warning:
PHP Deprecated: Required parameter $ambiguousClasses follows optional parameter $blacklist in phar://.../composer.phar/src/Composer/Autoload/AutoloadGenerator.php on line 339
2020-03-11 23:00:04 -05:00
Jordi Boggiano
24a5a0dacb
Skip invalid PSR-0/4 classes from optimized autoloader, fixes #8403
2020-03-10 15:40:45 +01:00
Jordi Boggiano
34fb609aad
Merge pull request #8652 from clxmstaab/more-ambiguous
...
report ambiguous classes across all classmaps
2020-03-10 10:47:37 +01:00
Markus Staab
cc5c5dbee1
merge fix from https://github.com/composer/composer/pull/8651
2020-03-02 13:28:10 +01:00
Markus Staab
04a18c72ba
fix CS
2020-03-02 13:25:54 +01:00
Markus Staab
883a179dec
removed superflous code
2020-03-02 13:24:06 +01:00
Markus Staab
61e0bf1cb5
fix typo
2020-03-02 13:23:33 +01:00
remorhaz
339ee953e5
Fix incorrect --no-dev handling of replaced packages
2020-02-26 17:39:26 +02:00
Markus Staab
30b1dfb8a9
report ambiguous classes across all classmaps
2020-02-25 16:09:36 +01:00
Jordi Boggiano
8fd70d2dc4
Target ClassMapGenerator ignoring of invalid PSR classes for 2.0
2020-02-14 10:07:51 +01: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
Жаков Виталий
48c7442b63
should be || not OR
2020-01-20 16:25:38 +05:00
Жаков Виталий
f02989ceba
revert formatting
2020-01-15 18:27:12 +05:00
Жаков Виталий
a4dc076dc8
fix file load errors
2020-01-15 18:09:42 +05:00
Жаков Виталий
8429a48dac
Change only modified files
2020-01-15 17:09:44 +05:00
Jordi Boggiano
3496431a6c
Fix PSR warnings for optimized autoloader, refs #8397 , refs #8403
2019-11-01 17:13:02 +01:00
Jordi Boggiano
d059d90ecf
Fix PSR warnings for optimized autoloader, refs #8397 , refs #8403
2019-11-01 16:18:42 +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
f6b8643dcd
Change PSR-fix for optimized autoloader to only warn for now, refs #8397
2019-11-01 14:50:15 +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
9f6e45051a
Optimize template for striping non-php blocks
2019-09-20 16:59:53 +03:00
zakonnic
ec96e5de64
Fix incorrect strip of non-php blocks in the file
2019-09-20 12:58:09 +03:00
Jordi Boggiano
9d642fe9af
Merge pull request #8085 from danepowell/issue-8065-2
...
Fixes #8065 : Sort plugins deterministically before loading.
2019-06-07 16:53:49 +02:00
ShiraNai7
a2b647a99e
Handle absolute phar:// paths in autoload_static.php
2019-04-11 20:23:31 +02:00
Dane Powell
188e2b0044
Merge branch 'master' into issue-8065-2
2019-04-09 11:15:33 -07:00
Dane Powell
3501423eab
Undo previous change.
2019-04-09 11:15:19 -07:00
Dane Powell
d4150cafc4
Move sortPackages to static helper class.
2019-04-09 10:59:02 -07:00
Dane Powell
266a41e046
Refactor sortPackageMap to depend on separate sortPackage function.
2019-04-09 10:58:47 -07:00
Dane Powell
3e6300b5e8
code style fix.
2019-04-06 08:49:45 -07:00
Dane Powell
043b33ed38
Fixes #8065 : Sort plugins deterministically before loading.
2019-04-06 08:44:23 -07:00
Rob Bast
4ea8e48bf8
leading whitespace is optional, but newline is not
2019-04-04 08:45:08 +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
Den Girnyk
3b6b63784f
Fix: Keep replaced packages for autoload dumping with --no-dev
2019-01-28 17:02:32 +01:00
Den Girnyk
5b78ea529a
Fix: Keep replaced packages for autoload dumping with --no-dev
2019-01-18 11:45:35 +02:00
Jordi Boggiano
2528654c53
Merge branch '1.7'
2018-10-31 18:13:39 +01:00
François-Xavier de Guillebon
114217c6e3
Fix ini_get() for boolean values
2018-10-31 09:55:53 +01:00
Markus Staab
766ceccd00
Print number of classes contained within the generated classmap
...
to give the developer a better feeling about number of dependent classes
2018-08-27 14:51:04 +02:00
Jordi Boggiano
a74b63985e
Avoid filtering dev-require packages when loading plugins/scripts, fixes #7516
2018-08-04 17:43:43 +02:00
Jordi Boggiano
ff59bbdab0
CS fixer
2018-07-24 14:32:52 +02:00
Gabriel Caruso
7d9f8e2247
Improvements
...
Small improvements, such as remove unused imports, unecessaries casts, parentheses, etc.
2018-07-05 07:44:43 -03:00