Download the PHP package symplify/vendor-patches without Composer
On this page you can find all versions of the php package symplify/vendor-patches. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download symplify/vendor-patches
More information about symplify/vendor-patches
Files in symplify/vendor-patches
Package vendor-patches
Short Description Generate vendor patches for packages with single command
License MIT
Informations about the package vendor-patches
Vendor Patches
Generate vendor patches for packages with single command.
Install
Usage
How to create a patch for a file in /vendor?
1. Create a Copy of /vendor file you Want To Change with *.old Suffix
For example, if you edit:
2. Open the original file and change the lines you need:
Only *.php file is loaded, not the *.php.old one. This way you can be sure the new code is working before you generate patches.
Make sure to back up other modified files in the vendor/ directory as well as some of the commands below may overwrite them.
3. Run generate command 🥳️
This tool will generate patch files for all files created this way in /patches directory:
The patch path is based on original file path, so the patch name is always unique.
Also, it will add configuration for cweagans/composer-patches to your composer.json:
3.1 When using cweagans/composer-patches v2
cweagans/composer-patches v2 requires the execution of 2 additional steps after generating the patches:
Updating the patches.lock.json file:
Applying the new patches:
4. Final steps
Now you need to do run composer to update the lock file as the checksum of composer.json has changed:
That's it!
Now all you need to do is run composer:
And your patches are applied to your code!
If not, get more information from composer to find out why:
Summary
To summarize, the generate workflow is:
Patches File and Patches Folder Options
Optionally, if you use a patches file you can specify its path using the --patches-file option:
You can choose to write the patches to a different folder than the default 'patches' folder by specifying the folder name using the --patches-output option:
Resolve From Directory Option
By default, the package name is read from each package's composer.json name field. Use --resolve-from-directory to derive the package name from its vendor/<vendor>/<package> directory instead. Useful for private repositories where the installed directory name differs from the name in composer.json.
TroubleShooting
Upgrading from older versions of cweagans/composer-patches (pre 2.0.0)
If you are upgrading cweagans/composer-patches to 2.0.0 and newer versions, you may need to adjust your patches to ensure compatibility.
The new version requires that --- /dev/null needs to be replaced with --- <file-path> in your patch files.
For example, if you have an old patch file that starts with:
You need to change it to:
macOS
If you are on macOS, and got hang on applying patch, you may need to install gpatch, you can install with:
and register to .bash_profile or .zshrc (if you're using oh-my-zsh):