There are a few terms specific to this plugin. Understanding them before proceeding may help with understanding.
This document is for end-users
Resolvers, downloaders, and patchers are all small units of functionality that can be disabled individually or extended by other Composer plugins.
A resolver is a component that looks for patch definitions in a particular place. If any patch definitions are found, they are added to a list maintained internally by the plugin.
An example of a resolver is
\\cweagans\\Composer\\Resolver\\PatchesFile. If a
patches-file is configured in
PatchesFile resolver opens the specified patches file, finds any defined patches, and adds them to the list of patches.
A downloader is (intuitively) a component that downloads a patch. The
ComposerDownloader is the default downloader and uses the same mechanism to download patches that is used by Composer to download packages.
A patcher is a mechanism by which a downloaded patch can be applied to a package. The plugin ships with a handful of patchers in an effort to ensure that a particular system is able to apply a patch somehow. Generally, for each system program that is capable of applying a patch (in the core plugin, this is
git apply)), a
Patcher can be defined that uses it.