Wie verwende ich Anforderungsparameter in meiner Mezizio -App, bevor der Handler initialisiert wurde?Php

PHP-Programmierer chatten hier
Anonymous
 Wie verwende ich Anforderungsparameter in meiner Mezizio -App, bevor der Handler initialisiert wurde?

Post by Anonymous »

ein in meiner App aus der spezifischen Zeile in der Datenbank zu verwenden). Alle diese Konfigurationen werden benötigt, um verschiedene Klassenobjekte zu initialisieren, mit denen die Anforderung bearbeitet werden soll. Normalerweise würde ich so etwas tun, wenn ich diese Daten aus der Anfrage nicht benötigte: < /p>

Code: Select all

class WebhookHandlerFactory
{ // $config['client'] is hardcoded in the .env file in this case and then put into ConfigProvider
protected ContainerInterface $container;

public function __invoke(ContainerInterface $container): RequestHandlerInterface
{
$this->container = $container;
$config = $this->getConfig();
$client = (new SomeClient($config['client']))->getClient();
$controller = (new SomeControllerFactory)($container);

return new WebhookHandler($controller, $config, $client);
}

protected function getConfig(): ArrayObject
{
$config = $this->container->get('config');
// here I use my hardcoded data to find something in the DB and then put it into $config

return $config;
}
< /code>
Das [url=viewtopic.php?t=11587]Problem[/url] ist, dass ich meine Anfrage nicht in der Fabrik erhalten kann. Handlerklasse in __construct und dann nimmt die Handlungsmethode wie folgt zu: < /p>
public function __construct(
ContainerInterface $container,
CreateController $controller,
ArrayObject $config
){
$this->container = $container;
$this->createController = $createController;
$this->config = $config;

$config = $this->getConfig();
$client = (new SomeClient($config['client']))->getClient();

$this->handler = new WebhookHandler($this->controller, $config, $client);
}

public function handle(ServerRequestInterface $request)
{
return $this->handler->handle($request);
}
< /code>
Aber meine Datei Routes.php sieht jetzt irgendwie hässlich aus, wenn ich dachte, ich mache etwas falsch. < /p>
return static function (Application $app): void
{
$app->post('/', App\Handler\WebhookHandlerFactory::class);
Meine Frage ist, was die korrektere Möglichkeit ist, meine Anforderungsdaten vor der Handlerinitialisierung zu erhalten, und welche Muster ich besser verwenden kann

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post