From 82673f007b4f8eeaf86305fe9b9d060691f68c9c Mon Sep 17 00:00:00 2001 From: pifou25 Date: Sun, 22 Sep 2024 13:25:09 +0200 Subject: [PATCH] add namespace autoloader --- core/php/core.inc.php | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/core/php/core.inc.php b/core/php/core.inc.php index 2502e1ea54..002ecd3d88 100644 --- a/core/php/core.inc.php +++ b/core/php/core.inc.php @@ -47,9 +47,17 @@ } function jeedomAutoload($_classname) { + // namespaced class : + // remove 'jeedom' from namespace and replace \ by / + // jeedom\core\class\eqLogic --> __DIR__/core/class/eqLogic.class.php + // jeedom\plugin\atlas\core\class\atlas --> __DIR__/plugin/atlas/core/class/atlas.class.php + // jeedom\core\class\repo\github --> __DIR__/core/class/repo/github.class.php + $nspath = __DIR__ .'/../..' . str_replace( ['jeedom\\', '\\'], ['/', '/'], $_classname) . '.class.php'; /* core class always in /core/class : */ $path = __DIR__ . "/../../core/class/$_classname.class.php"; - if (file_exists($path)) { + if (file_exists( $nspath)) { + require_once $nspath; + } else if (file_exists($path)) { include_file('core', $_classname, 'class'); } else if (substr($_classname, 0, 4) === 'com_') { /* class com_$1 in /core/com/$1.com.php */