Вопрос не делает его явным, но поскольку в вопросе упоминается об ошибке, когда другой модуль не установлен, я принимаю это условие является когда модуль установлен. В этом случае модуль может просто использовать следующий код.
общедоступная функция __construct (TestService $ test_service = NULL) {
$this->testService = $test_service;
}
общедоступная статическая функция create(ContainerInterface $container) {
вернуть новую статику(
$container->has('custom_form1.form1_services')? $container->get('custom_form1.form1_services'): NULL
);
}
В этом случае класс в вашем модуле должен быть готов не получать никаких экземпляров класса. В качестве альтернативы ваш модуль может реализовать упрощенную версию службы, которая реализует тот же интерфейс и использует код, аналогичный следующему.
общедоступная функция __construct (TestServiceInterface $ test_service = NULL) {
$this->testService = $test_service;
}
общедоступная статическая функция create(ContainerInterface $container) {
вернуть новую статику(
$container->has('custom_form1.form1_services')? $container->get('custom_form1.form1_services'): $container->get('mymodule.form1_services')
);
}
Это предполагаетТестСервис
реализует интерфейс, который можно реализовать из упрощенной службы. (Также предполагается, что можно реализовать упрощенный сервис.)