PHP Classes

File: src/App/Component/ComponentTrait.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   src/App/Component/ComponentTrait.php   Download  
File: src/App/Component/ComponentTrait.php
Role: Class source
Content type: text/plain
Description: Class source
Class: Jaxon
Call PHP classes from JavaScript using AJAX
Author: By
Last change:
Date: 4 months ago
Size: 2,340 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\App\Component;

use
Jaxon\App\Databag\DatabagContext;
use
Jaxon\App\Session\SessionInterface;
use
Jaxon\App\Stash\Stash;
use
Jaxon\App\View\ViewRenderer;
use
Jaxon\Exception\SetupException;
use
Jaxon\Plugin\Request\CallableClass\ComponentHelper;
use
Jaxon\Request\TargetInterface;
use
Jaxon\Response\AjaxResponse;
use
Psr\Log\LoggerInterface;

trait
ComponentTrait
{
   
/**
     * Get the component helper
     *
     * @return ComponentHelper
     */
   
abstract protected function helper(): ComponentHelper;

   
/**
     * Get the Ajax response
     *
     * @return AjaxResponse
     */
   
abstract protected function response(): AjaxResponse;

   
/**
     * Get the Jaxon request target
     *
     * @return TargetInterface|null
     */
   
protected function target(): ?TargetInterface
   
{
        return
$this->helper()->xTarget;
    }

   
/**
     * Get the temp cache
     *
     * @return Stash
     */
   
protected function stash(): Stash
   
{
        return
$this->helper()->xStash;
    }

   
/**
     * Get an instance of a Jaxon class by name
     *
     * @template T
     * @param class-string<T> $sClassName the class name
     *
     * @return T|null
     * @throws SetupException
     */
   
protected function cl(string $sClassName): mixed
   
{
        return
$this->helper()->cl($sClassName);
    }

   
/**
     * Get the logger
     *
     * @return LoggerInterface
     */
   
protected function logger(): LoggerInterface
   
{
        return
$this->helper()->xLogger;
    }

   
/**
     * Get the view renderer
     *
     * @return ViewRenderer
     */
   
protected function view(): ViewRenderer
   
{
        return
$this->helper()->xViewRenderer;
    }

   
/**
     * Get the session manager
     *
     * @return SessionInterface
     */
   
protected function session(): SessionInterface
   
{
        return
$this->helper()->xSessionManager;
    }

   
/**
     * Get the uploaded files
     *
     * @return array
     */
   
protected function files(): array
    {
        return
$this->helper()->xUploadHandler->files();
    }

   
/**
     * Get a data bag.
     *
     * @param string $sBagName
     *
     * @return DatabagContext
     */
   
protected function bag(string $sBagName): DatabagContext
   
{
        return
$this->response()->bag($sBagName);
    }
}