Я устанавливаю репозиторий, устанавливаемый композитором. Я прочитал документацию Composer и успешно установил свой репозиторий в соответствии с инструкциями. То, что я понял о разнице между и require-dev
, заключалось в том, что require-dev
предназначен для декларации зависимостей, которые не являются обязательными для этого, поэтому репозиторий работает правильно.Сомнения о требовании и требовании-dev от Composer
Однако, я наблюдал за composer.json некоторых библиотек на Github, как Zend Form и Respect Validation, и на этих двух местах хранения, есть пакеты, которые необходимы к тому, что эти хранилища работает должным образом и перечислены в require-dev
. Например, зависимость egulias/email-validator
указана в require-dev
в разделе «Проверка соблюдения», но по адресу this file эта зависимость требуется для того, чтобы работает функция проверки подлинности электронной почты. Итак, почему эта зависимость не указана в require
?
То же самое происходит с zendframework/zend-captcha
, что необходимо для работы Captcha element.
Это правда. Но и для Zend Captcha? Я просмотрел код, и я не вижу способа использовать его без использования элемента Zend \ Captcha. См. Метод setCaptcha. Если я предоставляю массив или что-то, что реализует интерфейс Traversable, он использует компонент Factory of Zend \ Captcha. Другой вариант - предоставить что-то, что реализует AdapterInterface компонента Zend \ Captcha ... – user3753202
То же самое для 'Zend \ Form \ Element \ Captcha'. Документация метода 'setCaptcha' требует' zend-captcha', но это не означает, что 'zend-form' имеет зависимость от' zend-captcha'. Если приложение _your_ использует 'setCaptcha', то ваша ответственность - передать некоторый экземпляр' ZendCaptcha \ AdapterInterface', и для этого вам необходимо установить этот пакет. Кроме того, большинство людей, которые предпочитают использовать 'zendframework/zend-form', могут не использовать Captcha. Вы действительно не хотите устанавливать зависимость, которую вы не используете в любом случае. – Federkun
Я хочу сказать, что 'zend-form' не использует' zend-captcha' напрямую. Вам нужно создать какой-либо объект с пакетом 'zend-captcha' в вашем приложении, а затем передать этот объект компоненту' zend-form', который сможет управлять им. Но это не значит, что 'zend-form' требует' zend-captcha'. Ваше приложение. – Federkun