1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
diff -up ./bin/phpreflect.json.dist.rpm ./bin/phpreflect.json.dist
--- ./bin/phpreflect.json.dist.rpm 2014-10-16 14:13:07.000000000 +0200
+++ ./bin/phpreflect.json.dist 2014-10-16 16:49:30.538850254 +0200
@@ -9,6 +9,19 @@
{
"name": "Analyser",
"class": "Bartlett\\Reflect\\Plugin\\Analyser\\AnalyserPlugin"
+ },
+ {
+ "name": "Cache",
+ "class": "Bartlett\\Reflect\\Plugin\\Cache\\CachePlugin",
+ "options": {
+ "adapter": "DoctrineCacheAdapter",
+ "backend": {
+ "class": "Doctrine\\Common\\Cache\\FilesystemCache",
+ "args": [
+ "%{HOME}/.cache/phpreflect"
+ ]
+ }
+ }
}
],
"analysers" : [
diff -up ./bin/phpreflect.rpm ./bin/phpreflect
--- ./bin/phpreflect.rpm 2014-10-16 14:13:07.000000000 +0200
+++ ./bin/phpreflect 2014-10-16 16:50:40.458190967 +0200
@@ -1,15 +1,11 @@
-#!/usr/bin/env php
+#!/usr/bin/php
<?php
if (\Phar::running()) {
$vendorDir = 'phar://phpreflect.phar/vendor';
} else {
$baseDir = dirname(__DIR__);
- $vendorDir = $baseDir . '/vendor';
-
- if (!file_exists($vendorDir . '/autoload.php')) {
- $vendorDir = dirname(dirname($baseDir));
- }
+ $vendorDir = '/usr/share/php';
if (!getenv("REFLECT")) {
$home = defined('PHP_WINDOWS_VERSION_BUILD') ? 'USERPROFILE' : 'HOME';
@@ -26,8 +22,29 @@ if (\Phar::running()) {
}
}
}
-$loader = require_once $vendorDir . '/autoload.php';
-$loader->setUseIncludePath(true);
+require_once $vendorDir . '/PhpParser/Autoloader.php';
+PhpParser\Autoloader::register();
+
+require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+
+require_once $vendorDir . '/PHP/Timer.php';
+require_once $vendorDir . '/SebastianBergmann/Version/Version.php';
+
+use Symfony\Component\ClassLoader\UniversalClassLoader;
+
+$loader = new UniversalClassLoader();
+$loader->registerNamespaces(array(
+ 'Symfony\\Component\\Finder' => $vendorDir,
+ 'Symfony\\Component\\EventDispatcher' => $vendorDir,
+ 'Symfony\\Component\\Console' => $vendorDir,
+ 'Symfony\\Component\\ClassLoader' => $vendorDir,
+ 'Doctrine\\Common\\Cache' => $vendorDir,
+ 'Seld\\JsonLint' => $vendorDir,
+ 'JsonSchema' => $vendorDir,
+ 'Bartlett' => $vendorDir,
+));
+$loader->useIncludePath(true);
+$loader->register();
if (PHP_SAPI !== 'cli') {
return;
diff -up ./tests/bootstrap.php.rpm ./tests/bootstrap.php
--- ./tests/bootstrap.php.rpm 2014-10-16 14:13:07.000000000 +0200
+++ ./tests/bootstrap.php 2014-10-16 16:49:30.538850254 +0200
@@ -1,6 +1,19 @@
<?php
$baseDir = dirname(__DIR__);
-$vendorDir = $baseDir . '/vendor';
+$vendorDir = '/usr/share/php';
-require_once $vendorDir . '/autoload.php';
+require_once $vendorDir . '/PhpParser/Autoloader.php';
+PhpParser\Autoloader::register();
+
+require_once $vendorDir . '/Symfony/Component/ClassLoader/UniversalClassLoader.php';
+
+use Symfony\Component\ClassLoader\UniversalClassLoader;
+
+$loader = new UniversalClassLoader();
+$loader->registerNamespaces(array(
+ 'Bartlett\\Tests\\Reflect' => $baseDir . '/tests',
+ 'Bartlett' => $baseDir . '/src',
+));
+$loader->useIncludePath(true);
+$loader->register();
diff -up ./tests/EnvironmentTest.php.prev ./tests/EnvironmentTest.php
--- ./tests/EnvironmentTest.php.prev 2014-11-13 17:38:59.895447844 +0100
+++ ./tests/EnvironmentTest.php 2014-11-13 17:39:02.138456731 +0100
@@ -168,6 +168,8 @@ class EnvironmentTest extends \PHPUnit_F
),
);
+ unset($var['plugins'][1]); // Cache added by our patch
+
$this->assertEquals(
$config,
$var,
|