@@ -46,73 +46,16 @@ The code above yields the output below:
46
46
+ bar
47
47
```
48
48
49
- There are three output builders available in this package:
49
+ The ` UnifiedDiffOutputBuilder ` used in the example above generates output in "unified diff"
50
+ format and is used by PHPUnit, for example.
50
51
51
- #### UnifiedDiffOutputBuilder
52
+ The ` StrictUnifiedDiffOutputBuilder ` generates output in "strict unified diff" format with
53
+ hunks, similar to ` diff -u ` and compatible with ` patch ` or ` git apply ` .
52
54
53
- This is default builder, which generates the output close to udiff and is used by PHPUnit .
55
+ The ` DiffOnlyOutputBuilder ` generates output that only contains the lines that differ .
54
56
55
- ``` php
56
- <?php
57
-
58
- use SebastianBergmann\Diff\Differ;
59
- use SebastianBergmann\Diff\Output\UnifiedDiffOutputBuilder;
60
-
61
- $builder = new UnifiedDiffOutputBuilder(
62
- "--- Original\n+++ New\n", // custom header
63
- false // do not add line numbers to the diff
64
- );
65
-
66
- $differ = new Differ($builder);
67
- print $differ->diff('foo', 'bar');
68
- ```
69
-
70
- #### StrictUnifiedDiffOutputBuilder
71
-
72
- Generates (strict) Unified diff's (unidiffs) with hunks,
73
- similar to ` diff -u ` and compatible with ` patch ` and ` git apply ` .
74
-
75
- ``` php
76
- <?php
77
-
78
- use SebastianBergmann\Diff\Differ;
79
- use SebastianBergmann\Diff\Output\StrictUnifiedDiffOutputBuilder;
80
-
81
- $builder = new StrictUnifiedDiffOutputBuilder([
82
- 'collapseRanges' => true, // ranges of length one are rendered with the trailing `,1`
83
- 'commonLineThreshold' => 6, // number of same lines before ending a new hunk and creating a new one (if needed)
84
- 'contextLines' => 3, // like `diff: -u, -U NUM, --unified[=NUM]`, for patch/git apply compatibility best to keep at least @ 3
85
- 'fromFile' => '',
86
- 'fromFileDate' => null,
87
- 'toFile' => '',
88
- 'toFileDate' => null,
89
- ]);
90
-
91
- $differ = new Differ($builder);
92
- print $differ->diff('foo', 'bar');
93
- ```
94
-
95
- #### DiffOnlyOutputBuilder
96
-
97
- Output only the lines that differ.
98
-
99
- ``` php
100
- <?php
101
-
102
- use SebastianBergmann\Diff\Differ;
103
- use SebastianBergmann\Diff\Output\DiffOnlyOutputBuilder;
104
-
105
- $builder = new DiffOnlyOutputBuilder(
106
- "--- Original\n+++ New\n"
107
- );
108
-
109
- $differ = new Differ($builder);
110
- print $differ->diff('foo', 'bar');
111
- ```
112
-
113
- #### DiffOutputBuilderInterface
114
-
115
- You can pass any output builder to the ` Differ ` class as longs as it implements the ` DiffOutputBuilderInterface ` .
57
+ If none of these three output builders match your use case then you can implement
58
+ ` DiffOutputBuilderInterface ` to generate custom output.
116
59
117
60
#### Parsing diff
118
61
0 commit comments