Ik probeer momenteel de code van een project op te delen in packages, zodat ik deze logica kan hergebruiken in andere projecten.
Nu ging dat best goed totdat ik zaken uit dezelfde namespace wilde opdelen over twee verschillende packages (1 met alle domein logica en andere met extra implementaties die afhankelijk zijn van external depencies en optioneel zijn) . Het ondestaande voorbeeld is een versimpeling van wat ik probeer te realiseren.
Bij symfony heb ik in mijn services.yaml het volgende staan voor autowiring.
Inhoud: ../vendor/mytest/space/src/
\Galaxy (folder)
- GalaxyAInterface.php (namespace MyTest\Space\Galaxy)
- GalaxyBInterface.php (namespace MyTest\Space\Galaxy)
(en nog veel meer mappen en bestanden)
Inhoud ../vendor/mytest/space-plugin-stars/src/
\Galaxy (folder)
- StarsGalaxyA.php (namespace MyTest\Space\Galaxy) > implementeerd GalaxyAInterface
- StarsGalaxyB.php (namespace MyTest\Space\Galaxy) > implementeerd GalaxyBInterface
(en nog veel meer mappen en bestanden).
De foutmelding die ik vanuit Symfony nu krijg is dat hij de bestanden in de verkeerde directory zoekt (en dus aangeeft dat ze niet bestaan)..
De simpele oplossing zou zijn dat ik de namespace van de space-plugin-stars verander. Maar ik vraag me af of het echt niet my de service.yaml op een andere manier is op te lossen?
[edit] In plain php (zonder symfony) werkt het gewoon zonder problemen.. Het gaat dus echt mis met het autowiren in symfony.
Nu ging dat best goed totdat ik zaken uit dezelfde namespace wilde opdelen over twee verschillende packages (1 met alle domein logica en andere met extra implementaties die afhankelijk zijn van external depencies en optioneel zijn) . Het ondestaande voorbeeld is een versimpeling van wat ik probeer te realiseren.
Bij symfony heb ik in mijn services.yaml het volgende staan voor autowiring.
code:
1
2
3
4
5
6
7
| test.space: namespace: MyTest\Space\ resource: '[b]../vendor/mytest/space/src/*[/b]' test.space.stars: namespace: MyTest\Space\ resource: '[b]../vendor/mytest/space-plugin-stars/src/*[/b]' |
Inhoud: ../vendor/mytest/space/src/
\Galaxy (folder)
- GalaxyAInterface.php (namespace MyTest\Space\Galaxy)
- GalaxyBInterface.php (namespace MyTest\Space\Galaxy)
(en nog veel meer mappen en bestanden)
Inhoud ../vendor/mytest/space-plugin-stars/src/
\Galaxy (folder)
- StarsGalaxyA.php (namespace MyTest\Space\Galaxy) > implementeerd GalaxyAInterface
- StarsGalaxyB.php (namespace MyTest\Space\Galaxy) > implementeerd GalaxyBInterface
(en nog veel meer mappen en bestanden).
De foutmelding die ik vanuit Symfony nu krijg is dat hij de bestanden in de verkeerde directory zoekt (en dus aangeeft dat ze niet bestaan)..
De simpele oplossing zou zijn dat ik de namespace van de space-plugin-stars verander. Maar ik vraag me af of het echt niet my de service.yaml op een andere manier is op te lossen?
[edit] In plain php (zonder symfony) werkt het gewoon zonder problemen.. Het gaat dus echt mis met het autowiren in symfony.
[ Voor 3% gewijzigd door Essie689 op 01-07-2020 22:12 ]