Hallo zusammen,
ich habe eine Contao Managed Edition 4.10.5 laufen. Über eine eigene Extension erzeuge ich noch eine XML für einen Google Shopping Feed. Alles soweit gut.
Nun möchte ich für das Schreiben aufs Filesystem league/flysystem-bundle nutzen.
Das Problem ist, dass wenn ich das FilesystemInterface injecte (wie hier beschrieben)
PHP-Code:
use League\Flysystem\FilesystemInterface;
class Feed
{
private FilesystemInterface $feedStorage;
public function __construct(FilesystemInterface $defaultStorage)
{
//$this->feedStorage = $defaultStorage;
}
}
immer die Fehlermeldung "argument "$defaultStorage" of method "__construct()" references interface "League\Flysystem\FilesystemInter
face" but no such service exists. Did you create a class that implements this interface?" bekomme.
Aktuell lade ich das Flysystem-Bundle in meiner eigenen Extension in der Contao/Plugin.php Datei:
PHP-Code:
class Plugin implements BundlePluginInterface
{
/**
* @param ParserInterface $parser
* @return array
*/
public function getBundles(ParserInterface $parser): array
{
return [
BundleConfig::create(FlysystemBundle::class),
BundleConfig::create(GoogleShoppingFeedBundle::class)
->setLoadAfter([
ContaoCoreBundle::class,
ContaoNewsBundle::class,
FlysystemBundle::class,
]),
];
}
}
jedoch scheinen alle services, die das Bundle normalerweise registriert, bei Contao nicht geladen/registriert zu werden. Wenn ich
HTML-Code:
$ ./vendor/bin/contao-console debug:container
laufen lasse, kann ich jedenfalls keinen Service des FlysystemBundle finden.
Irgendeine Idee, wie ich das FlysystemBundle anders registriere bzw. Contao Managed Edition sagen kann, dass es die Services registrieren soll?
Lesezeichen