Halo,
nach Neuinstallation von SW 6.2 via Vagrant Box und plugin:activate erhalte ich folgende Fehlermeldung:
The "Shopware\Core\Framework\DataAbstractionLayer\Indexing\EntityIndexerRegistry" service or alias has been removed or inlined when the container was compile
d. You should either make it public, or stop using the container directly and use dependency injection instead.
Was ist zu tun um das Teil wieder zum Laufen zu bekommen?
Was für ein Plugin willst du denn installieren?
[@Moritz Naczenski](http://forum.shopware.com/profile/14574/Moritz Naczenski “Moritz Naczenski”) Ein neu zu entwickeltendes Plugin. Es gab einen Fehler während der Entwicklung, deshalb Neuinstallation von SW 6.2. Die Installation auf dem ‘alten’ System funktionierte einwandfrei. Jetzt nicht mehr. Installiert hatte ich das System das letzte mal vor 2 Tagen, mit der selben Routine, also ohne Anderung an der Vagrant File
Der Fehler beschreibt, dass der Service nicht public ist. Ich verstehe leider nicht, wo die Quelle des Problems ist, aber lösen kann man es so:
Service Aliasen und public machen
In der services.xml innerhalb des Knoten einen Alias erzeugen:
<service id="entity.indexer.registry" alias="Shopware\Core\Framework\DataAbstractionLayer\Indexing\EntityIndexerRegistry" public="true"></service>
Anschließend den Alias bei der Aktivierung benutzen:
public function activate(ActivateContext $activateContext): void { $registry = $this-\>container-\>get**('entity.indexer.registry')**; $registry-\>sendIndexingMessage(['product.indexer']); }
@Schrank schrieb:
Der Fehler beschreibt, dass der Service nicht public ist. Ich verstehe leider nicht, wo die Quelle des Problems ist…
Der Fehler liegt (mal wieder) in der Dokumentationund dort an fehlender Info zu enstprechender Version von SW
bis 6.0 - 6.2.3
class BundleExample extends Plugin
{
public function activate(ActivateContext $activateContext): void
{
$indexerMessageSender = $this->container->get(IndexerMessageSender::class);
$indexerMessageSender->partial(new \DateTimeImmutable(), [InheritanceIndexer::getName()]);
}
}
ab 6.3
class BundleExample extends Plugin
{
public function activate(ActivateContext $activateContext): void
{
$registry = $this->container->get(EntityIndexerRegistry::class);
$registry->sendIndexingMessage(['product.indexer']);
}
}