Skip to content

Commit d25356a

Browse files
authored
Add legacy autoloader to support Matomo namespaces in 3.X (matomo-org#16069)
1 parent 5dd7d4f commit d25356a

File tree

2 files changed

+33
-1
lines changed

2 files changed

+33
-1
lines changed

LegacyAutoloader.php

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
<?php
2+
3+
class LegacyAutoloader
4+
{
5+
public function __construct()
6+
{
7+
spl_autoload_register(array($this, 'load_class'));
8+
}
9+
10+
public static function register()
11+
{
12+
new LegacyAutoloader();
13+
}
14+
15+
public function load_class($className)
16+
{
17+
if (strpos($className, 'Matomo\\') === 0) {
18+
$newName = 'Piwik' . substr($className, 6);
19+
if (class_exists($newName) && !class_exists($className, false)) {
20+
@class_alias($newName, $className);
21+
}
22+
} elseif (strpos($className, 'Piwik\\') === 0) {
23+
$newName = 'Matomo' . substr($className, 5);
24+
if (class_exists($newName) && !class_exists($className, false)) {
25+
@class_alias($newName, $className);
26+
}
27+
}
28+
}
29+
}
30+
31+
LegacyAutoloader::register();

composer.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,8 @@
144144
"HTML_": "libs/",
145145
"PEAR_": "libs/",
146146
"Archive_": "libs/"
147-
}
147+
},
148+
"files": ["LegacyAutoloader.php"]
148149
},
149150
"autoload-dev": {
150151
"psr-4": {

0 commit comments

Comments
 (0)