29 Commits (e4118385a0bbf7748e22939f678fd53b408f115b)

Author SHA1 Message Date
nevvermind 994b1324bc fix alignment 9 years ago
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
9 years ago
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.
9 years ago
nevvermind 8e79a3766d Added phpdocs + change to yoda comparison 9 years ago
Jordi Boggiano 45b1f356c2 Add debug output when a plugin is loaded 9 years ago
Rob Bast cb336a5416 Implement writeError throughout Composer 9 years ago
Jordi Boggiano 2b16a73659 Load plugins before purging packages, fixes #3557 10 years ago
Jordi Boggiano 0627d846a5 PluginManager refactoring, fixes #3550 10 years ago
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
10 years ago
François Pluchino 11b945046f Register plugin only one time when it's present in global and project mode 10 years ago
François Pluchino 8b5c00bff0 Fix phpdoc 10 years ago
Pascal Borreli 2f4df9d459 Fixed typos 11 years ago
Beau Simensen 5caee06c44 Make PluginManager::loadRepository public 11 years ago
Beau Simensen 9ca884944c Skip aliases packages when looking for plugins. 11 years ago
Martin Hasoň e949038c0f Removed duplication of logic of an installation manager in a plugin manager 11 years ago
Nils Adermann 689e3056fa Plugin API requirements should be for plugins only, not installers 11 years ago
Nils Adermann 92b1ee2f7a Add a composer-plugin-api platform package and plugins must require it 11 years ago
Nils Adermann bf08019292 Load plugins and installers prior to checking installed packages 11 years ago
Nils Adermann 5993450d5a Load plugin code from global vendor dir correctly 11 years ago
Nils Adermann c5c180fdd2 Load plugins from global vendor dir too 11 years ago
Nils Adermann a8c0170a91 Revert constructor arguments to old order for custom installers 11 years ago
Nils Adermann 3e1519cde0 Complete missing docblocks and fix incorrect ones 11 years ago
Nils Adermann b9c5758670 Make composer/io part of the activate plugin API rather than constructor args 11 years ago
Nils Adermann cd66328d68 Autoload dependencies of plugins using a pool of only the local repo 11 years ago
Nils Adermann 9402a9fb3c Plugins receive composer and io objects on construction already 11 years ago
Nils Adermann 919a190153 Add an EventSubscriberInterface which may also be implemented by plugins 11 years ago
Nils Adermann 3960edd64e Turn EventDispatcher into generic solution handling plugins as well 11 years ago
Nils Adermann 2f43e9aefb Load installed plugins at appropriate time and adapt tests accordingly 11 years ago
Nils Adermann eb966d347f Implement a plugin manager and interface, update installer plugin tests 11 years ago