Skip to content

Commit 3c18203

Browse files
committed
Merge remote-tracking branch 'origin/master'
2 parents ea93fb9 + 033509f commit 3c18203

File tree

11 files changed

+80
-23
lines changed

11 files changed

+80
-23
lines changed

composer.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,10 @@
33
"type": "library",
44
"description": "A comprehensive library for generating differences between two hashable objects (strings or arrays).",
55
"license": "BSD-3-Clause",
6+
"keywords": [
7+
"php",
8+
"diff"
9+
],
610
"authors": [
711
{
812
"name": "Mario",

example/example.php

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -9,9 +9,9 @@
99
<h1>PHP LibDiff - Examples</h1>
1010
<hr />
1111
<?php
12-
13-
// Include the diff class
14-
require_once dirname(__FILE__).'/../lib/Diff.php';
12+
// include autoloader
13+
require dirname(__FILE__).'/../lib/Autoloader.php';
14+
new \jblond\Autoloader();
1515

1616
// Include two sample files for comparison
1717
$a = explode("\n", file_get_contents(dirname(__FILE__).'/a.txt'));
@@ -24,15 +24,14 @@
2424
);
2525

2626
// Initialize the diff class
27-
$diff = new Diff($a, $b, $options);
27+
$diff = new \jblond\Diff($a, $b, $options);
2828

2929
?>
3030
<h2>Side by Side Diff</h2>
3131
<?php
3232

3333
// Generate a side by side diff
34-
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Html/SideBySide.php';
35-
$renderer = new Diff_Renderer_Html_SideBySide(array(
34+
$renderer = new \jblond\Diff\Renderer\Html\SideBySide(array(
3635
'title_a' => 'Custom title for OLD version',
3736
'title_b' => 'Custom title for NEW version',
3837
));
@@ -43,17 +42,15 @@
4342
<?php
4443

4544
// Generate an inline diff
46-
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Html/Inline.php';
47-
$renderer = new Diff_Renderer_Html_Inline;
45+
$renderer = new \jblond\Diff\Renderer\Html\Inline;
4846
echo $diff->render($renderer);
4947

5048
?>
5149
<h2>Unified Diff</h2>
5250
<pre><?php
5351

5452
// Generate a unified diff
55-
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Text/Unified.php';
56-
$renderer = new Diff_Renderer_Text_Unified;
53+
$renderer = new \jblond\Diff\Renderer\Text\Unified();
5754
echo htmlspecialchars($diff->render($renderer));
5855

5956
?>
@@ -62,8 +59,7 @@
6259
<pre><?php
6360

6461
// Generate a context diff
65-
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Text/Context.php';
66-
$renderer = new Diff_Renderer_Text_Context;
62+
$renderer = new \jblond\Diff\Renderer\Text\Context;
6763
echo htmlspecialchars($diff->render($renderer));
6864
?>
6965
</pre>

lib/Autoloader.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
namespace jblond;
3+
4+
/**
5+
* Class Autoloader
6+
* @package jblond
7+
*/
8+
class Autoloader
9+
{
10+
11+
/**
12+
* Autoloader constructor.
13+
*/
14+
public function __construct() {
15+
spl_autoload_register(array($this, '__autoload'));
16+
}
17+
18+
/**
19+
* @param string $class
20+
*/
21+
private function __autoload($class) {
22+
$class = str_replace('\\', '/', $class); // revert path for old PHP on Linux
23+
$dir = str_replace('\\', '/', __DIR__);
24+
if(file_exists($dir . '/' . $class . '.php')) {
25+
/** @noinspection PhpIncludeInspection */
26+
require $dir . '/' . $class . '.php';
27+
}
28+
else
29+
{
30+
echo '<b>' . $dir . '/' . $class . '.php' . '</b><br><br>';
31+
}
32+
}
33+
}

lib/Diff.php renamed to lib/jblond/Diff.php

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
<?php
2+
namespace jblond;
3+
4+
use jblond\Diff\SequenceMatcher;
5+
26
/**
37
* Diff
48
*
@@ -94,14 +98,14 @@ public function __construct($a, $b, $options=array())
9498
$this->options = $this->defaultOptions;
9599
}
96100

101+
97102
/**
98103
* Render a diff using the supplied rendering class and return it.
99104
*
100-
* @param \Diff_Renderer_Abstract|object $renderer An instance of the rendering object to use for generating the diff.
101-
*
105+
* @param object $renderer object $renderer An instance of the rendering object to use for generating the diff.
102106
* @return mixed The generated diff. Exact return value depends on the rendered.
103107
*/
104-
public function render(Diff_Renderer_Abstract $renderer)
108+
public function render($renderer)
105109
{
106110
$renderer->diff = $this;
107111
return $renderer->render();
@@ -175,7 +179,7 @@ public function getGroupedOpcodes()
175179
}
176180

177181
require_once dirname(__FILE__).'/Diff/SequenceMatcher.php';
178-
$sequenceMatcher = new Diff_SequenceMatcher($this->a, $this->b, $this->options, null);
182+
$sequenceMatcher = new SequenceMatcher($this->a, $this->b, $this->options, null);
179183
$this->groupedCodes = $sequenceMatcher->getGroupedOpcodes($this->options['context']);
180184
return $this->groupedCodes;
181185
}

lib/Diff/Renderer/Abstract.php renamed to lib/jblond/Diff/Renderer/Abstract.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
namespace jblond\Diff\Renderer;
3+
24
/**
35
* Abstract class for diff renderers in PHP DiffLib.
46
*
@@ -40,7 +42,7 @@
4042
* @link https://github.com/JBlond/php-diff
4143
*/
4244

43-
abstract class Diff_Renderer_Abstract
45+
abstract class RendererAbstract
4446
{
4547
/**
4648
* @var object Instance of the diff class that this renderer is generating the rendered diff for.

lib/Diff/Renderer/Html/Array.php renamed to lib/jblond/Diff/Renderer/Html/Array.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
<?php
2+
namespace jblond\Diff\Renderer\Html;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
5+
26
/**
37
* Base renderer for rendering HTML based diffs for PHP DiffLib.
48
*
@@ -45,7 +49,7 @@
4549
/**
4650
* Class Diff_Renderer_Html_Array
4751
*/
48-
class Diff_Renderer_Html_Array extends Diff_Renderer_Abstract
52+
class HtmlArray extends RendererAbstract
4953
{
5054
/**
5155
* @var array Array of the default options that apply to this renderer.

lib/Diff/Renderer/Html/Inline.php renamed to lib/jblond/Diff/Renderer/Html/Inline.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
namespace jblond\Diff\Renderer\Html;
3+
24
/**
35
* Inline HTML diff generator for PHP DiffLib.
46
*
@@ -45,7 +47,7 @@
4547
/**
4648
* Class Diff_Renderer_Html_Inline
4749
*/
48-
class Diff_Renderer_Html_Inline extends Diff_Renderer_Html_Array
50+
class Inline extends HtmlArray
4951
{
5052
/**
5153
* Render a and return diff with changes between the two sequences

lib/Diff/Renderer/Html/SideBySide.php renamed to lib/jblond/Diff/Renderer/Html/SideBySide.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
namespace jblond\Diff\Renderer\Html;
3+
24
/**
35
* Side by Side HTML diff generator for PHP DiffLib.
46
*
@@ -45,7 +47,7 @@
4547
/**
4648
* Class Diff_Renderer_Html_SideBySide
4749
*/
48-
class Diff_Renderer_Html_SideBySide extends Diff_Renderer_Html_Array
50+
class SideBySide extends HtmlArray
4951
{
5052
/**
5153
* Render a and return diff with changes between the two sequences

lib/Diff/Renderer/Text/Context.php renamed to lib/jblond/Diff/Renderer/Text/Context.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
<?php
2+
namespace jblond\Diff\Renderer\Text;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
5+
26
/**
37
* Context diff generator for PHP DiffLib.
48
*
@@ -45,7 +49,7 @@
4549
/**
4650
* Class Diff_Renderer_Text_Context
4751
*/
48-
class Diff_Renderer_Text_Context extends Diff_Renderer_Abstract
52+
class Context extends RendererAbstract
4953
{
5054
/**
5155
* @var array Array of the different op code tags and how they map to the context diff equivalent.

lib/Diff/Renderer/Text/Unified.php renamed to lib/jblond/Diff/Renderer/Text/Unified.php

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,8 @@
11
<?php
2+
namespace jblond\Diff\Renderer\Text;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
5+
26
/**
37
* Unified diff generator for PHP DiffLib.
48
*
@@ -45,7 +49,7 @@
4549
/**
4650
* Class Diff_Renderer_Text_Unified
4751
*/
48-
class Diff_Renderer_Text_Unified extends Diff_Renderer_Abstract
52+
class Unified extends RendererAbstract
4953
{
5054
/**
5155
* Render and return a unified diff.

lib/Diff/SequenceMatcher.php renamed to lib/jblond/Diff/SequenceMatcher.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
<?php
2+
namespace jblond\Diff;
3+
24
/**
35
* Sequence matcher for Diff
46
*
@@ -40,7 +42,7 @@
4042
* @link https://github.com/JBlond/php-diff
4143
*/
4244

43-
class Diff_SequenceMatcher
45+
class SequenceMatcher
4446
{
4547
/**
4648
* @var string|array Either a string or an array containing a callback function to determine if a line is "junk" or not.

0 commit comments

Comments
 (0)