This commit is contained in:
Jürgen Mummert
2025-12-26 21:01:25 +01:00
parent 66c119ad66
commit 7b851001f0
4 changed files with 84 additions and 1 deletions
+32
View File
@@ -0,0 +1,32 @@
<?php
namespace MummertMedia\ContaoMeilisearchBundle\Command;
use MummertMedia\ContaoMeilisearchBundle\Service\MeilisearchIndexService;
use Symfony\Component\Console\Attribute\AsCommand;
use Symfony\Component\Console\Command\Command;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;
#[AsCommand(
name: 'meilisearch:index',
description: 'Rebuild Meilisearch index'
)]
class MeilisearchIndexCommand extends Command
{
public function __construct(
private readonly MeilisearchIndexService $indexService
) {
parent::__construct();
}
protected function execute(InputInterface $input, OutputInterface $output): int
{
$output->writeln('<info>Meilisearch index started</info>');
$this->indexService->run();
$output->writeln('<info>Meilisearch index finished</info>');
return Command::SUCCESS;
}
}
+22
View File
@@ -0,0 +1,22 @@
<?php
namespace MummertMedia\ContaoMeilisearchBundle\Cron;
use Contao\CoreBundle\Framework\ContaoFramework;
use MummertMedia\ContaoMeilisearchBundle\Service\MeilisearchIndexService;
class MeilisearchIndexCron
{
public function __construct(
private readonly MeilisearchIndexService $indexService,
private readonly ContaoFramework $framework,
) {}
public function __invoke(): void
{
// Contao initialisieren (wichtig!)
$this->framework->initialize();
// einmal täglich indexieren
$this->indexService->run();
}
}
+5 -1
View File
@@ -1,7 +1,7 @@
services: services:
# EventListener + Service automatisch laden # EventListener + Service automatisch laden
MummertMedia\ContaoMeilisearchBundle\: MummertMedia\ContaoMeilisearchBundle\:
resource: '../../{EventListener,Service}/*' resource: '../../*'
autowire: true autowire: true
autoconfigure: true autoconfigure: true
public: true public: true
@@ -10,3 +10,7 @@ services:
MummertMedia\ContaoMeilisearchBundle\EventListener\IndexPageListener: MummertMedia\ContaoMeilisearchBundle\EventListener\IndexPageListener:
tags: tags:
- { name: contao.hook, hook: indexPage, method: onIndexPage } - { name: contao.hook, hook: indexPage, method: onIndexPage }
-
MummertMedia\ContaoMeilisearchBundle\Cron\MeilisearchIndexCron:
tags:
- { name: contao.cron, interval: daily }
+25
View File
@@ -0,0 +1,25 @@
<?php
namespace MummertMedia\ContaoMeilisearchBundle\Service;
use Psr\Log\LoggerInterface;
class MeilisearchIndexService
{
public function __construct(
private readonly LoggerInterface $logger,
) {}
public function run(): void
{
// hier später:
// - Seiten / Events / News laden
// - normalisieren
// - an Meilisearch senden
$this->logger->info('Meilisearch indexing started');
// TODO: Indexierung
$this->logger->info('Meilisearch indexing finished');
}
}