- Added some utilities methods from Growlogs
This commit is contained in:
parent
bdb9f7f732
commit
98d1685172
|
@ -28,21 +28,14 @@ use function file_get_contents;
|
||||||
* @RouteParam("methods" => [ "GET", "POST", "DELETE" ])
|
* @RouteParam("methods" => [ "GET", "POST", "DELETE" ])
|
||||||
*/
|
*/
|
||||||
trait ControllerTrait {
|
trait ControllerTrait {
|
||||||
|
public ? Session $session;
|
||||||
public Session $session;
|
|
||||||
|
|
||||||
public ? Picea\Picea $picea;
|
public ? Picea\Picea $picea;
|
||||||
|
|
||||||
public ? MailerInterface $mailer;
|
public ? MailerInterface $mailer;
|
||||||
|
|
||||||
public array $contextList = [];
|
public array $contextList = [];
|
||||||
|
|
||||||
public function __construct(? Picea\Picea $picea = null, ? Session $session = null, ? MailerInterface $mailer = null) {
|
|
||||||
$this->picea = $picea;
|
|
||||||
$this->session = $session;
|
|
||||||
$this->mailer = $mailer;
|
|
||||||
}
|
|
||||||
|
|
||||||
public function exportJson(ServerRequestInterface $request, string $entityClass, bool $includeRelations = true, ? callable $callback = null) : ResponseInterface
|
public function exportJson(ServerRequestInterface $request, string $entityClass, bool $includeRelations = true, ? callable $callback = null) : ResponseInterface
|
||||||
{
|
{
|
||||||
foreach($entityClass::repository()->filterServerRequest( $entityClass::searchRequest()->fromRequest($request->withQueryParams($request->getQueryParams() + ['limit' => PHP_INT_MAX,])) )->loadAll() as $entity) {
|
foreach($entityClass::repository()->filterServerRequest( $entityClass::searchRequest()->fromRequest($request->withQueryParams($request->getQueryParams() + ['limit' => PHP_INT_MAX,])) )->loadAll() as $entity) {
|
||||||
|
@ -83,6 +76,48 @@ trait ControllerTrait {
|
||||||
return new JsonResponse($data, $code, $headers);
|
return new JsonResponse($data, $code, $headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function fromResponse(ResponseInterface $response)
|
||||||
|
{
|
||||||
|
if ( $response->getStatusCode() === 200 ) {
|
||||||
|
if ( $response instanceof \Zend\Diactoros\Response\JsonResponse) {
|
||||||
|
return $response->getPayload();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function asset(string $url, array $parameters = []) : string
|
||||||
|
{
|
||||||
|
if (! $this->picea ) {
|
||||||
|
throw new \Exception("A picea object must be provided on class initialization to use this method.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->picea->compiler->getExtensionFromToken('asset')->buildAssetUrl($url, $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function url(string $url, array $parameters = []) : string
|
||||||
|
{
|
||||||
|
if (! $this->picea ) {
|
||||||
|
throw new \Exception("A picea object must be provided on class initialization to use this method.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->picea->compiler->getExtensionFromToken('url')->buildUrl($url, $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function route(string $name, array $parameters = []) : string
|
||||||
|
{
|
||||||
|
if (! $this->picea ) {
|
||||||
|
throw new \Exception("A picea object must be provided on class initialization to use this method.");
|
||||||
|
}
|
||||||
|
|
||||||
|
return $this->picea->compiler->getExtensionFromToken('route')->buildRouteUrl($name, $parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function json($data, int $flags = 0) {
|
||||||
|
return htmlentities(json_encode($data, $flags), ENT_QUOTES, 'UTF-8');
|
||||||
|
}
|
||||||
|
|
||||||
public function pushContext(FormContext $context) : FormContext
|
public function pushContext(FormContext $context) : FormContext
|
||||||
{
|
{
|
||||||
$this->contextList[$context->formName ?? uniqid("context_")] = $context;
|
$this->contextList[$context->formName ?? uniqid("context_")] = $context;
|
||||||
|
|
Loading…
Reference in New Issue