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