Я создал небольшой инструмент командной строки в PHP, и я также упаковал это как архив PHAR.Ссылки .phar классы, установленные глобально с композитором
Следующее, что я сделал, было опубликовано в моем архиве до packagist.org
aka composer
.
теперь я могу установить мой пакет ФАР через композитор, как так:
composer global require acme/mypackage
Это устанавливает свой пакет штраф. И я тоже могу запустить его с помощью команды.
Пока все хорошо, но здесь возникает проблема, с которой я сталкиваюсь сейчас.
У меня есть другой проект, который должен использовать acme/mypackage
. Я хочу, чтобы этот проект ссылался на класс, который был упакован в этот PHAR. Что-то вроде этого:
<?php
class SomeClass extends AcmeClass {
}
Проблема заключается в том, что код PHP не распознает AcmeClass
класс. Имеет смысл, потому что он, очевидно, «глобально» установлен где-то в системе.
Как другие библиотеки решают эту проблему? Если я не ошибаюсь, то PHPUnit делает что-то подобное правильно?
Как я могу решить эту проблему?
Так с другими словами, установить его во всем мире с композитором бесполезно, когда вы хотите сослаться на файлы классов из него? Потому что я обычно устанавливаю пакеты. – Vivendi
Да, точно. Установка композитора во всем мире полезна. Все остальное управляется композитором. Это помогает, если у нас есть два отдельных проекта, но мы хотим использовать два разных варианта зависимости. –