Download the PHP package bircher/php-merge without Composer

On this page you can find all versions of the php package bircher/php-merge. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package php-merge

php-merge

CI Status GitHub license

Introduction

When working with revisions of text one sometimes faces the problem that there are several revisions based off the same original text. Rather than choosing one and discarding the other we want to merge the two revisions.

Git does that already wonderfully. In a php application we want a simple tool that does the same. There is the xdiff PECL extension which has the xdiff_string_merge3 function. But xdiff_string_merge3 does not behave the same way as git and xdiff may not be available on your system.

PhpMerge is a small library that solves this problem. There are two classes: \PhpMerge\PhpMerge and \PhpMerge\GitMerge that implement the \PhpMerge\PhpMergeInterface which has just a merge method.

PhpMerge uses SebastianBergmann\Diff\Differ to get the differences between the different versions and calculates the merged text from it. GitMerge uses Gitonomy\Git\Repository or Symplify\GitWrapper\GitWrapper, writes the text to a temporary file and uses the command line git to branch, add and merge the text. Using GitMerge is not recommended for performance reasons, but if you want to merge with git then this is the simplest way.

Usage

Simple example:

With merge conflicts:

Using the command line git to perform the merge:

Installation

PhpMerge can be installed with Composer by adding the library as a dependency to your composer.json file.

To use the command line git with GitMerge:

or with the deprecated symplify/git-wrapper

Please refer to Composer's documentation for installation and usage instructions.

Maintenance

This library is feature complete. This means it does the thing I set out to do. But of course the code doesn't exist in a vacuum and the php ecosystem keeps changing. Most notably Sebastian keeps adopting new php language features in our dependency sebastian/diff and drops support for older php versions. This means that new major versions are tagged and composer doesn't want to install bircher/php-merge on systems that updated sebastian/diff. So far it has mostly been pretty easy to just update composer.json, but I have not always noticed straight away because this library is not my primary focus, and so it would seem that the project is abandoned. Over the years people have forked the library as it is their right to do under the MIT license. Usually between the holidays and the new year I check the forks and merge the contributions back to the library. While it would probably be more speedy to contact me, I do appreciate your contributions also this way.

Difference to ~3.0

In the ~4.0 version we switch from cpliakas/git-wrapper to symplify/git-wrapper or gitonomy/gitlib since the former is deprecated. This update means that there is no change when only using PhpMerge\PhpMerge.


All versions of php-merge with dependencies

PHP Build Version
Package Version
Requires php Version ^7.4 || ^8.0
sebastian/diff Version ^2.0|^3.0|^4.0|^5.0|^6.0|^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package bircher/php-merge contains the following files

Loading the files please wait ...