Enable Discovery debug logging for production troubleshooting
- Add DISCOVERY_LOG_LEVEL=debug - Add DISCOVERY_SHOW_PROGRESS=true - Temporary changes for debugging InitializerProcessor fixes on production
This commit is contained in:
@@ -1,5 +1,7 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Contact;
|
||||
|
||||
use App\Framework\Http\ControllerRequest;
|
||||
@@ -8,7 +10,11 @@ use App\Framework\Validation\Rules\Email;
|
||||
class ContactRequest implements ControllerRequest
|
||||
{
|
||||
public string $name;
|
||||
|
||||
#[Email]
|
||||
public string $email;
|
||||
|
||||
public string $subject;
|
||||
|
||||
public string $message;
|
||||
}
|
||||
|
||||
@@ -1,14 +1,19 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Contact;
|
||||
|
||||
use App\Framework\Attributes\Route;
|
||||
use App\Framework\CommandBus\CommandBus;
|
||||
use App\Framework\Http\Method;
|
||||
use App\Framework\Meta\Keywords;
|
||||
use App\Framework\Meta\MetaData;
|
||||
use App\Framework\Meta\StaticPageMetaResolver;
|
||||
use App\Framework\OpenApi\Attributes\ApiEndpoint;
|
||||
use App\Framework\OpenApi\Attributes\ApiRequestBody;
|
||||
use App\Framework\OpenApi\Attributes\ApiResponse;
|
||||
use App\Framework\Router\ActionResult;
|
||||
use App\Framework\Router\Result\ContentNegotiationResult;
|
||||
use App\Framework\Router\Result\Redirect;
|
||||
use App\Framework\Router\Result\ViewResult;
|
||||
|
||||
final readonly class ShowContact
|
||||
@@ -16,32 +21,54 @@ final readonly class ShowContact
|
||||
#[Route(path: '/kontakt', name: 'contact')]
|
||||
public function __invoke(): ViewResult
|
||||
{
|
||||
return new ViewResult('contact',
|
||||
return new ViewResult(
|
||||
'contact',
|
||||
new StaticPageMetaResolver(
|
||||
'Kontakt',
|
||||
'Kontaktseite!',
|
||||
Keywords::fromStrings('Kontakt', 'Welt')
|
||||
)(),);
|
||||
)(),
|
||||
);
|
||||
}
|
||||
|
||||
#[Route(path: '/kontakt', method: Method::POST)]
|
||||
#[ApiEndpoint(
|
||||
summary: 'Submit contact form',
|
||||
description: 'Submit a contact form message',
|
||||
tags: ['Contact'],
|
||||
)]
|
||||
#[ApiRequestBody(
|
||||
description: 'Contact form data',
|
||||
required: true,
|
||||
example: [
|
||||
'name' => 'John Doe',
|
||||
'email' => 'john@example.com',
|
||||
'subject' => 'Question about services',
|
||||
'message' => 'I would like to know more about your services.',
|
||||
],
|
||||
)]
|
||||
#[ApiResponse(
|
||||
statusCode: 200,
|
||||
description: 'Contact form submitted successfully',
|
||||
example: ['success' => true, 'message' => 'Thank you for your message'],
|
||||
)]
|
||||
#[ApiResponse(
|
||||
statusCode: 400,
|
||||
description: 'Validation error - Invalid form data',
|
||||
)]
|
||||
public function senden(ContactRequest $request, CommandBus $commandBus): ActionResult
|
||||
{
|
||||
|
||||
$command = new StoreContact(
|
||||
$request->email,
|
||||
$request->name,
|
||||
$request->subject ?? 'Kein Betreff angegeben',
|
||||
$request->subject,
|
||||
$request->message,
|
||||
);
|
||||
|
||||
$commandBus->dispatch($command);
|
||||
|
||||
dd($request);
|
||||
|
||||
return new ContentNegotiationResult(
|
||||
|
||||
);
|
||||
#return new ViewResult('contact-senden');
|
||||
// Success! Clear form data and redirect
|
||||
return new ViewResult('contact-success', new MetaData(
|
||||
title: 'Kontakt | <NAME>',
|
||||
), data: ['message' => 'Vielen Dank für Ihre Nachricht!']);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,14 +1,16 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Contact;
|
||||
|
||||
final class StoreContact
|
||||
final readonly class StoreContact
|
||||
{
|
||||
public function __construct(
|
||||
public string $name,
|
||||
public string $email,
|
||||
public string $subject,
|
||||
public string $message,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace App\Application\Contact;
|
||||
@@ -11,12 +12,14 @@ final readonly class StoreContactHandler
|
||||
{
|
||||
public function __construct(
|
||||
private ContactRepository $contactRepository,
|
||||
) {}
|
||||
) {
|
||||
}
|
||||
|
||||
#[CommandHandler]
|
||||
public function __invoke(StoreContact $command): void
|
||||
{
|
||||
$message = new ContactMessage($command->name, $command->email, $command->message);
|
||||
|
||||
$this->contactRepository->save($message);
|
||||
#$this->contactRepository->save($message);
|
||||
}
|
||||
}
|
||||
|
||||
7
src/Application/Contact/contact-success.view.php
Normal file
7
src/Application/Contact/contact-success.view.php
Normal file
@@ -0,0 +1,7 @@
|
||||
<layout src="main"/>
|
||||
|
||||
<section>
|
||||
<h1>Vielen Dank!</h1>
|
||||
<p>{{ message }}</p>
|
||||
<a href="/kontakt">Zurück zum Kontaktformular</a>
|
||||
</section>
|
||||
@@ -13,9 +13,6 @@
|
||||
<input type="text" name="website" id="website" tabindex="-1" autocomplete="off">
|
||||
</div>
|
||||
|
||||
<div role="alert">
|
||||
Hallo Welt
|
||||
</div>
|
||||
|
||||
<label for="name">Name:</label>
|
||||
<input type="text" name="name" id="name">
|
||||
|
||||
Reference in New Issue
Block a user