Magento 2.2から、説明されている半分文書化されたライブラリアプローチは機能しなくなりました。Magentoは、開発者が以下に従って、composerを使用してライブラリを追加することを推奨しています。
https://github.com/magento/magento2/issues/10985
動作するのは、独自のオートローダーを追加することです。
lib/internal/Your/Library/registration.php
<?php
namespace Your\Library;
spl_autoload_register(function ($class) {
$prefix = __NAMESPACE__ . '\\';
$base_dir = __DIR__.'/';
$len = strlen($prefix);
if (strncmp($prefix, $class, $len) !== 0) {
return;
}
$relative_class = substr($class, $len);
$file = $base_dir . str_replace('\\', '/', $relative_class) . '.php';
if (file_exists($file)) {
require $file;
}
});
これapp/etc/NonComposerComponentRegistration.php
は、次のディレクトリがまだ含まれているため機能します。
$pathList[] = dirname(dirname(__DIR__)) . '/lib/internal/*/*/registration.php';
$pathList[] = dirname(dirname(__DIR__)) . '/lib/internal/*/*/*/registration.php';