PHP Classes

File: src/Di/Traits/UtilTrait.php

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

Contents

Class file image Download
<?php

namespace Jaxon\Di\Traits;

use
Jaxon\App\Stash\Stash;
use
Jaxon\App\I18n\Translator;
use
Jaxon\Config\ConfigReader;
use
Jaxon\Config\ConfigSetter;
use
Jaxon\Utils\Http\UriDetector;
use
Jaxon\Utils\Template\TemplateEngine;

use function
rtrim;
use function
trim;

trait
UtilTrait
{
   
/**
     * Register the values into the container
     *
     * @return void
     */
   
private function registerUtils(): void
   
{
       
// Translator
       
$this->set(Translator::class, function($di) {
           
$xTranslator = new Translator();
           
$sResourceDir = rtrim(trim($di->g('jaxon.core.dir.translation')), '/\\');
           
// Load the debug translations
           
$xTranslator->loadTranslations($sResourceDir . '/en/errors.php', 'en');
           
$xTranslator->loadTranslations($sResourceDir . '/fr/errors.php', 'fr');
           
$xTranslator->loadTranslations($sResourceDir . '/es/errors.php', 'es');
           
// Load the config translations
           
$xTranslator->loadTranslations($sResourceDir . '/en/config.php', 'en');
           
$xTranslator->loadTranslations($sResourceDir . '/fr/config.php', 'fr');
           
$xTranslator->loadTranslations($sResourceDir . '/es/config.php', 'es');
           
// Load the labels translations
           
$xTranslator->loadTranslations($sResourceDir . '/en/labels.php', 'en');
           
$xTranslator->loadTranslations($sResourceDir . '/fr/labels.php', 'fr');
           
$xTranslator->loadTranslations($sResourceDir . '/es/labels.php', 'es');
            return
$xTranslator;
        });

       
// Config reader
       
$this->set(ConfigReader::class, function($di) {
            return new
ConfigReader($di->g(ConfigSetter::class));
        });
       
// Config setter
       
$this->set(ConfigSetter::class, function() {
            return new
ConfigSetter();
        });
       
// Template engine
       
$this->set(TemplateEngine::class, function($di) {
           
$xTemplateEngine = new TemplateEngine();
           
$sTemplateDir = rtrim(trim($di->g('jaxon.core.dir.template')), '/\\');
           
$sPaginationDir = $sTemplateDir . DIRECTORY_SEPARATOR . 'pagination';
           
$xTemplateEngine->addNamespace('jaxon', $sTemplateDir, '.php');
           
$xTemplateEngine->addNamespace('pagination', $sPaginationDir, '.php');
           
$xTemplateEngine->setDefaultNamespace('jaxon');
            return
$xTemplateEngine;
        });
       
// URI detector
       
$this->set(UriDetector::class, function() {
            return new
UriDetector();
        });

       
// Temp cache for Jaxon components
       
$this->set(Stash::class, function() {
            return new
Stash();
        });
    }

   
/**
     * Get the template engine
     *
     * @return TemplateEngine
     */
   
public function getTemplateEngine(): TemplateEngine
   
{
        return
$this->g(TemplateEngine::class);
    }

   
/**
     * Get the temp cache for Jaxon components
     *
     * @return Stash
     */
   
public function getStash(): Stash
   
{
        return
$this->g(Stash::class);
    }
}