diff options
author | Lukas Reschke <lukas@statuscode.ch> | 2017-10-19 11:05:23 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-10-19 11:05:23 +0200 |
commit | f6f7b50cf0156673f92c7e00ebacf0fbfd6e98c1 (patch) | |
tree | de06a8061309bc204d8868edd62c34f9f030bd4d /lib/private | |
parent | 07b6e234bd3ba015809d9e4a312259266370d985 (diff) | |
parent | ff9f325677276069684edac165353da49f9036f4 (diff) | |
download | nextcloud-server-f6f7b50cf0156673f92c7e00ebacf0fbfd6e98c1.tar.gz nextcloud-server-f6f7b50cf0156673f92c7e00ebacf0fbfd6e98c1.zip |
Merge pull request #6853 from nextcloud/apps_autoloader
Allow apps to have their own autoloader
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/legacy/app.php | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/lib/private/legacy/app.php b/lib/private/legacy/app.php index 627107a63a8..bd261b05e51 100644 --- a/lib/private/legacy/app.php +++ b/lib/private/legacy/app.php @@ -200,17 +200,25 @@ class OC_App { if(isset(self::$alreadyRegistered[$key])) { return; } + self::$alreadyRegistered[$key] = true; + // Register on PSR-4 composer autoloader $appNamespace = \OC\AppFramework\App::buildAppNamespace($app); \OC::$server->registerNamespace($app, $appNamespace); - \OC::$composerAutoloader->addPsr4($appNamespace . '\\', $path . '/lib/', true); + + if (file_exists($path . '/composer/autoload.php')) { + require_once $path . '/composer/autoload.php'; + } else { + \OC::$composerAutoloader->addPsr4($appNamespace . '\\', $path . '/lib/', true); + // Register on legacy autoloader + \OC::$loader->addValidRoot($path); + } + + // Register Test namespace only when testing if (defined('PHPUNIT_RUN') || defined('CLI_TEST_RUN')) { \OC::$composerAutoloader->addPsr4($appNamespace . '\\Tests\\', $path . '/tests/', true); } - - // Register on legacy autoloader - \OC::$loader->addValidRoot($path); } /** |