Besten Dank! Leider wurden meine Controller-Klassen nicht mehr gefunden, nachdem ich die Stats-Klasse in der services.yaml hinzugefügt hatte, weshalb ich das Ganze etwas anpassen musste. Filesystem wurde aus App\Stats entfernt, sodass jetzt nurnoch die Datenbank-Verbindung benötigt wird. In diesem Zuge habe ich den Tag "controller.service_arguments" als Annotation entfernt und mit in die services.yml gepackt.
So habe ich es jetzt lösen können.
config/services.yml
Code:
services:
app.stats:
class: App\Stats
arguments:
- '@database_connection'
public: true
App\Controller\UpdateVisitsController:
arguments:
- '@app.stats'
tags:
- controller.service_arguments
App\Controller\UpdateDatabaseController:
arguments:
- '@app.stats'
tags:
- controller.service_arguments
app/Resources/config.php
PHP-Code:
array_insert($GLOBALS['BE_MOD'], 1, [
'stats' => [
'report' => [
'tables' => ['tl_stats_report'],
'showStats' => ['app.stats', 'showStats']
]
]
]
);
src/Stats.php
PHP-Code:
namespace App;
use Doctrine\DBAL\Connection;
use Contao\DataContainer;
class Stats {
private $db;
public function __construct(Connection $db)
{
$this->db = $db;
}
public function showStats(DataContainer $dc) {
return "Hooray! It works!";
}
...
}
src/Controller/UpdateVisitsController.php
PHP-Code:
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Stats;
/**
* @Route("/update_visits", name=UpdateVisitsController::class)
*/
class UpdateVisitsController
{
private $stats;
public function __construct(Stats $stats)
{
$this->stats = $stats;
}
public function __invoke(Request $request): Response
{
...
}
}
src/Controller/UpdateDatabaseController.php
PHP-Code:
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use App\Stats;
/**
* @Route("/update_database", name=UpdateDatabaseController::class)
*/
class UpdateDatabaseController
{
private $stats;
public function __construct(Stats $stats)
{
$this->stats = $stats;
}
public function __invoke(Request $request): Response
{
...
}
}
Lesezeichen