PHP Classes

File: src/App/Ajax/Traits/ServicesTrait.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   src/App/Ajax/Traits/ServicesTrait.php   Download  
File: src/App/Ajax/Traits/ServicesTrait.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: 7 months ago
Size: 4,153 bytes
 

Contents

Class file image Download
<?php

/**
 * ServicesTrait.php
 *
 * Access to the services registered in the container.
 *
 * @package jaxon-core
 * @copyright 2025 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\App\Ajax\Traits;

use
Jaxon\App\Ajax\Bootstrap;
use
Jaxon\App\I18n\Translator;
use
Jaxon\App\Session\SessionInterface;
use
Jaxon\App\View\ViewRenderer;
use
Jaxon\Plugin\Code\CodeGenerator;
use
Jaxon\Plugin\Manager\PackageManager;
use
Jaxon\Plugin\Manager\PluginManager;
use
Jaxon\Request\Handler\CallbackManager;
use
Jaxon\Request\Handler\RequestHandler;
use
Jaxon\Request\Handler\Psr\PsrFactory;
use
Jaxon\Request\Upload\UploadHandlerInterface;
use
Jaxon\Response\Manager\ResponseManager;
use
Jaxon\Utils\Template\TemplateEngine;
use
Psr\Log\LoggerInterface;
use
Closure;

trait
ServicesTrait
{
    use
DiTrait;

   
/**
     * @return Translator
     */
   
public function translator(): Translator
   
{
        return
$this->di()->g(Translator::class);
    }

   
/**
     * @return LoggerInterface
     */
   
public function logger(): LoggerInterface
   
{
        return
$this->di()->getLogger();
    }

   
/**
     * @return Bootstrap
     */
   
protected function getBootstrap(): Bootstrap
   
{
        return
$this->di()->getBootstrap();
    }

   
/**
     * @return PluginManager
     */
   
protected function getPluginManager(): PluginManager
   
{
        return
$this->di()->getPluginManager();
    }

   
/**
     * @return CallbackManager
     */
   
protected function getCallbackManager(): CallbackManager
   
{
        return
$this->di()->getCallbackManager();
    }

   
/**
     * @return RequestHandler
     */
   
protected function getRequestHandler(): RequestHandler
   
{
        return
$this->di()->getRequestHandler();
    }

   
/**
     * @return ResponseManager
     */
   
protected function getResponseManager(): ResponseManager
   
{
        return
$this->di()->getResponseManager();
    }

   
/**
     * @return PackageManager
     */
   
protected function getPackageManager(): PackageManager
   
{
        return
$this->di()->getPackageManager();
    }

   
/**
     * @return CodeGenerator
     */
   
protected function getCodeGenerator(): CodeGenerator
   
{
        return
$this->di()->getCodeGenerator();
    }

   
/**
     * Add a view renderer with an id
     *
     * @param string $sRenderer The renderer name
     * @param string $sExtension The extension to append to template names
     * @param Closure $xClosure A closure to create the view instance
     *
     * @return void
     */
   
public function addViewRenderer(string $sRenderer, string $sExtension, Closure $xClosure): void
   
{
       
$this->view()->setDefaultRenderer($sRenderer, $sExtension, $xClosure);
    }

   
/**
     * @param LoggerInterface|Closure $xLogger
     *
     * @return void
     */
   
public function setLogger(LoggerInterface|Closure $xLogger): void
   
{
       
$this->di()->setLogger($xLogger);
    }

   
/**
     * Set the session manager
     *
     * @param Closure $xClosure A closure to create the session manager instance
     *
     * @return void
     */
   
public function setSessionManager(Closure $xClosure): void
   
{
       
$this->di()->setSessionManager($xClosure);
    }

   
/**
     * @return UploadHandlerInterface|null
     */
   
public function upload(): ?UploadHandlerInterface
   
{
        return
$this->di()->getUploadHandler();
    }

   
/**
     * @return PsrFactory
     */
   
public function psr(): PsrFactory
   
{
        return
$this->di()->getPsrFactory();
    }

   
/**
     * @return TemplateEngine
     */
   
public function template(): TemplateEngine
   
{
        return
$this->di()->getTemplateEngine();
    }

   
/**
     * @return ViewRenderer
     */
   
public function view(): ViewRenderer
   
{
        return
$this->di()->getViewRenderer();
    }

   
/**
     * @return SessionInterface|null
     */
   
public function session(): ?SessionInterface
   
{
        return
$this->di()->getSessionManager();
    }
}