Skip to content

Commit bda1da9

Browse files
committed
Add PSR4 autoloader
1 parent b4769cf commit bda1da9

File tree

10 files changed

+66
-29
lines changed

10 files changed

+66
-29
lines changed

example/example.php

Lines changed: 7 additions & 11 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'));
@@ -31,8 +31,7 @@
3131
<?php
3232

3333
// Generate a side by side diff
34-
require_once dirname(__FILE__).'/../lib/Diff/Renderer/Html/SideBySide.php';
35-
$renderer = new \jblond\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 \jblond\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 \jblond\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 \jblond\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/jblond/Diff.php

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
<?php
22
namespace jblond;
33

4+
use jblond\Diff\SequenceMatcher;
5+
46
/**
57
* Diff
68
*
@@ -96,14 +98,14 @@ public function __construct($a, $b, $options=array())
9698
$this->options = $this->defaultOptions;
9799
}
98100

101+
99102
/**
100103
* Render a diff using the supplied rendering class and return it.
101104
*
102-
* @param \jblond\Diff_Renderer_Abstract|object $renderer An instance of the rendering object to use for generating the diff.
103-
*
105+
* @param object $renderer object $renderer An instance of the rendering object to use for generating the diff.
104106
* @return mixed The generated diff. Exact return value depends on the rendered.
105107
*/
106-
public function render(Diff_Renderer_Abstract $renderer)
108+
public function render($renderer)
107109
{
108110
$renderer->diff = $this;
109111
return $renderer->render();
@@ -177,7 +179,7 @@ public function getGroupedOpcodes()
177179
}
178180

179181
require_once dirname(__FILE__).'/Diff/SequenceMatcher.php';
180-
$sequenceMatcher = new Diff_SequenceMatcher($this->a, $this->b, $this->options, null);
182+
$sequenceMatcher = new SequenceMatcher($this->a, $this->b, $this->options, null);
181183
$this->groupedCodes = $sequenceMatcher->getGroupedOpcodes($this->options['context']);
182184
return $this->groupedCodes;
183185
}

lib/jblond/Diff/Renderer/Abstract.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer;
33

44
/**
55
* Abstract class for diff renderers in PHP DiffLib.
@@ -42,7 +42,7 @@
4242
* @link https://github.com/JBlond/php-diff
4343
*/
4444

45-
abstract class Diff_Renderer_Abstract
45+
abstract class RendererAbstract
4646
{
4747
/**
4848
* @var object Instance of the diff class that this renderer is generating the rendered diff for.

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer\Html;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
35

46
/**
57
* Base renderer for rendering HTML based diffs for PHP DiffLib.
@@ -47,7 +49,7 @@
4749
/**
4850
* Class Diff_Renderer_Html_Array
4951
*/
50-
class Diff_Renderer_Html_Array extends Diff_Renderer_Abstract
52+
class HtmlArray extends RendererAbstract
5153
{
5254
/**
5355
* @var array Array of the default options that apply to this renderer.

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer\Html;
33

44
/**
55
* Inline HTML diff generator for PHP DiffLib.
@@ -47,7 +47,7 @@
4747
/**
4848
* Class Diff_Renderer_Html_Inline
4949
*/
50-
class Diff_Renderer_Html_Inline extends Diff_Renderer_Html_Array
50+
class Inline extends HtmlArray
5151
{
5252
/**
5353
* Render a and return diff with changes between the two sequences

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer\Html;
33

44
/**
55
* Side by Side HTML diff generator for PHP DiffLib.
@@ -47,7 +47,7 @@
4747
/**
4848
* Class Diff_Renderer_Html_SideBySide
4949
*/
50-
class Diff_Renderer_Html_SideBySide extends Diff_Renderer_Html_Array
50+
class SideBySide extends HtmlArray
5151
{
5252
/**
5353
* Render a and return diff with changes between the two sequences

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer\Text;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
35

46
/**
57
* Context diff generator for PHP DiffLib.
@@ -47,7 +49,7 @@
4749
/**
4850
* Class Diff_Renderer_Text_Context
4951
*/
50-
class Diff_Renderer_Text_Context extends Diff_Renderer_Abstract
52+
class Context extends RendererAbstract
5153
{
5254
/**
5355
* @var array Array of the different op code tags and how they map to the context diff equivalent.

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff\Renderer\Text;
3+
4+
use jblond\Diff\Renderer\RendererAbstract;
35

46
/**
57
* Unified diff generator for PHP DiffLib.
@@ -47,7 +49,7 @@
4749
/**
4850
* Class Diff_Renderer_Text_Unified
4951
*/
50-
class Diff_Renderer_Text_Unified extends Diff_Renderer_Abstract
52+
class Unified extends RendererAbstract
5153
{
5254
/**
5355
* Render and return a unified diff.

lib/jblond/Diff/SequenceMatcher.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?php
2-
namespace jblond;
2+
namespace jblond\Diff;
33

44
/**
55
* Sequence matcher for Diff
@@ -42,7 +42,7 @@
4242
* @link https://github.com/JBlond/php-diff
4343
*/
4444

45-
class Diff_SequenceMatcher
45+
class SequenceMatcher
4646
{
4747
/**
4848
* @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)