Возник вопрос почему никто этим не занялся и не написал плагин или туториал? Просмотрел весь Интернет есть два плагина но самый свежий 2-х летней давности. Это же непорядок)
Вариант который я знаю (пробовал на Битрикс) просто подключить автолоадер в index.php.
Если кто делал и получилось поделитесь.
П.С. Также смотрел MODx 3 ветку там он есть.
Как я это сделал и что это мне дало
1)В папке сайта запускаем в консоли и на все вопросы жмем enter:
composer init
2) в index.php строчка 48 после инитиализации МОДх
require_once __DIR__ . '/core/vendor/autoload.php';
3) Редактируем composer.json
{
"name": "aleks/modx_test",
"config": {
"vendor-dir": "core/vendor"
},
"autoload": {
"psr-4": {
"": "core/components"
}
}
}
В config мы указали чтоб vendor был бы в core папке так как его надо кидать в папку недоступной публично.
Autoload указали папку для авто загрузки теперь например если мы создали компонент doodles в папке components (/core/components/doodles) и добавили туда класс Hello
// /core/components/doodles/Hello.php
<?php
namespace Doodles;
class Hello {
public static function hi(): string {
return "Hi";
}
}
то в сниппете мы его уже сможем вызвать таким образом
<?php
return Doodles\Hello::hi();
Это мне дало возможность использовать любые пакеты с packagist.org/ и интегрировать их в компоненты.