Я сделал пакеты для NPM, и я знаю тренировку там. Вы просто перечислите свои зависимости, а затем require()
их. Поиск узлов node_modules
, находит посылку, загружает ее и все готово.
Как это работает в PHP, хотя? Моя зависимость PoParser. Я знаю, я могу просто сделать:
require __DIR__ . '/vendor/autoload.php';
Но когда я опубликую свой пакет, я не опубликую сторонний код зависимости, верно? мой пакет должен содержать только мой код. По крайней мере, так обстоит дело с NPM.
Так что, если у меня нет этого vendor
папка, когда я публикую свою вещь. Как бы мне потребовалась моя зависимость? В узле, require()
делает эту тяжелую работу. Как бы я сделал это здесь?
Вот моя структура папок, если это помогает:
vendor
/composer
...
/sepia
/po-parser
...
/src
/Sepia
...
// dependency classes
...
...
autoload.php
composer.json
composer.lock
MyThing.class.php
Other.class.php
Композитор с этим справится. Поместите свои зависимости внутри composer.json
файл, и когда вам потребуется ваш проект, он также загрузит зависимости.
Взгляните на этот урок: https://dev.to/ahmedkhan/smart-guide-on-creating-a-complete-php-package-using-composer
Других решений пока нет …