semantic-diff icon indicating copy to clipboard operation
semantic-diff copied to clipboard

Semantic diffs for PHP code

Semantic Diff for PHP

Build Status Coveralls Codacy Badge

API status

Until the first tag is created, this package should be considered very unstable.

Usage

use PhpParser\Parser;
use PhpParser\Lexer;
use SemanticDiff\Diff\Factory;
use SemanticDiff\Status;

$phpParser = new Parser(new Lexer);

$diff = (new Factory)->createDiff(
    $phpParser->parse($oldPhpCode),
    $phpParser->parse($newPhpCode)
);

$status = $diff->getStatus();

/*
 * $status is now one of:
 *  Status::NO_CHANGES
 *  Status::API_ADDITIONS
 *  Status::INTERNAL_CHANGES
 *  Status::API_CHANGES
 *  Status::INCOMPATIBLE_API
 */

License

Semantic Diff is released under the MIT license.