PHP Classes

File: src/Di/Traits/RequestTrait.php

Recommend this page to a friend!
  Packages of Thierry Feuzeu   Jaxon   src/Di/Traits/RequestTrait.php   Download  
File: src/Di/Traits/RequestTrait.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: 1 year ago
Size: 3,307 bytes
 

Contents

Class file image Download
<?php

namespace Jaxon\Di\Traits;

use Jaxon\App\Config\ConfigManager;
use Jaxon\App\Dialog\Manager\DialogCommand;
use Jaxon\App\I18n\Translator;
use Jaxon\Di\ComponentContainer;
use Jaxon\Di\Container;
use Jaxon\Plugin\Manager\PluginManager;
use Jaxon\Plugin\Response\Databag\DatabagPlugin;
use Jaxon\Request\Handler\CallbackManager;
use Jaxon\Request\Handler\ParameterReader;
use Jaxon\Request\Handler\RequestHandler;
use Jaxon\Request\Upload\UploadHandlerInterface;
use Jaxon\Response\Manager\ResponseManager;
use Jaxon\Script\CallFactory;
use Jaxon\Script\ParameterFactory;
use Jaxon\Utils\Http\UriDetector;

trait RequestTrait
{
    /**
     * Register the values into the container
     *
     * @return void
     */
    private function registerRequests(): void
    {
        // The parameter reader
        $this->set(ParameterReader::class, function($di) {
            return new ParameterReader($di->g(Container::class), $di->g(Translator::class),
                $di->g(ConfigManager::class), $di->g(UriDetector::class));
        });
        // Callback Manager
        $this->set(CallbackManager::class, function($di) {
            return new CallbackManager($di->g(ResponseManager::class));
        });
        // By default, register a null upload handler
        $this->set(UploadHandlerInterface::class, function() {
            return null;
        });
        // Request Handler
        $this->set(RequestHandler::class, function($di) {
            return new RequestHandler($di->g(Container::class), $di->g(PluginManager::class),
                $di->g(ResponseManager::class), $di->g(CallbackManager::class),
                $di->g(DatabagPlugin::class));
        });
        // Requests and calls Factory
        $this->set(CallFactory::class, function($di) {
            return new CallFactory($di->g(ComponentContainer::class), $di->g(DialogCommand::class));
        });
        // Factory for function parameters
        $this->set(ParameterFactory::class, function() {
            return new ParameterFactory();
        });
    }

    /**
     * Get the js call factory
     *
     * @return CallFactory
     */
    public function getCallFactory(): CallFactory
    {
        return $this->g(CallFactory::class);
    }

    /**
     * Get the js call parameter factory
     *
     * @return ParameterFactory
     */
    public function getParameterFactory(): ParameterFactory
    {
        return $this->g(ParameterFactory::class);
    }

    /**
     * Get the request handler
     *
     * @return RequestHandler
     */
    public function getRequestHandler(): RequestHandler
    {
        return $this->g(RequestHandler::class);
    }

    /**
     * Get the upload handler
     *
     * @return UploadHandlerInterface|null
     */
    public function getUploadHandler(): ?UploadHandlerInterface
    {
        return $this->g(UploadHandlerInterface::class);
    }

    /**
     * Get the callback manager
     *
     * @return CallbackManager
     */
    public function getCallbackManager(): CallbackManager
    {
        return $this->g(CallbackManager::class);
    }

    /**
     * Get the parameter reader
     *
     * @return ParameterReader
     */
    public function getParameterReader(): ParameterReader
    {
        return $this->g(ParameterReader::class);
    }
}