picea-ui/src/Method/Form.php

42 lines
1.0 KiB
PHP

<?php
namespace Picea\Ui\Method;
use Picea\Extension\Extension,
Picea\Extension\ExtensionTrait;
use Picea\Compiler\Context;
use Picea\Extension\FunctionExtension;
use Psr\Http\Message\ServerRequestInterface;
class Form implements Extension, FunctionExtension {
use ExtensionTrait;
public array $tokens;
public string $token;
public FormContext $formContext;
public ServerRequestInterface $request;
public function __construct(ServerRequestInterface $request, Context $context) {
$this->request = $request;
}
public function parse(\Picea\Compiler\Context &$context, ?string $arguments, string $token) : string { }
public function exportFunctions(): array
{
return [
"form" => [ $this, 'formClass' ],
];
}
public function formClass(FormInterface $form, ? FormContext $formContext = null) : FormHandler
{
return new FormHandler($formContext ? $formContext->request : $this->request, $form, $formContext);
}
}