FullDiffer.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. <?php
  2. declare(strict_types=1);
  3. /*
  4. * This file is part of PHP CS Fixer.
  5. *
  6. * (c) Fabien Potencier <fabien@symfony.com>
  7. * Dariusz Rumiński <dariusz.ruminski@gmail.com>
  8. *
  9. * This source file is subject to the MIT license that is bundled
  10. * with this source code in the file LICENSE.
  11. */
  12. namespace PhpCsFixer\Differ;
  13. use SebastianBergmann\Diff\Differ;
  14. use SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder;
  15. /**
  16. * @author Dariusz Rumiński <dariusz.ruminski@gmail.com>
  17. *
  18. * @internal
  19. */
  20. final class FullDiffer implements DifferInterface
  21. {
  22. private Differ $differ;
  23. public function __construct()
  24. {
  25. $this->differ = new Differ(new StrictUnifiedDiffOutputBuilder([
  26. 'collapseRanges' => false,
  27. 'commonLineThreshold' => 100,
  28. 'contextLines' => 100,
  29. 'fromFile' => 'Original',
  30. 'toFile' => 'New',
  31. ]));
  32. }
  33. public function diff(string $old, string $new, ?\SplFileInfo $file = null): string
  34. {
  35. return $this->differ->diff($old, $new);
  36. }
  37. }