Plugin for composer to apply patches onto dependencies.

Overview

composer-patches-plugin

This plugin allows you to provide patches for any package from any package.

If you don't want a patch package outside the root package, consider providing it as package in the repositories key

{
    "name": "vendor/package",
    "type": "project",
    "repositories": [
        {
            "type": "package",
            "package": {
                "type": "metapackage",
                "name": "vendor/package-patches",
                "version": "1.0.0",
                "require": {
                    "netresearch/composer-patches-plugin": "~1.0"
                },
                "extra": {
                    "patches": {
                        "vendor/name": [
                            {
                                "url": "https://my-domain.com/path/to/my.patch"
                            }
                        ]
                    }
                }
            }
        }
    ],
    "require": {
        "vendor/package-patches": "~1.0"
    }
}

See this presentation for the original idea of this plugin: http://de.slideshare.net/christianopitz/distributed-patching-with-composer

Patch properties

Key Description Required
url The url or path to the patch
title Title to display when applying or reverting the patch
args string, which will be added to the patch command
sha1 SHA1 checksum of the patch contents for security check - when given the patches actual checksum and this value are compared and if they don't match an exception will be thrown

You may provide patches per package and optionally by version constraints:

Provide patches by package only

{
    "name": "netresearch/typo3-patches",
    "version": "1.0.0",
    "type": "metapackage",
    "require": {
        "netresearch/composer-patches-plugin": "~1.0"
    },
    "extra": {
        "patches": {
            "typo3/cms": [
                {
                    "title": "[FEATURE] Allow registration of different login forms",
                    "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/32f331fead9c7aa50d9248c54e3c0af75d793539"
                },
                {
                    "title": "[PATCH] [BUGFIX] Flexform \"required\" on input fields applies to last field only",
                    "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/a48f8b0dae11ce7246eff43132d986bccf55b786"
                }
            ]
        }
    }
}

Provide patches by package and versions or version constraints


composer.json:

{
    "name": "netresearch/typo3-patches",
    "version": "1.0.0",
    "type": "metapackage",
    "require": {
        "netresearch/composer-patches-plugin": "~1.0"
    },
    "extra": {
        "patches": {
            "typo3/cms":     {
                "6.2.0-beta1": [
                    {
                        "title": "[FEATURE] Allow registration of different login forms",
                        "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/32f331fead9c7aa50d9248c54e3c0af75d793539"
                    },
                    {
                        "title": "[PATCH] [BUGFIX] Flexform \"required\" on input fields applies to last field only",
                        "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/a48f8b0dae11ce7246eff43132d986bccf55b786"
                    }
                ],
                "6.2.0-beta2": [
                    {
                        "title": "[PATCH] [BUGFIX] Flexform \"required\" on input fields applies to last field only",
                        "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/a48f8b0dae11ce7246eff43132d986bccf55b786"
                    }
                ],
                "6.2.*": [
                    {
                        "title": "[BUGFIX] Ignore dependencies on non typo3-cms-extension",
                        "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/9fe856ac96e6a53fef8277f36a4a80bace6f0ae9",
                        "sha1": "b56a1c47a67d1596c0bd8270e61c44f8911af425"
                    }
                ]
            }
        }
    }
}

Note: When multiple version constraints match the version of the target package, all of the matching patches will be applied (canonicalized by theyr checksums, so no duplicates should occure).

Provide patches from URLs or paths

You can put any part of the patches object into another JSON and load it via an URL (or a path):

composer.json:

{
    "name": "netresearch/typo3-patches",
    "version": "1.0.0",
    "type": "metapackage",
    "require": {
        "netresearch/composer-patches-plugin": "~1.0"
    },
    "extra": {
        "patches": {
            "typo3/cms": "http://example.com/typo3-patches.json"
        }
    }
}

http://example.com/typo3-patches.json

{
    "6.2.0-beta1": [
        {
            "title": "[FEATURE] Allow registration of different login forms",
            "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/32f331fead9c7aa50d9248c54e3c0af75d793539"
        },
        {
            "title": "[PATCH] [BUGFIX] Flexform \"required\" on input fields applies to last field only",
            "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/a48f8b0dae11ce7246eff43132d986bccf55b786"
        }
    ],
    "6.2.0-beta2": [
        {
            "title": "[PATCH] [BUGFIX] Flexform \"required\" on input fields applies to last field only",
            "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/a48f8b0dae11ce7246eff43132d986bccf55b786"
        }
    ],
    "6.2.*": [
        {
            "title": "[BUGFIX] Ignore dependencies on non typo3-cms-extension",
            "url": "https://git.typo3.org/Packages/TYPO3.CMS.git/patch/9fe856ac96e6a53fef8277f36a4a80bace6f0ae9",
            "sha1": "b56a1c47a67d1596c0bd8270e61c44f8911af425"
        }
    ]
}

Requiring the patches:

just require the package with the patches.

{
    "name": "netresearch/patched-typo3",
    "type": "project",
    "description": "A patched version of typo3",
    "minimum-stability": "dev",
    "require": {
        "netresearch/typo3-patches": "~1.0",
        "typo3/cms": "6.2.0-beta3"
    }
}
Comments
  • Release/2.0.0 - Composer 2 Compatibility

    Release/2.0.0 - Composer 2 Compatibility

    The following PR will make this package compatibile with Composer version 2.

    • Added .gitignore
    • Track package dependencies via commited composer.locl
    • Update Plugin adding missing PluginInterface methods
    • Add missing constructor argument to src/Netresearch/Composer/Patches/Downloader/Composer.php

    A major version bump is required here, due to the changes in src/Netresearch/Composer/Patches/Downloader/Composer.phpas the package can no longer be compatibile with both composer 1 and 2 simultaneously.

    Consumers of this package can still require either version 1 or 2 as no pulic interfaces have changes.

    {
        "require": {
            "netresearch/composer-patches-plugin": "^1.0 || ^2.0"
        }
    }
    

    For those wanting to use these changes now following instructions here: https://github.com/netresearch/composer-patches-plugin/pull/36#issuecomment-732773402

    opened by JParkinson1991 10
  • Clear cache

    Clear cache

    I added a patch with a wrong url, and I updated the url, but it is never updated when updateing composer. "drupal/drupal": { "7.35": [ { "title": "Fixes the ckeditor version not found 1 problem.", "url": "./patches/locale_throwing_notice_1.patch" } ] }

    opened by dutchiexl 7
  • Use composer-patches-plugin for Magento (1)

    Use composer-patches-plugin for Magento (1)

    Hi,

    I really like your Composer patch plug-in and would like to use it for my Magento projects. I created the following composer.json.

    {
        "name": "shopbase-magento/patches",
        "version": "0.1.0",
        "type": "patches",
        "require": {
            "netresearch/composer-patches-plugin": "~1.0"
        },
        "extra": {
            "patches": {
                "magento/core":  {
                    "1.9.1.0": {
                        "SUPEE-1533_EE_1.12_v1.patch": {
                            "title": "SUPEE-1533 - Addresses two potential remote code execution exploits. - Added Oct 3, 2014",
                            "url": "http://shopbase.nl/patches/SUPEE-1533_EE_1.12_v1.patch"
                        },
                        "SUPEE-5345_CE_1.7.0.2_v1.patch": {
                            "title": "SUPEE-5344 - Addresses a potential remote code execution exploit. - Added Feb 9, 2015",
                            "url": "http://shopbase.nl/patches/SUPEE-5345_CE_1.7.0.2_v1.patch"
                        }
                    }
                }
            }
        }
    }
    

    But I get an error when running. This is probably because Magento (1) is not fully supporting composer. I'm therefor using the 'magento-hackathon/magento-composer-installer' module.

    Error:

    [Netresearch\Composer\Patches\PatchCommandException]                         
      Patch SUPEE-1533_EE_1.12_v1.patch would fail!                                
      Error executing command "patch -f -p1 --no-backup-if-mismatch -r - --dry-ru  
      n":                                                                          
      can't find file to patch at input line 8                                     
      Perhaps you used the wrong -p or --strip option?                             
      The text leading up to this was:                                             
      --------------------------                                                   
      |SUPEE-1533 | EE_1.12 | v1 | _ | n/a | SUPEE-1533_EE_1.12_v1.patch           
      |                                                                            
      |__PATCHFILE_FOLLOWS__                                                       
      |diff --git app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php app/code  
      /core/Mage/Adminhtml/Block/Dashboard/Graph.php                               
      |index c698108..6e256bb 100644                                               
      |--- app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php                  
      |+++ app/code/core/Mage/Adminhtml/Block/Dashboard/Graph.php                  
      --------------------------                                                   
      No file to patch.  Skipping patch.                                           
      1 out of 1 hunk ignored                                                      
      can't find file to patch at input line 21                                    
      Perhaps you used the wrong -p or --strip option?                             
      The text leading up to this was:                                             
      --------------------------                                                   
      |diff --git app/code/core/Mage/Adminhtml/controllers/DashboardController.ph  
      p app/code/core/Mage/Adminhtml/controllers/DashboardController.php           
      |index eebb471..f9cb8d2 100644                                               
      |--- app/code/core/Mage/Adminhtml/controllers/DashboardController.php        
      |+++ app/code/core/Mage/Adminhtml/controllers/DashboardController.php        
      --------------------------                                                   
      No file to patch.  Skipping patch.                                           
      1 out of 1 hunk ignored
    

    I hope you can help with this. I really would like to use your module.

    Best regards, Otto Smittenaar

    opened by ottosmittenaar 6
  • Don't try to reapply patches on composer update

    Don't try to reapply patches on composer update

    When you've got a patch set and you add a new patch, composer update will try to patch all the set, instead of skipping those already applied, thus failing in the process.

    A workaround for this would be to have a new package every time you add patches to the project but that's quite inconvenient.

    opened by pcambra 5
  • Usage example

    Usage example

    Thanks for sharing your work!

    I have been looking into your plugin in an attempt to use Composer for managing Drupal projects but I am having trouble deciphering how it is supposed to work.

    Do you have a publicly available example of the plugin in action?

    opened by kasperg 5
  • Resolve custom vendor directories for relative patch files

    Resolve custom vendor directories for relative patch files

    I'm using a repo with patches contained inside pulled in via this patching plugin for composer:

    https://github.com/zVPS/laravel-patches/blob/v4.2.22/composer.json

    When installing via composer and a custom directory e.g /vendor-install via COMPOSER_VENDOR_DIR= I get an error as the patches need to be relative to the project root.

    This pull request adds the functionality to check for vendor/ paths and translate to COMPOSER_VENDOR_DIR if specified.

    conflict 
    opened by Caffe1neAdd1ct 4
  • Fix local patches for Composer 2.3.0

    Fix local patches for Composer 2.3.0

    We define our patches using relative paths to local files for url:

    https://github.com/art-institute-of-chicago/data-hub-foundation/blob/adbbb46b2e439c157dc581119aa2085fe0dd8a6c/composer.json

    This was working great until recently. Our deployments broke because we upgraded one of our servers from Composer 2.2.9 to Composer 2.3.4. We started seeing this error:

    In RemoteFilesystem.php line 124:
    
      [TypeError]
      Composer\Util\RemoteFilesystem::getContents(): Argument #1 ($originUrl) must be of type string, null given, called in /path/to/vendor/netresearch/composer-patches-plugin/src/Netresearch/Composer/Patches/Downloader/Composer.php on line 57
    
    
    Exception trace:
      at phar:///usr/local/bin/composer/src/Composer/Util/RemoteFilesystem.php:124
     Composer\Util\RemoteFilesystem->getContents() at /path/to/vendor/netresearch/composer-patches-plugin/src/Netresearch/Composer/Patches/Downloader/Composer.php:57
     Netresearch\Composer\Patches\Downloader\Composer->getContents() at /path/to/vendor/netresearch/composer-patches-plugin/src/Netresearch/Composer/Patches/Patch.php:124
     Netresearch\Composer\Patches\Patch->read() at /path/to/vendor/netresearch/composer-patches-plugin/src/Netresearch/Composer/Patches/Patch.php:74
    
     <snip>
    

    We traced the problem to this commit in the Composer codebase:

    https://github.com/composer/composer/commit/6da38f83a0d5acc71793f337b525fa2faff9468e

    I figure that checking if $originUrl is null and if so doing file_get_contents($url) is the path of least resistance.

    opened by IllyaMoskvin 3
  • Does not support Windows

    Does not support Windows

    Installation of this package under Windows fails with this error:

    Maintaining patches
    'which' is not recognized as an internal or external command,
    operable program or batch file.
    
      [Netresearch\Composer\Patches\Exception]
      Cannot find the 'patch' executable command - use your o/s package manager like 'sudo yum install patch'
    

    There is an alternative to which in PowerShell: Get-Command. To get the path to a program this command could be used: (Get-Command patch).Source.

    Though, patch does not exist under Windows so that could be an issue as well. A OS independent implementation could be used, for example xdiff_file_patch.

    opened by TheDevMinerTV 3
  • Add cache of remote patch files, throw on error option

    Add cache of remote patch files, throw on error option

    We need the option to throw on patch application errors for our CI pipeline. #31

    Also, this fixes the issue where the patcher downloads the patch list over and over for each single installed package.

    conflict 
    opened by marcusirgens 3
  • Patch gets applied everytime composer install is run

    Patch gets applied everytime composer install is run

    I've never seen this problem before, but for some reason, this patch: https://www.drupal.org/files/issues/contact_storage-default_redirect-2629630-2.patch gets applied everytime composer install is run, even if's already been applied.

    Here's my composer.json file: https://github.com/phototech/sailvenice/blob/develop/composer.json

    If you run composer install the first time, it applies the patch like it's supposed to, if you run composer install again, it will again apply the patch (which causes a PHP syntax error). :(

    I'm not sure what's cuasing the problem with this patch specifically, but the only work around I've found is to delete the web/modules/contrib/contact_storage completely and then run composer install again. :(

    opened by davidbarratt 3
  • Applying multiple patches to same a package results in second patch applied multiple times.

    Applying multiple patches to same a package results in second patch applied multiple times.

    I'm using Version 1.2.0. I have a package that I'm applying 2 patches to. I also have a process that every time I update my code, I do a composer install. This has proven to be problematic. For reference, this is my package in composer.json... Note for simplicity sake I'm only putting part of the package def in here.

         {
            "type": "package",
            "package": {
                "name": "promet/martincounty-patches",
                "version": "1.3.0",
                "type": "patches",
                "require": {
                    "drupal/google_analytics": "7.2.1",
                    "netresearch/composer-patches-plugin": "~1.0"
                },
                "extra": {
                    "patches": {
                        "drupal/google_analytics": {
                            "7.2.1": [
                                {
                                    "title": "Fixing issue with Undefined Index: Value in googleanalytics_page_alter() Line 217",
                                    "url": "https://www.drupal.org/files/issues/googleanalytics-2392371-10.patch"
                                },
                                {
                                    "title": "Allow Altering of Information sent to GA",
                                    "url": "https://www.drupal.org/files/issues/google_analytics-allow_alter_of_page_url_sent_to_ga-2571429-1.patch"
                                }
                            ]
                        }
                    }
                }
    

    Since this package was updated, I've run composer install 6 times. The second patch adds one line. That line has been duplicated 6 times: Alt text

    This is the -vvv output when debugging:

    Downloading https://www.drupal.org/files/issues/google_analytics-allow_alter_of_page_url_sent_to_ga-2571429-1.patch
      Testing patch 3944b0c7b9b7eec411804a2247aeae143a51541d on drupal/google_analytics: Fixing issue with Undefined Index: Value in googleanalytics_page_alter() Line 217
      Testing patch a557a69a763f247ffa3a2321340032b9d92fec6e on drupal/google_analytics: Allow Altering of Information sent to GA
      Applying patch a557a69a763f247ffa3a2321340032b9d92fec6e to drupal/google_analytics: Allow Altering of Information sent to GA
    

    I think there is a problem in testing the patch...

    opened by generalredneck 3
  • composer 2.x support, Type error with composer 2.x

    composer 2.x support, Type error with composer 2.x

    with composer 2.x version netresearch/composer-patches-plugin throws below error:

    [TypeError]
    Composer\Json\JsonFile::__construct(): Argument #2 ($httpDownloader) must be of type ?Composer\Util\HttpDownloader, Composer\Util\RemoteFilesystem given, called in /my-project/vendor/netresearch/composer-patches-plugin/src/N
    etresearch/Composer/Patches/Downloader/Composer.php on line 74

    What is the recommended composer version to use netresearch/composer-patches-plugin?

    opened by rajeshreeputra 0
  • Question: How to remove a patch properly?

    Question: How to remove a patch properly?

    I used composer-patches-plugin to apply some patches to a package (local patch files) and that worked as expected. Thanks so far!

    My patches got merged into the package and i don't need them anymore. So i increased the packages version number, patch-package version number, removed the required patches ran composer update (deleted the .patch files too). I finally checked in the composer.lock file to make all changes fixed for deployment.

    Today i wanted to update a remote installation - i merged the project source which contains the composer.lock file. When i run composer install, i get the following error:

    The "patches/{package}/4b4636293ac6d46e171eaae8e64ae50ce2cd0b29.patch" file could not be downloaded: failed to open stream: No such file or directory

    But the patch is not required anymore - so why does composer-patches-plugin need the .patch file?

    As a workaround i can delete the local package and run composer install - this will work as expected.

    The "problem" seems to be caused by the contents of "installed.json" which contained the patch-file URLs, which did not exist anymore because they are not required in the version defined in composer.lock.

    So, what is the "correct" way? Simply keep the patch files in the vcs?

    IMO this is not very intuitive nor logical, it may be better to store a copy of the applied patches in some local cache directory (package directory or vendor/composer or even as string value inside installed.json). That way it would be more stable and patch files could be altered as well (i guess changing a patch could also be a problem).

    question 
    opened by MajPay 4
  • Add documentation about patches in local files

    Add documentation about patches in local files

    I think it could be good to have an example of how to use patches in local files as it could be confusing at first.

    For example, in my case, I have added a new package in composer.json like:

    "repositories": [
            {
                "type": "package",
                "package": {
                    "type": "metapackage",
                    "name": "vendor/package-patches",
                    "version": "1.0.0",
                    "require": {
                        "netresearch/composer-patches-plugin": "~1.0"
                    },
                    "extra": {
                        "patches": {
                            "zohocrm/php-sdk":     [
                                {
                                        "title": "Corregir warning 'Array and string offset access...' en el logger.",
                                        "url": "parches/fixzohologgerwarning.patch"
                                }
                            ]
                        }
                    }
                }
            }
        ],
       "require": {
            ....
            "php-64bit": ">=7.3.0",
            "zohocrm/php-sdk": "^1.1",
            "vendor/package-patches": "~1.0"
        },
    

    I have also added a new folder at the same level as the composer.json called "parches" and add a patch file fixzohologgerwarning.patch like:

    # This patch file was generated by NetBeans IDE
    # It uses platform neutral UTF-8 encoding and \n newlines.
    --- a/src/com/zoho/crm/library/exception/Logger.php
    +++ b/src/com/zoho/crm/library/exception/Logger.php
    @@ -6,7 +6,7 @@
     	{
     		set_include_path(ZCRMConfigUtil::getConfigValue('applicationLogFilePath'));
     		$path=get_include_path();
    -		if($path{strlen($path)-1}!='\/')
    +		if($path[strlen($path)-1]!='\/')
     		{
     			$path=$path."/";
     		}
    
    
    

    Note that the patch will be called with the option -p1 (remove the first slash) and in the directory of the library.

    Then run the commands to update the dependency and to install patches:

    composer update vendor/package-patches
    composer install
    
    opened by PhoneixS 1
Releases(1.3.1)
  • 1.3.1(May 30, 2022)

    What's Changed

    • Fix local patches for Composer 2.3.0 by @IllyaMoskvin in https://github.com/netresearch/composer-patches-plugin/pull/43
    • Fix make sha1 check case insensitive https://github.com/netresearch/composer-patches-plugin/commit/3691e7d67274f8f00817e5631d93d8fae6f673f0

    New Contributors

    • @IllyaMoskvin made their first contribution in https://github.com/netresearch/composer-patches-plugin/pull/43

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.3.0...1.3.1

    Source code(tar.gz)
    Source code(zip)
  • 1.3.0(Feb 26, 2021)

    What's Changed

    • Release/2.0.0 - Composer 2 Compatibility by @JParkinson1991 in https://github.com/netresearch/composer-patches-plugin/pull/36

    New Contributors

    • @JParkinson1991 made their first contribution in https://github.com/netresearch/composer-patches-plugin/pull/36

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.2.2...1.3.0

    Source code(tar.gz)
    Source code(zip)
  • 1.2.2(Apr 2, 2019)

    #26 Removed cache system from the Composer Downloader

    What's Changed

    • Removed cache system from the Composer Downloader by @dudilag in https://github.com/netresearch/composer-patches-plugin/pull/26

    New Contributors

    • @dudilag made their first contribution in https://github.com/netresearch/composer-patches-plugin/pull/26

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.2.1...1.2.2

    Source code(tar.gz)
    Source code(zip)
  • 1.2.1(Jan 6, 2016)

    • #17: Use located patch command
    • #20: Use Semver\Constraint if available

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.2.0...1.2.1

    Source code(tar.gz)
    Source code(zip)
  • 1.1.0(Jul 13, 2015)

    Features:

    • #12 Allow version constraints for providing patches

    Fixes:

    • #15 Marked package type "patches" as deprecated and set type of those packages to "metapackage" automatically

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.0.2...1.1.0

    Source code(tar.gz)
    Source code(zip)
  • 1.0.1(May 21, 2014)

    Documentation and removed outdated unit tests

    Full Changelog: https://github.com/netresearch/composer-patches-plugin/compare/1.0.0...1.0.1

    Source code(tar.gz)
    Source code(zip)
  • 1.0.0(May 30, 2022)

Owner
Netresearch
Impressum: https://www.netresearch.de/impressum/
Netresearch
Composer plugin for applying patches from packaged patchsets

Composer Plugin For Applying Patchsets ‼️ NEW Supports both composer branches v1.x and v2.x. This plugin can automatically apply patches to any depend

MageOps 6 Dec 26, 2022
A composer plugin, to install differenty types of composer packages in custom directories outside the default composer default installation path which is in the vendor folder.

composer-custom-directory-installer A composer plugin, to install differenty types of composer packages in custom directories outside the default comp

Mina Nabil Sami 136 Dec 30, 2022
This composer plugin is a temporary implementation of using symbolic links to local packages as dependencies to allow a parallel work process

Composer symlinker A Composer plugin to install packages as local symbolic links. This plugin is a temporary implementation of using symbolic links to

Pierre Cassat 18 Nov 9, 2021
Composer bin plugin — Isolate your bin dependencies

Composer bin plugin — Isolate your bin dependencies Table of Contents Why? How does this plugin work? Installation Usage Example The all bin namespace

Bilal Amarni 394 Jan 7, 2023
WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications

Soil A WordPress plugin which contains a collection of modules to apply theme-agnostic front-end modifications. Soil is a commercial plugin available

Roots 1k Dec 20, 2022
Ied plugin composer - Inspired Plugin Composer: Create, publish and edit plugins from within Textpattern CMS.

ied_plugin_composer Create, publish and edit plugins from within Textpattern CMS. Creates a new page under the Extensions tab where you can edit and e

Stef Dawson 8 Oct 3, 2020
Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.

Composer Inheritance Plugin Opinionated version of Wikimedia composer-merge-plugin to work in pair with bamarni/composer-bin-plugin. Usage If you are

Théo FIDRY 25 Dec 2, 2022
Patches that prevent malicious Minecraft plugins from saturating host internet resources for DDoS.

Minecraft Host DoS Botnet Patches Patches that prevent malicious Minecraft plugins from saturating host internet resources for DDoS. In recent events,

Riley Nevins 4 Jul 16, 2022
As many Magento patches as I can find!

Magento Resources and Links I have been looking for a good repository for all resources for Magento and I thought I will start putting them here for n

Brent W. Peterson 271 Dec 22, 2022
Audit your PHP version for known CVEs and patches

PHP Version Audit PHP Version Audit is a convenience tool to easily check a given PHP version against a regularly updated list of CVE exploits, new re

Daniel 103 Dec 19, 2022
Learn to apply best practices as a PHP backend developer

PHP eCommerce Project Here are the things that this repo will cover: Object oriented programming principles and best practices Object oriented session

Muhammad Salah 0 Aug 2, 2022
Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Imposter Plugin Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins. Built with ♥ by Typ

Typist Tech 127 Dec 17, 2022
Composer Registrar Composer Plugin for Magento 2

This module add a global registration.php that replace the default glob search performed for each request to discover the components not installed from composer.

OpenGento 3 Mar 22, 2022
WordPress Feature Project: Plugin Dependencies

WordPress Feature Project: Plugin Dependencies Contributors: afragen, costdev Description: Parses 'Requires Plugins' header, add plugin install depend

WordPress 41 Dec 17, 2022
Magento-composer-installer - Composer installer for Magento modules

!!! support the maintainer of this project via Patreon: https://www.patreon.com/Flyingmana Magento Composer Installer The purpose of this project is t

null 213 Sep 24, 2022
Composer Repository Manager for selling Magento 2 extension and offering composer installation for ordered packages.

Magento 2 Composer Repository Credits We got inspired by https://github.com/Genmato. Composer Repository for Magento 2 This extension works as a Magen

EAdesign 18 Dec 16, 2021
Composer registry manager that help to easily switch to the composer repository you want

CRM - Composer Registry Manager Composer Registry Manager can help you easily and quickly switch between different composer repositories. 简体中文 Install

Tao 500 Dec 29, 2022
Dependency graph visualization for composer.json (PHP + Composer)

clue/graph-composer Graph visualization for your project's composer.json and its dependencies: Table of contents Usage graph-composer show graph-compo

Christian Lück 797 Jan 5, 2023
Drupal Composer Scaffold - A flexible Composer project scaffold builder

This project provides a composer plugin for placing scaffold files (like index.php, update.php, …) from the drupal/core project into their desired location inside the web root. Only individual files may be scaffolded with this plugin.

Drupal 44 Sep 22, 2022