Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

symplify/vendor-patches

Repository files navigation

Downloads total

Generate vendor patches for packages with single command.

Install

composer require symplify/vendor-patches --dev# If you are applying patches to production, be sure to also explicitly add cweagans/composer-patches.composer require cweagans/composer-patches

Usage

How to createa 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:

vendor/nette/di/src/DI/Extensions/InjectExtension.php# copy of the filevendor/nette/di/src/DI/Extensions/InjectExtension.php.old

2. Open the original file and change the lines you need:

 if (DI\Helpers::parseAnnotation($rp, 'inject') !== null) {-if ($type = DI\Helpers::parseAnnotation($rp, 'var')) {+if ($type = \App\Reflection\Helper\StaticReflectionHelper::getPropertyType($rp)) {+} elseif ($type = DI\Helpers::parseAnnotation($rp, 'var')) { $type = Reflection::expandClassName($type, Reflection::getPropertyDeclaringClass($rp));

Only*.php file is loaded, not the*.php.old one. This way you canbe sure the new code is working before you generate patches.


3. Rungenerate command 🥳️

vendor/bin/vendor-patches generate

This tool will generatepatch files for all files created this way in/patches directory:

/patches/nette-di-di-extensions-injectextension.php.patch

The patch path is based on original file path, sothe patch name is always unique.


Also, it will add configuration forcweagans/composer-patches to yourcomposer.json:

{"extra": {"patches": {"nette/di": ["patches/nette_di_di_extensions_injectextension.patch"            ]        }    }}

Optionally, if you use apatches file you can specify its path using the--patches-file option:

vendor/bin/vendor-patches generate --patches-file=patches.json

That's it!


Now all you need to do is run composer:

composer install

And your patches are applied to your code!


If not, get more information from composer to find out why:

composer install --verbose

TroubleShooting

If you are on macOS, and got hang on applying patch, you may need to installgpatch, you can install with:

brew install gpatch


[8]ページ先頭

©2009-2025 Movatter.jp