48 lines
1.8 KiB
Markdown
48 lines
1.8 KiB
Markdown
|
|
## Upgrading to v6
|
||
|
|
|
||
|
|
|
||
|
|
### For Simple Users
|
||
|
|
|
||
|
|
If you only use the `DiffHelper` and built-in `Renderer`s,
|
||
|
|
there is no breaking change for you so you do not have to do anything.
|
||
|
|
|
||
|
|
|
||
|
|
### Breaking Changes for Normal Users
|
||
|
|
|
||
|
|
- The `Diff` class has been renamed as `Differ`.
|
||
|
|
It should be relatively easy to adapt to this by changing the class name.
|
||
|
|
|
||
|
|
- The term `template` has been renamed as `renderer`. Some examples are:
|
||
|
|
|
||
|
|
- Method `DiffHelper::getRenderersInfo()`
|
||
|
|
- Method `DiffHelper::getAvailableRenderers()`
|
||
|
|
- Constant `RendererConstant::RENDERER_TYPES`
|
||
|
|
- Constant `AbstractRenderer::IS_TEXT_RENDERER`
|
||
|
|
|
||
|
|
- Now a `Renderer` has a `render()` method, but a `Differ` does not.
|
||
|
|
(because it makes more sense saying a renderer would render something)
|
||
|
|
If you use those classes by yourself, it should be written like below.
|
||
|
|
|
||
|
|
```php
|
||
|
|
use Jfcherng\Diff\Differ;
|
||
|
|
use Jfcherng\Diff\Factory\RendererFactory;
|
||
|
|
|
||
|
|
$differ = new Differ(explode("\n", $old), explode("\n", $new), $diffOptions);
|
||
|
|
$renderer = RendererFactory::make($rendererName, $rendererOptions);
|
||
|
|
$result = $renderer->render($differ); // <-- this line has been changed
|
||
|
|
```
|
||
|
|
|
||
|
|
|
||
|
|
### Breaking Changes for Customized Renderer Developers
|
||
|
|
|
||
|
|
- Remove the deprecated `AbstractRenderer::getIdenticalResult()` and
|
||
|
|
add `RendererInterface::getResultForIdenticals()`. The returned value will be
|
||
|
|
directly used before actually starting to calculate diff if we find that the
|
||
|
|
two strings are the same. `AbstractRenderer::getResultForIdenticals()`
|
||
|
|
returns an empty string by default.
|
||
|
|
|
||
|
|
- Now a `Renderer` should implement `protected function renderWorker(Differ $differ): string`
|
||
|
|
rather than the previous `public function render(): string`. Note that
|
||
|
|
`$this->diff` no longer works in `Renderer`s as it is now injected as a
|
||
|
|
parameter to `Renderer::renderWorker()`.
|