mirror of
https://github.com/FreshRSS/FreshRSS.git
synced 2026-10-25 04:28:36 -04:00
Revert "Extract autoloading process (#3283)"
This reverts commit 46cb89adf8.
This commit is contained in:
1 parent
465b40f52d
commit
c246e5d74b
2 files changed
+27
-76
No files matched your search
@@ -1,74 +0,0 @@
|
||||
<?php
|
||||
|
||||
class ClassLoader {
|
||||
private $searchPath = [];
|
||||
|
||||
/**
|
||||
* Register path in which to look for a class.
|
||||
*/
|
||||
public function registerPath($path) {
|
||||
if (is_string($path)) {
|
||||
$this->searchPath[] = $path;
|
||||
}
|
||||
if (is_array($path)) {
|
||||
array_push($this->searchPath, ...$path);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Load class file if found.
|
||||
*/
|
||||
public function loadClass($class)
|
||||
{
|
||||
if ($file = $this->findFile($class)) {
|
||||
require $file;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Find the file containing the class definition.
|
||||
*/
|
||||
public function findFile($class) {
|
||||
// This match most of classes directly
|
||||
foreach ($this->searchPath as $path) {
|
||||
$file = $path . DIRECTORY_SEPARATOR . str_replace(['\\', '_'], DIRECTORY_SEPARATOR, $class) . '.php';
|
||||
if (file_exists($file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// This match FRSS model classes
|
||||
$freshrssClass = str_replace('FreshRSS_', '', $class);
|
||||
foreach ($this->searchPath as $path) {
|
||||
$file = $path . DIRECTORY_SEPARATOR . str_replace(['\\', '_'], DIRECTORY_SEPARATOR, $freshrssClass) . '.php';
|
||||
if (file_exists($file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
|
||||
// This match FRSS other classes
|
||||
list(, $classType) = explode('_', $freshrssClass);
|
||||
foreach ($this->searchPath as $path) {
|
||||
$file = $path . DIRECTORY_SEPARATOR . $classType . 's' . DIRECTORY_SEPARATOR . str_replace('_', '', $freshrssClass) . '.php';
|
||||
if (file_exists($file)) {
|
||||
return $file;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Register the current loader in the autoload queue.
|
||||
*/
|
||||
public function register($prepend = false) {
|
||||
spl_autoload_register([$this, 'loadClass'], true, $prepend);
|
||||
}
|
||||
}
|
||||
|
||||
$loader = new ClassLoader();
|
||||
$loader->registerPath([
|
||||
APP_PATH,
|
||||
APP_PATH . DIRECTORY_SEPARATOR . 'Models',
|
||||
LIB_PATH,
|
||||
LIB_PATH . DIRECTORY_SEPARATOR . 'SimplePie',
|
||||
]);
|
||||
$loader->register();
|
||||
+27
-2
@@ -15,8 +15,6 @@ if (COPY_SYSLOG_TO_STDERR) {
|
||||
openlog('FreshRSS', LOG_CONS | LOG_ODELAY | LOG_PID, LOG_USER);
|
||||
}
|
||||
|
||||
require_once LIB_PATH . DIRECTORY_SEPARATOR . 'autoload.php';
|
||||
|
||||
/**
|
||||
* Build a directory path by concatenating a list of directory names.
|
||||
*
|
||||
@@ -28,6 +26,33 @@ function join_path() {
|
||||
return join(DIRECTORY_SEPARATOR, $path_parts);
|
||||
}
|
||||
|
||||
//<Auto-loading>
|
||||
function classAutoloader($class) {
|
||||
if (strpos($class, 'FreshRSS') === 0) {
|
||||
$components = explode('_', $class);
|
||||
switch (count($components)) {
|
||||
case 1:
|
||||
include(APP_PATH . '/' . $components[0] . '.php');
|
||||
return;
|
||||
case 2:
|
||||
include(APP_PATH . '/Models/' . $components[1] . '.php');
|
||||
return;
|
||||
case 3: //Controllers, Exceptions
|
||||
include(APP_PATH . '/' . $components[2] . 's/' . $components[1] . $components[2] . '.php');
|
||||
return;
|
||||
}
|
||||
} elseif (strpos($class, 'Minz') === 0) {
|
||||
include(LIB_PATH . '/' . str_replace('_', '/', $class) . '.php');
|
||||
} elseif (strpos($class, 'SimplePie') === 0) {
|
||||
include(LIB_PATH . '/SimplePie/' . str_replace('_', '/', $class) . '.php');
|
||||
} elseif (strpos($class, 'PHPMailer') === 0) {
|
||||
include(LIB_PATH . '/' . str_replace('\\', '/', $class) . '.php');
|
||||
}
|
||||
}
|
||||
|
||||
spl_autoload_register('classAutoloader');
|
||||
//</Auto-loading>
|
||||
|
||||
function idn_to_puny($url) {
|
||||
if (function_exists('idn_to_ascii')) {
|
||||
$idn = parse_url($url, PHP_URL_HOST);
|
||||
|
||||
Reference in new issue
Block a user