PHP Classes

File: src/Plugin/Request/CallableClass/ComponentHelper.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   src/Plugin/Request/CallableClass/ComponentHelper.php   Download  
File: src/Plugin/Request/CallableClass/ComponentHelper.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,182 bytes
 

Contents

Class file image Download
<?php

/**
 * ComponentHelper.php
 *
 * Provides helper functions to components.
 *
 * @package jaxon-core
 * @author Thierry Feuzeu <thierry.feuzeu@gmail.com>
 * @copyright 2022 Thierry Feuzeu <thierry.feuzeu@gmail.com>
 * @license https://opensource.org/licenses/BSD-3-Clause BSD 3-Clause License
 * @link https://github.com/jaxon-php/jaxon-core
 */

namespace Jaxon\Plugin\Request\CallableClass;

use
Jaxon\App\Session\SessionInterface;
use
Jaxon\App\Stash\Stash;
use
Jaxon\App\View\ViewRenderer;
use
Jaxon\Di\ComponentContainer;
use
Jaxon\Exception\SetupException;
use
Jaxon\Script\CallFactory;
use
Jaxon\Script\Call\JxnCall;
use
Jaxon\Request\Target;
use
Jaxon\Request\Upload\UploadHandlerInterface;
use
Psr\Log\LoggerInterface;

use function
trim;

class
ComponentHelper
{
   
/**
     * @var Target
     */
   
public $xTarget;

   
/**
     * The constructor
     *
     * @param ComponentContainer $cdi
     * @param JxnCall $xJxnCall
     * @param CallFactory $xFactory
     * @param ViewRenderer $xViewRenderer
     * @param LoggerInterface $xLogger
     * @param SessionInterface $xSessionManager
     * @param UploadHandlerInterface|null $xUploadHandler
     *
     * @throws SetupException
     */
   
public function __construct(public ComponentContainer $cdi, public JxnCall $xJxnCall,
        public
CallFactory $xFactory, public ViewRenderer $xViewRenderer,
        public
LoggerInterface $xLogger, public ?SessionInterface $xSessionManager,
        public
Stash $xStash, public ?UploadHandlerInterface $xUploadHandler)
    {}

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

   
/**
     * Get the js call factory.
     *
     * @param string $sClassName
     *
     * @return JxnCall
     */
   
public function rq(string $sClassName = ''): JxnCall
   
{
       
$sClassName = trim($sClassName);
        return !
$sClassName ? $this->xJxnCall : $this->xFactory->rq($sClassName);
    }
}