MODx и composer Как скрестить?
Возник вопрос почему никто этим не занялся и не написал плагин или туториал? Просмотрел весь Интернет есть два плагина но самый свежий 2-х летней давности. Это же непорядок) Вариант который я знаю (пробовал на Битрикс) просто подключить автолоадер в index.php. Если кто делал и получилось поделитесь. П.С. Также смотрел MODx 3 ветку там он есть.
Как я это сделал и что это мне дало
- В папке сайта запускаем в консоли и на все вопросы жмем enter:
composer init
- в index.php строчка 48 после инитиализации МОДх
require_once __DIR__ . '/core/vendor/autoload.php';
- Редактируем 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();
Это мне дало возможность использовать любые пакеты с https://packagist.org/ и интегрировать их в компоненты.