1
0
Fork 0
Commit Graph

107 Commits (eea7564c9ec428cd82bd4068ab8fcddc5d938779)

Author SHA1 Message Date
Andrii Vasyliev 5b759da174 add getter for global composer 2016-03-29 21:21:44 +00:00
Jordi Boggiano 4207a33ccf Fix escaping 2016-02-29 18:46:21 +00:00
Jordi Boggiano 993942ba54 Escape quotes and backslashes for safety 2016-02-29 14:04:54 +00:00
Jordi Boggiano 49b0bd75b3 Add handling for dir, file and class magic constants when loading plugins, fixes #4975 2016-02-29 13:50:36 +00:00
Jordi Boggiano c9436438ff Add memoization to parseConstraints, saves some (6-7% here) RAM and marginal CPU time 2016-02-24 17:27:42 +00:00
Jordi Boggiano 49d7d65933 Add verbosity input support to IOInterface 2016-01-29 10:14:12 +00:00
Jordi Boggiano 1818b95149 CS fixes 2016-01-26 13:07:18 +00:00
Jordi Boggiano 837fa805ec Code tweaks, refs #4124 2016-01-22 19:09:44 +00:00
Jordi Boggiano ddd140fd1c Rollback plugin api version to 1.0.0 for now, add warning about requiring 1.0.0 exactly 2016-01-22 19:09:03 +00:00
nevvermind 5ec6988218 Fixed docs and removed implementation detail 2016-01-22 13:54:59 +00:00
nevvermind aa45a48283 Refactoring
- changed "SPI" into something more familiar, like "implementation"
- throw exceptions on invalid implementation types or invalid class names
- use null instead of false when querying
- refactored the tests accordingly
2016-01-22 13:51:32 +00:00
nevvermind ec8229ffa3 Remove @since 2016-01-22 13:51:32 +00:00
nevvermind 2051d74774 Added Capable plugins for a more future-proof Plugin API
Plugins can now present their capabilities to the PluginManager, through which it can act accordingly, thus making Plugin API more flexible, BC-friendly and decoupled.
2016-01-22 13:51:32 +00:00
Jordi Boggiano 41d8fdfda8 Restore "Avoid loading plugins that do not match the current plugin api even during installation" but fixed
This reverts commit 0118d69603.
2016-01-18 15:34:08 +00:00
Jose Diaz-Gonzalez 0118d69603 Revert "Avoid loading plugins that do not match the current plugin api even during installation"
This reverts commit 21f5933e01.

Commit 21f5933e breaks fresh installations of cakephp applications, or
any project where a dependency uses a different composer plugin
installer than the upstream project.

Closes auraphp/Aura.Intl#20
2016-01-17 15:08:25 -05:00
Jordi Boggiano 21f5933e01 Avoid loading plugins that do not match the current plugin api even during installation 2016-01-17 16:08:27 +00:00
Jordi Boggiano 977b8c8f41 Fix loading error when plugin is a final class, fixes #4482 2015-11-21 20:35:00 +00:00
Jordi Boggiano bd76506dd8 Disable plugin registration during the whole run when running with --no-plugins, fixes #3910 2015-11-19 17:38:25 +00:00
Jordi Boggiano ce08582671 Fix CS 2015-09-28 10:53:24 +01:00
Rob Bast a1427d7fd6 replace all occurences in code and comments 2015-09-24 16:32:36 +02:00
nevvermind 994b1324bc fix alignment 2015-06-02 19:58:21 +01:00
nevvermind 3032f0a538 Refactor based on code review
- Move the version api getter to the PluginManager And make it such that it can be mocked, but not pollute the public interface. That means "protected" visibility.
- The plugin api version constant should still be used throughout the code.
- Use different fixtures class names
- Use regex possessive quantifiers for performance
- Use full words for readability
2015-06-02 17:40:32 +01:00
nevvermind eb2aa14830 Make plugins have actual constraints instead of fixed versions
Instead of developing plugins against a single, fixed Plugin API version - `"composer-plugin-api": "1.0.0"`, this change will allow plugin developers to use versions like `"composer-plugin-api": "~1.1"` or `"composer-plugin-api": ">=2.1 <3.0"`, aka actual Composer-compatible constraints.

Only the "1.0", "1.0.0" and "1.0.0" Plugin API versions will be regarded as BC versions, and internally converted to "^1.0"; every other declared version string will be kept as it is.

Because of this new constraint flexibility, plugin version mismatches will be skipped, which means those plugin will NOT be registered to the system. Previously, a mismatch triggered a warning, but plugins were still registered.
2015-06-02 14:10:09 +01:00
nevvermind 8e79a3766d Added phpdocs + change to yoda comparison 2015-05-30 01:38:14 +01:00
Jordi Boggiano 45b1f356c2 Add debug output when a plugin is loaded 2015-02-27 14:31:27 +00:00
Jérémy Derussé 86e0b847be Allow plugins to register commands 2015-02-26 09:14:25 +01:00
Rob Bast cb336a5416 Implement writeError throughout Composer 2015-02-25 11:00:35 +01:00
Jordi Boggiano 2b16a73659 Load plugins before purging packages, fixes #3557 2014-12-15 20:34:23 +00:00
Jordi Boggiano 0627d846a5 PluginManager refactoring, fixes #3550 2014-12-13 18:54:42 +00:00
Jordi Boggiano 4ce9252255 Avoid passing args to CLI handlers when none are needed, fixes #3332 2014-10-07 11:27:24 +01:00
Jordi Boggiano 663cda8827 Merge pull request #3142 from francoispluchino/plugin-load-only-one-time
Register plugin only one time when it's present in global and project mode
2014-09-30 15:19:55 +01:00
Jordi Boggiano 0ce0cf42e8 Merge remote-tracking branch 'francoispluchino/fix-phpdoc'
Conflicts:
	src/Composer/EventDispatcher/EventDispatcher.php
2014-07-23 19:19:39 +02:00
François Pluchino 11b945046f Register plugin only one time when it's present in global and project mode 2014-07-21 15:11:38 +02:00
Jordi Boggiano cec1627acf Add top level aliases for nonstandard scripts and allow parameter passing, refs #2516 2014-07-20 21:55:24 +02:00
François Pluchino 8b5c00bff0 Fix phpdoc 2014-07-16 15:17:38 +02:00
Pascal Borreli 2f4df9d459 Fixed typos 2013-12-27 11:51:01 +00:00
Beau Simensen 5caee06c44 Make PluginManager::loadRepository public 2013-12-16 09:21:00 -06:00
Beau Simensen 9ca884944c Skip aliases packages when looking for plugins. 2013-12-15 23:14:58 -06:00
Jordi Boggiano 11a0d16ccc CS fixes 2013-10-11 20:12:45 -03:00
Nicolas Bastien 52711d121c Remove unused use statement. 2013-10-07 17:11:57 +02:00
Martin Hasoň e949038c0f Removed duplication of logic of an installation manager in a plugin manager 2013-09-12 14:31:27 +02:00
Nils Adermann 689e3056fa Plugin API requirements should be for plugins only, not installers 2013-09-08 18:03:05 +02:00
Nils Adermann 92b1ee2f7a Add a composer-plugin-api platform package and plugins must require it 2013-09-05 15:47:05 +02:00
Nils Adermann d00ca4bcdb Add a Command event triggered by all comands which load plugins 2013-09-05 14:30:03 +02:00
Nils Adermann bf08019292 Load plugins and installers prior to checking installed packages 2013-08-31 16:20:38 +02:00
Nils Adermann 5993450d5a Load plugin code from global vendor dir correctly 2013-08-30 14:11:20 +02:00
Nils Adermann c5c180fdd2 Load plugins from global vendor dir too 2013-08-30 14:04:16 +02:00
Nils Adermann a8c0170a91 Revert constructor arguments to old order for custom installers 2013-08-30 12:51:41 +02:00
Nils Adermann 3e1519cde0 Complete missing docblocks and fix incorrect ones 2013-08-30 12:51:41 +02:00
Nils Adermann 3b519e44c4 Rename PrepareRemoteFilesystem event to PreFileDownload 2013-08-30 12:51:41 +02:00
Nils Adermann b9c5758670 Make composer/io part of the activate plugin API rather than constructor args 2013-08-30 12:51:41 +02:00
Nils Adermann cd66328d68 Autoload dependencies of plugins using a pool of only the local repo 2013-08-30 12:51:41 +02:00
Nils Adermann 9402a9fb3c Plugins receive composer and io objects on construction already 2013-08-30 12:51:41 +02:00
Nils Adermann 919a190153 Add an EventSubscriberInterface which may also be implemented by plugins 2013-08-30 12:51:41 +02:00
Nils Adermann 3960edd64e Turn EventDispatcher into generic solution handling plugins as well 2013-08-30 12:51:41 +02:00
Nils Adermann 2f43e9aefb Load installed plugins at appropriate time and adapt tests accordingly 2013-08-30 12:51:40 +02:00
Nils Adermann eb966d347f Implement a plugin manager and interface, update installer plugin tests 2013-08-30 12:51:40 +02:00