okay meine services.yml im Test-Bundle schaut so aus:
Code:
services:
_defaults:
autowire: true
autoconfigure: true
public: true
SgnDev\ContaoTestBundle\:
resource: ../../../src
exclude: ../../../src/{Entity,Migrations,Model,Resources,Tests,Widget}
Mein Testservice schaut so aus:
Code:
namespace SgnDev\ContaoTestBundle\Service;
use Symfony\Contracts\HttpClient\HttpClientInterface;
class TestService
{
/**
* @var HttpClientInterface
*/
private $httpClient;
public function __construct(HttpClientInterface $httpClient)
{
$this->httpClient = $httpClient;
}
}
Wenn ich dann aber via einem Command, in dem der TestService im Constructor aufgerufen wird, ausführen will, kommt das hier:
[WARNING] Some commands could not be registered:
In TestApiClient.php line 18:
Too few arguments to function SgnDev\ContaoTestBundle\Command\TestApiClient
::__construct(), 0 passed in /Users/**/Desktop/Localhost/dev.cont
ao4-13/var/cache/dev/ContainerQH0WkO7/getConsole_Command_PublicAlias_Clever
reachtestapiclientService.php on line 23 and exactly 1 expected
Über
Code:
vendor/bin/contao-console debug:container cleverreach:test-api-client
bekomme ich in der Contao Installation folgendes:
Code:
Information for Service "cleverreach:test-api-client"
=====================================================
---------------- -----------------------------------------------
Option Value
---------------- -----------------------------------------------
Service ID cleverreach:test-api-client
Class SgnDev\ContaoTestBundle\Command\TestApiClient
Tags console.command
container.no_preload
Public no
Synthetic no
Lazy no
Shared yes
Abstract no
Autowired no
Autoconfigured yes
---------------- -----------------------------------------------
! [NOTE] The "cleverreach:test-api-client" service or alias has been removed or inlined when the container was
! compiled.
Wie kann ich denn prüfen, ob meine services.yml aus dem Test-Bundle in der Contao Installation überhaupt berücksichtigt wird? Also geladen wird sie
Code:
class ContaoTestExtension extends Extension
{
public function load(array $mergedConfig, ContainerBuilder $container): void
{
$loader = new YamlFileLoader(
$container,
new FileLocator(__DIR__.'/../Resources/config')
);
$loader->load('services.yml');
$loader->load('commands.yml');
}
}
Aber der Service wird nicht auf public:true gesetzt. Ne Idee ?
Danke
Lesezeichen