Getting Started
Terminology
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.
Resolver
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 composer.json
, the PatchesFile
resolver opens the specified patches file, finds any defined patches, and adds them to the list of patches.
Downloader
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.
Patcher
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
(via git apply
)), a Patcher
can be defined that uses it.