1
0
Fork 0
Commit Graph

340 Commits (e83f7c292985e4e78722afe85e4759cacc7127cc)

Author SHA1 Message Date
Jordi Boggiano 8974a1ac92 Ignore ambiguous classes in tests/fixtures dirs, fixes #2858 2014-03-31 21:36:48 +02:00
Daniel Karp e3be04c443 Don't show Ambiguous class resolution warning if class when not ambiguous
if a class or interface is defined twice in the same class, this should not produce a warning
2014-03-30 12:53:15 -04:00
Jordi Boggiano 781c97fa9b Refactor to avoid global static state 2014-03-29 17:46:55 +01:00
Jordi Boggiano c3ab09750d Merge remote-tracking branch 'johnikx/ambiguous-reference-warning' 2014-03-29 17:29:55 +01:00
Jan Brecka b94838169d show warning only instead of throwing exception 2014-03-24 14:34:02 +01:00
Jordi Boggiano fc9e1d0cff CS fixes, refs #2823 2014-03-24 00:31:08 +01:00
Jan Brecka a41370b021 fix plural in exception message 2014-03-21 14:26:54 +01:00
Jan Brecka ea7717c8e5 improve exception message 2014-03-20 14:24:42 +01:00
Jan Brecka 13b57112a9 Throw RuntimeException when ambiguous reference was found. 2014-03-20 13:37:05 +01:00
Fred Emmott 7d3274224a Only look for .hh files at runtime if using HHVM
The ClassMap generator will look regardless, but that's not a runtime
cost, so seems desirable (in case composer install/update needs to be
called with php5 for some resaon)
2014-03-18 16:21:45 -07:00
Fred Emmott 734e5e2f2b Add autoload support for .hh files (HHVM)
HHVM is adding support for an alternative extension for files using
HHVM-specific features. Support them in the Class Map and PSR4
autoloaders.

Trivial example: https://github.com/fredemmott/hh_extension_toolset
2014-03-18 14:37:44 -07:00
Jordi Boggiano 5fb005631a Tweaking dispatchScript method to be in line with the rest, and add devMode to *_AUTOLOAD_DUMP events 2014-03-01 21:22:01 +01:00
Jordi Boggiano 023ff131aa Merge remote-tracking branch 'bamarni/autoload-dev' 2014-03-01 20:28:31 +01:00
Jordi Boggiano cea7c07cf2 Fix CS 2014-03-01 19:58:37 +01:00
Bilal Amarni db91454a13 added an autoload-dev section 2014-02-28 00:27:03 +01:00
Olivier Laviale 40e484ed38 Fixed an issue that would lead to scattered autoloading files 2014-02-20 23:18:48 +01:00
Dave Hulbert 81aa3a850c Fix some PHP doc blocks 2014-02-11 10:09:30 +00:00
Nicolas Grekas 00a6f8e38d dedicated scope isolation function for autoload_real 2014-02-06 11:53:42 +01:00
Jordi Boggiano ed02997a7b Fix mode and add docblock, refs #2644 2014-02-06 09:44:14 +01:00
Jordi Boggiano d26dda5c95 Merge remote-tracking branch 'olvlvl/improved_package_sorting_alone' 2014-02-06 09:41:50 +01:00
Nils Adermann aef0483cc9 Merge pull request #2667 from nicolas-grekas/master
scope isolation for user includes
2014-02-05 18:24:55 +01:00
Nicolas Grekas 6d7b9afc4b scope isolation for user includes 2014-02-05 17:33:06 +01:00
Jérôme Macias 01cd990995 Fix PSR-4 autoload classmap generator 2014-02-03 16:53:56 +01:00
Olivier Laviale 17278999ba Coding style compliance 2014-01-29 14:36:34 +01:00
Olivier Laviale 46776c8e23 Improved package sorting 2014-01-29 14:15:32 +01:00
René Kerner b0ec8ee096 * added exclude-from-classmap feature
* updated to latest master version
2014-01-27 11:42:54 +01:00
Jordi Boggiano 3c5000ad7f CS tweaks and cleanups, allow "" to set fallback dirs, refs #2459 2014-01-03 16:31:23 +01:00
Jordi Boggiano b23742e30c Merge remote-tracking branch 'donquixote/feature/psr4-complete' 2014-01-03 14:56:36 +01:00
Stan Lemon 5fd3223aec Updates per @stof 2013-12-23 11:27:33 -05:00
Stan Lemon d6c46f2091 Allow the autoloader suffix to be configured from a project's composer.json 2013-12-22 22:01:42 -05:00
Andreas Hennings c0aad84d8b Validation to make the combination of target-dir with psr-4 illegal. 2013-12-14 16:33:59 +01:00
Andreas Hennings 39c09d5192 Add psr-4 stuff in a few more places. 2013-12-14 16:28:27 +01:00
Andreas Hennings bbf6278905 AutoloadGenerator to support PSR-4. Tests included. 2013-11-26 02:53:44 +01:00
Andreas Hennings b08179e399 PSR-4 ClassLoader: Bug fix: PEAR-like path needs ".php" appended. 2013-11-25 23:22:31 +01:00
Andreas Hennings 5dd3c12d3d Further improve comments. 2013-11-25 23:22:31 +01:00
Andreas Hennings 2e80d148f8 PSR-4 loader: Fix comments: PSR-0 related methods should have comments refering to PSR-0 and prefixes. PSR-4 related methods should have comments refering to PSR-4 and namespaces. 2013-11-25 23:22:30 +01:00
Andreas Hennings c49a651d81 PSR-4 class loader: Add getters for PSR-4 prefixes. Rename PSR-0 related attributes by appending *Psr0. Add more comments. 2013-11-25 23:22:30 +01:00
Andreas Hennings 8142126b16 Add PSR-4 class loader. (tests needed) 2013-11-25 23:22:30 +01:00
Jordi Boggiano 50fbfe4d63 Filesystem/autoload fixes for windows, refs #2304, #2342, #2365 2013-10-28 11:01:17 +01:00
Jordi Boggiano 7682bc0d60 Merge remote-tracking branch 'Devolicious/feature/no-prepend' 2013-10-16 12:15:36 +02:00
Ruud Denivel c7bb3ad746 refactor prepend autoloader from cli option to config var (prepend-autoloader) in composer.json 2013-10-14 18:38:30 +02:00
Jordi Boggiano 11a0d16ccc CS fixes 2013-10-11 20:12:45 -03:00
Ruud Denivel 65c10daaf8 disable prepend option on install 2013-10-09 18:18:34 +02:00
Martin Hasoň 3c0a620ad5 Fixed path analysis 2013-09-26 14:34:41 +02:00
Nils Adermann 242c58c789 Merge pull request #2179 from naderman/plugins
Plugins
2013-09-06 04:42:27 -07:00
Jordi Boggiano 9b70b89b8f Merge pull request #2210 from Firehed/master
Change 'generated' notice to @phpdoc-style annotation
2013-09-02 03:12:29 -07:00
Nils Adermann 786ea2929b Merge remote-tracking branch 'github-composer/master' into plugins
* github-composer/master:
  Make sure directories we are downloading to are empty
  Fix parsing of trunk in SvnDriver, fixes composer/satis#88
  Fix file layout in unit tests
  Fix parse error thrown in PHP5.5+
2013-08-31 15:43:25 +02:00
Nils Adermann 3960edd64e Turn EventDispatcher into generic solution handling plugins as well 2013-08-30 12:51:41 +02:00
Alan Hollis ede2b37ae2 Fix parse error thrown in PHP5.5+
When running composer update the file generated by AutoloadGenerator was
not able to be parsed by php due to a require statement inside the foreach
loop.

The fix is to make the statement work the same as the
autoload_namespaces.php require is done.

Issue occured using the following php versions

PHP 5.5.1-2+debphp.org~precise+2
PHP 5.5.3-1+debphp.org~precise+2
2013-08-30 11:46:39 +01:00
Firehed 046d55e886 Change 'generated' notice to @phpdoc-style annotation
While it isn't an official part of the syntax, it integrates better with other
tools that ignore diffs on generated code.
2013-08-27 16:08:38 -07:00
Benji Schwartz-Gilbert f5048059d8 Fixes the autoload_namespaces generator for packages in the root of the vendor directory 2013-08-18 10:57:48 -07:00
Jordi Boggiano e3a10b31ab Abort quickly if the only match is class= in a file 2013-08-13 17:37:41 +02:00
Jordi Boggiano 3346609c5d Skip best adapter since it can create issues on some platforms, fixes #2168 2013-08-12 15:58:13 +02:00
Jordi Boggiano 7b81d51a38 Merge remote-tracking branch 'digitalkaoz/classmap_generator_finder' 2013-08-12 02:04:15 +02:00
Andreas Hennings ce8a9aae5b Slightly nicer heredoc in AutoloadGenerator::getIncludePathsFile() 2013-08-01 17:03:32 +02:00
Andreas Hennings 5369904dd3 autoload_files.php should return an array of files, instead of directly including them. 2013-08-01 15:53:54 +02:00
Andreas Hennings 8e9bdfb4da Factor the filesCode generation into a separate method. 2013-08-01 15:53:54 +02:00
Andreas Hennings f98a8f472e Generate an autoload_files.php next to autoload_namespaces.php and autoload_classes.php 2013-08-01 15:53:54 +02:00
Robert Schönthal 860483e97e reverted simplification cause of php < 5.3.6 2013-07-09 15:53:27 +02:00
Robert Schönthal f75dda759d simplified extension check in classmap generation 2013-07-09 15:33:04 +02:00
Robert Schönthal 963f189fb2 bumped finder version, reverted warning suppression 2013-07-05 12:27:48 +02:00
Robert Schönthal 1a4a104df0 use best finder adapter 2013-07-05 09:24:54 +02:00
Robert Schönthal 4af410e1b9 using finder for classmap generator 2013-06-29 22:46:04 +02:00
Jordi Boggiano 8d0b7f278e CS fixes 2013-06-13 13:28:24 +02:00
Pavel Savinov 831bd844bd Almost PHPDoc problems fixed 2013-06-13 11:05:44 +11:00
David Simon 2acb02cda9 Fixed bug parsing multiline strings with 'escaped' newlines 2013-05-21 16:29:25 -04:00
Jordi Boggiano 2e25a9298d Document a hack 2013-05-12 23:43:54 +02:00
Taylor Otwell 60cd875cc2 Added "pre-autoload-dump" event.
This event is fired before the autoload file is generated, for either
an install or update command.
2013-05-06 09:37:21 -05:00
Jordi Boggiano 976fe48a72 Optimize grabbing of first char 2013-05-06 10:16:30 +02:00
Jordi Boggiano 94175ce432 Make performance of the class loader more constant across classes 2013-05-05 10:58:52 +02:00
Jordi Boggiano 5ba147663d Use ClassLoader::set to initialize the class loader paths 2013-05-05 10:57:21 +02:00
Jordi Boggiano dc71ba557b Consistently use arrays as paths for a given namespace prefix 2013-05-05 10:56:46 +02:00
John Boehr caad88c047 Update AutoloadGenerator.php
This should fix an issue with this commit:
87a42c2f01

This commit is causing a parse error in autoload_namespaces.php:
return array(
    'zsql' => 'phar://' . '$vendorDir . '/jbboehr/zsql/build/zsql.phar',

A similar problem happens when using autoload.files as well.
2013-05-02 16:04:39 -07:00
Jordi Boggiano 5264d0637b Fix regression added in 33af9eea95, fixes #1841 2013-04-28 22:50:24 +02:00
Jordi Boggiano 566313834a Add workaround for php bug 64634 in copy 2013-04-28 17:03:05 +02:00
Jordi Boggiano 33af9eea95 Always dump packages, even if only an alias is added, fixes #1809 2013-04-28 15:33:01 +02:00
Jordi Boggiano 3ce71466f1 Treat empty paths in autoloader as ".", fixes #1727 2013-04-07 11:34:58 +02:00
Martin Hasoň 07d2f17afe [Autoload] Make all paths relative for file portability 2013-04-05 15:01:51 +02:00
Martin Hasoň 48444a028c Added support for vendor dir excluded from working dir 2013-04-01 09:27:50 +02:00
Jordi Boggiano e1eb35455f Merge pull request #1743 from sandermarechal/abs-path
Fix shortest absolute paths from cwd to classmap path
2013-03-31 05:18:56 -07:00
Sander Marechal 132f2a9d5d Cache getcwd() result 2013-03-31 13:23:51 +02:00
Sander Marechal c10e25a945 Use cross-platform absolute path check 2013-03-31 13:20:01 +02:00
Jordi Boggiano bb95a0a788 Fix docblocks 2013-03-30 19:49:59 +01:00
Sander Marechal d7697574ff Fix shortest absolute paths from cwd to classmap path 2013-03-29 17:09:39 +01:00
Jordi Boggiano 3cc5698e7b Allow PHP 5.2 autoloaders to consume namespace, classmap and include path files, fixes #1730 2013-03-27 18:45:33 +01:00
Jordi Boggiano d929a0813a Prepend the ClassLoader autoloader to avoid calling other previously registered autoloaders, fixes #1699 2013-03-16 16:14:55 +01:00
Jordi Boggiano 87a42c2f01 Fix CS 2013-03-06 23:10:03 +01:00
Jordi Boggiano 95a6be2396 Merge remote-tracking branch 'mnishihan/master' 2013-03-06 23:08:36 +01:00
Jordi Boggiano 8d55b9cced Merge remote-tracking branch 'ronnylt/script-event-post-dump-autoload'
Conflicts:
	tests/Composer/Test/Autoload/AutoloadGeneratorTest.php
2013-02-22 18:42:29 +01:00
Jordi Boggiano 5a484cb3a9 Make sure target-dir plays well with classmap and files autoload, for root and deps, refs #1550 2013-02-19 15:23:43 +01:00
Jordi Boggiano ab1256e135 Merge remote-tracking branch 'cmodijk/master' 2013-02-19 14:21:31 +01:00
Cliff Odijk 5127fe8359 added type check to autoloader fixes #1504 2013-02-14 00:10:18 +01:00
Jordi Boggiano 5165008be7 Merge remote-tracking branch 'pierredup/master' 2013-02-12 10:17:49 +01:00
Jordi Boggiano e33aebc75d Fix cs 2013-01-17 17:15:22 +01:00
Jordi Boggiano 1bd01a8b0b Merge remote-tracking branch 'joeholdcroft/autoload-namespace-prepend' 2013-01-17 17:14:27 +01:00
Joe Holdcroft 7d5e4f76fb Bug fix & changing loop + array_unshift to array_merge 2013-01-17 14:12:03 +00:00
M N Islam Shihan 41e91f3064 Fixed an issue when a phar file is used in "files" option in composer.json 2013-01-16 00:29:02 +06:00
Pierre du Plessis 84b34b70e0 Add config option to set if the PHP include path should automatically be used when generating the autoloader 2013-01-14 11:15:06 +02:00
Ronny López f627c3c603 Make Event devMode argument optional (false by default). 2013-01-10 18:12:46 +01:00
Ronny López e5cbf83185 Added post-autoload-dump script event. 2013-01-10 15:04:20 +01:00
Jordi Boggiano c80cb76b9b Always prepend autoloaders to avoid tools (i.e. phpunit) taking precedence over the project autoloader 2013-01-08 17:34:37 +01:00
Jordi Boggiano 514a3cde77 CS fixes 2013-01-05 20:01:58 +01:00
Jordi Boggiano 1beccf9f0f Fix access of the static loader property 2012-12-25 16:08:36 +01:00
Martin Hasoň 45d7eb5b53 Fixed generating packageMap in AutoloaderGenerater (fixes generating include_paths.php file) 2012-12-17 11:13:07 +01:00
Martin Hasoň 03e355f063 Fixed topological sorting of packages in AutoloadGenerator 2012-12-14 15:21:40 +01:00
Jordi Boggiano 51eca2cdfc Fix matching of classes in trailing non-php text, fixes #1409 2012-12-13 17:39:17 +01:00
Jordi Boggiano aefe3a0b11 Add support for .inc files in classmap, fixes #1396 2012-12-08 21:54:51 +01:00
Jordi Boggiano c5f3a6febd Fix optimized autoloader generation for PSR-0 configs that include non-existent dirs, fixes #1286 2012-11-27 14:23:10 +01:00
Jordi Boggiano cd4d569540 Use old-style named subpattern syntax to avoid problems with antiquated PCRE 2012-11-26 13:21:03 +01:00
Jordi Boggiano 5a01ada383 Restrict unicode chars allowed to what php core allows, refs #1361 2012-11-25 14:07:06 +01:00
Jordi Boggiano 2d7c3c9d27 Tweak #1361 to re-enable support for unicode classnames 2012-11-25 13:52:42 +01:00
Igor Wiedler 530991217b Support classmap generation for classes without space after class name
Class names with multi-byte characters are not supported.

Closes #1360.
2012-11-25 12:08:50 +01:00
Joe Holdcroft 538cdc914b Making prepend work with fallbacks & coding standards 2012-11-14 11:46:49 +00:00
Joe Holdcroft 6510ee5c4c Refactoring ClassLoader::add() to return early 2012-11-14 11:41:08 +00:00
Joe Holdcroft e74223470a - Adding prefix option to ClassLoader::add()
- Adding set method to ClassLoader for overwriting
2012-11-14 10:34:19 +00:00
Jordi Boggiano de3188ca7d Remove target dir for classmap autoloads of the root package, fixes #1308 2012-11-13 17:09:22 +01:00
Jordi Boggiano 75da832cd3 Fix parsing of large files that go over the PCRE limits 2012-11-12 12:33:46 +01:00
Jordi Boggiano bd72e3765b Restore early return to happen as early as possible 2012-11-12 10:46:14 +01:00
Victor Berchet 86bb1be61f [ClassMapGeneratot] Filter out non php code
Otherwise files like https://github.com/propelorm/Propel/blob/master/generator/lib/behavior/i18n/templates/queryUseI18nQuery.php
would fail ("class" keyword would not be filtered out by php_strip_whitespace())
2012-11-12 09:15:35 +01:00
Victor Berchet ab48114531 [ClassMapGenerator] Improve error message when the path does not exist
i.e. the composer.json has a typo
2012-11-12 07:33:15 +01:00
Victor Berchet ff5c428d60 [ClassMapGenerator] Refine the findClasses method
The code could not throw
2012-11-12 07:32:47 +01:00
Jordi Boggiano 5a763cf010 Fix scanning of empty namespace{} blocks 2012-11-11 16:29:49 +01:00
Jordi Boggiano 2368185774 Merge branch 'classmap-optim' 2012-11-11 15:56:13 +01:00
Jordi Boggiano 487e66d0a9 Allow loading of multiple composer autoloaders concurrently, fixes #1248 2012-11-10 21:54:23 +01:00
Jordi Boggiano 4c3e7802a4 Fix traits on 5.3 and handling of empty namespace blocks 2012-11-10 17:58:18 +01:00
Jordi Boggiano 8e9678a5ba Optimize classmap generation by avoiding the use of token_get_all()
First of all this seems way faster than iterating over all tokens, but
especially it reduces memory usage drastically for very large files
2012-11-10 17:50:20 +01:00
Jordi Boggiano 348ec26c91 Always return false or a class name, fixes #1231 2012-10-18 18:55:49 +02:00
Jordi Boggiano e79e7dcd8d Merge remote-tracking branch 'hason/classgenerator' 2012-10-17 17:19:23 +02:00
Martin Hasoň 9582a8abfa Added tests for consistency of data in AutoloadGenerator::sortPackageMap 2012-10-17 12:03:52 +02:00
Martin Hasoň 1ff1b8ac1f Sorted generated classmap 2012-10-17 12:00:45 +02:00
Martin Hasoň c63f0d9642 Preserved original position of package if required packages are before this 2012-10-17 10:50:53 +02:00
Martin Hasoň e75abcbb41 Fixed order of packages in the classmap autoloader 2012-10-17 01:40:15 +02:00
Martin Hasoň b7f96d5dc3 Fixed autoloader generator 2012-10-17 01:18:22 +02:00
hinikato 1989479634 Fixed class normalization for class map case. 2012-10-16 13:59:33 +03:00
Adrien Brault fd58c24a9f ComposerAutoloaderInitXXX::getLoader behaves like a ClassLoader singleton
Calling ComposerAutoloaderInit::getLoader twice when a package requires a .php file containing functions, lead to the functions to be declared twice, and cause an error.

In my case, using behat + symfony2extension + assetic, the error that occured:

PHP Fatal error:  Cannot redeclare assetic_init() (previously declared in vendor/kriswallsmith/assetic/src/functions.php:20) in /vendor/kriswallsmith/assetic/src/functions.php on line 26

Fatal error: Cannot redeclare assetic_init() (previously declared in /vendor/kriswallsmith/assetic/src/functions.php:20) in /vendor/kriswallsmith/assetic/src/functions.php on line 26
2012-09-14 11:21:34 +02:00
Filip Procházka 80e9999d1c typo 2012-09-06 17:26:42 +02:00
Filip Procházka 9d8db4e148 AutoloadGenerator: respect dependencies, when requiring files 2012-09-06 15:07:07 +02:00
Christophe Coevoet 66b83a39d2 Removed a PHP notice when dumping the autoloader
This occured when the root package has a target-dir but does not have
configure a PSR-0 autoloader.
Fixes #1028
2012-08-24 23:25:14 +02:00
Jordi Boggiano 521bbe6556 CS fixes 2012-08-18 16:22:15 +02:00
Jordi Boggiano ef637c8f1a CS fixes 2012-08-18 16:18:41 +02:00
Jordi Boggiano dbd44d6bcf Handle empty namespaces 2012-08-15 13:10:56 +02:00
Jordi Boggiano 44d7d4a38e Make PSR0 scanning optional 2012-08-14 20:28:49 +02:00
Jordi Boggiano ee14950972 Add whitelist to the classmap generator to allow skipping of Test files 2012-08-14 19:55:31 +02:00
Jordi Boggiano 48c46ce3b6 Automatically generate classmaps for all PSR-0 packages to speed things up, fixes #541, fixes #127 2012-08-14 19:55:30 +02:00
Jordi Boggiano 289d23b5cc Optimization for autoload misses, refs #964 2012-08-14 19:50:19 +02:00
Jordi Boggiano 4f0ad98905 Always include the ClassLoader since autoload_real is included only once, refs #963 2012-08-14 19:13:39 +02:00
Jordi Boggiano 30fdf379aa Minor consistency tweaks 2012-08-14 19:05:34 +02:00
Victor Berchet d2dc73e361 [Autoload] Set $vendorDir et $baseDir in ComposerAutoloaderInitTargetDir::getLoader() 2012-08-06 11:33:17 +02:00
Victor Berchet 4c82c35dbc [Autoload] Generate the autoloader_real file in the target directory 2012-08-06 10:56:57 +02:00
Victor Berchet 2c065416eb [Autoload] generate an autoload_real.php file 2012-08-01 10:12:46 +02:00