Download the PHP package baraja-core/simple-php-diff without Composer

On this page you can find all versions of the php package baraja-core/simple-php-diff. 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 simple-php-diff

Simple PHP Diff

A lightweight PHP library for fast text comparison and difference visualization. Find the quick difference between two text files and render the results in plain text or HTML format.

Key Principles

Architecture

The library consists of two main components with a clean separation of concerns:

Components

SimpleDiff

The main comparison engine that processes two text inputs and generates a diff result.

Methods:

Method Description
compare(string $left, string $right, bool $strict = false): Diff Compares two strings and returns a Diff object
renderDiff(Diff\|string $diff): string Renders the diff as styled HTML

Comparison Process:

  1. Input normalization (non-strict mode): Converts all line endings (\r\n, \r) to \n and trims whitespace
  2. Line splitting: Splits both inputs into arrays by newline character
  3. Line-by-line comparison: Iterates through lines, comparing original vs target
  4. Output formatting: Prepends each line with status marker (+, -, or space) and line number
  5. Change tracking: Records line numbers where differences occur

Diff

An immutable value object that encapsulates the comparison result.

Properties (via getters):

Property Type Description
original string The normalized left/original input text
target string The normalized right/target input text
diff string The formatted diff output with line markers
changedLines int[] Array of line numbers (1-indexed) that differ

String Conversion:

The Diff object implements __toString() which returns the formatted diff string, allowing direct string casting.

📦 Installation

It's best to use Composer for installation, and you can also find the package on Packagist and GitHub.

To install, simply use the command:

You can use the package manually by creating an instance of the internal classes, or register a DIC extension to link the services directly to the Nette Framework.

Requirements

Basic Usage

Simple Text Comparison

Get Changed Line Numbers

Render Diff as HTML

Output Format

Plain Text Output

The diff output uses a standardized format:

Format explanation:

HTML Output

The renderDiff() method generates HTML with inline styles:

Color coding:

Visual Examples

Plain Text Diff Output

HTML Rendered Diff

Comparison Modes

Non-Strict Mode (Default)

In non-strict mode (default), the library normalizes line endings before comparison:

This mode is ideal for comparing content where line ending differences should be ignored.

Strict Mode

Strict mode preserves the original line endings and whitespace, useful when you need to detect differences in line termination characters.

Working with the Diff Object

Accessing Original and Target Text

Getting the Raw Diff String

Working with Changed Lines

Advanced Examples

Comparing Files

Custom HTML Rendering

If you need custom styling, you can process the diff string yourself:

Integration with Version Control Display

Author

Jan Barášek - https://baraja.cz

📄 License

baraja-core/simple-php-diff is licensed under the MIT license. See the LICENSE file for more details.


All versions of simple-php-diff with dependencies

PHP Build Version
Package Version
Requires php Version ^8.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 baraja-core/simple-php-diff contains the following files

Loading the files please wait ...