Jordi Boggiano
3380178798
Introduce a cross-platform safe version of is_readable to support UNC / wsl$ paths on Windows ( #9861 )
2021-05-04 13:25:52 +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
Jordi Boggiano
b7d770659b
CS fixes
2020-11-22 14:52:39 +01: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
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
Markus Staab
6a0e02db1b
Autoload-Generator: support glob patterns in classmaps
2020-05-23 21:22:07 +02: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
24a5a0dacb
Skip invalid PSR-0/4 classes from optimized autoloader, fixes #8403
2020-03-10 15:40:45 +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
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
Andriy Maletsky
ec293adabc
make optimized autoloader respect PSR standards
2019-10-29 20:36:29 +02: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
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
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
Petr /Peggy/ Sládek
8d06832077
Update ClassMapGenerator to work better with symlinks, fixes #7252 , closes #7251
2018-04-12 09:37:26 +02:00
Jordi Boggiano
bf940fb21b
Fix exclude-from-classmap when a package is installed as a symlink, fixes #6397
2017-08-06 17:21:04 +02:00
Jordi Boggiano
81f65b7a2a
Fix exclude-from-classmap being ignored when cwd has the wrong case on case insensitive filesystems
2017-07-06 09:53:33 +02:00
Jordi Boggiano
c289776d94
Force-collapse multiple slashes into one, fixes #5387
2016-05-31 19:37:39 +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
5822b58c1f
Avoid using realpath when generating classmap, speeds up generation and keeps paths local to project in case of symlinks/path repo
2016-04-01 11:32:04 +01:00
Niels Keurentjes
b059cbe37c
Removed unused variables and includes, fixed functions being called with more arguments than declared.
2016-02-27 23:21:11 +01:00
Niels Keurentjes
0b55a0ca91
Can't use error_clear_last as it was introduced in PHP7.
2016-02-06 02:58:36 +01:00
Niels Keurentjes
6a53b1df42
Further reorganized messy checking code.
2016-02-06 02:40:16 +01:00
Niels Keurentjes
bb08f76ad9
Use error_get_last to verify why php_strip_whitespace would return an empty string.
2016-02-06 02:32:08 +01:00
Niels Keurentjes
86fc85fe56
Add a comment explaining the use of @ instead of Silencer in this specific situation.
2016-02-06 02:04:48 +01:00
Niels Keurentjes
c2d9960898
Ensure exception is thrown when classmaps are requested for corrupted or binary files. Refs #4885
2016-02-06 02:00:54 +01:00
Niels Keurentjes
18cd4f966b
Added silencer utility to more gracefully handle error suppression without hiding errors or worse. Fixes #4203 , #4683
2016-01-25 23:37:54 +01: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
Jordi Boggiano
943107cfe7
Load most specific namespaces always, and dependents before dependencies when building classmaps
...
This also adds notifications of duplicate classes
2015-06-26 14:40:26 +01:00
Jordi Boggiano
e73448ae1e
Add possessive quantifiers to avoid backtracking and fix segfault on large files, fixes #4153
2015-06-16 11:22:45 +01:00
Possum
29ca21f30e
PHP version checks tweaking
2015-05-05 20:18:24 +02:00
Jordi Boggiano
dbfd47eeca
CS fixes
2015-04-15 01:22:19 +01:00
msiebeneicher
7522a33079
Merge branch 'master' of https://github.com/composer/composer into add_exclude
...
# By Jordi Boggiano (30) and others
# Via Jordi Boggiano (37) and Morgan Campbell (1)
* 'master' of https://github.com/composer/composer : (83 commits)
Update 01-basic-usage.md
Revert 331425bcb3
as well, fixes #3612
Revert "Disable overwrites when no-ansi is present, fixes #3612"
Update deps
Use justinrainbow/json-schema 1.4
Improved wording
Fix docs basic-auth => http-basic
Add test for Generics class
Single variable for traits and enums
Use HHVM_VERSION instead of HPHP_VERSION
Add support for using classmap to autoload Hack enums
Re-use existing autoloader suffix if available, fixes #3701
Report Travis CI build success early
Test on HHVM nightly releases. Allow to fail.
Make parseJson safer
Use get home from Config instead of factory
Fix env override regression, fixes #3820
[create-project] Used no progress value for dependencies
Add docBlock and fix CS
Fix output of first line of progress when output is not decorated, refs #3818
...
2015-03-25 16:27:23 +01:00
Fred Emmott
bdf51ab16d
Single variable for traits and enums
2015-03-09 10:05:12 -07:00
Fred Emmott
cb1ea889d6
Use HHVM_VERSION instead of HPHP_VERSION
2015-03-09 10:02:10 -07:00
Fred Emmott
33ea86573e
Add support for using classmap to autoload Hack enums
...
fixes composer/composer#3823
Ran tests with both PHP5.5.9-1ubuntu4.5 and HHVM 3.6. Test fails on HHVM only
if I back out the ClassMapGenerator.php change.
2015-03-09 09:38:02 -07:00
Rob Bast
cb336a5416
Implement writeError throughout Composer
2015-02-25 11:00:35 +01:00