1
0
Fork 0
Commit Graph

521 Commits (c9ff588d686df3858c1069ca62ffcb220601848c)

Author SHA1 Message Date
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