Вход Регистрация
Файл: src/vendor/laravel/framework/src/Illuminate/Translation/FileLoader.php
Строк: 102
<?php

namespace IlluminateTranslation;

use 
IlluminateFilesystemFilesystem;

class 
FileLoader implements LoaderInterface
{
    
/**
     * The filesystem instance.
     *
     * @var IlluminateFilesystemFilesystem
     */
    
protected $files;

    
/**
     * The default path for the loader.
     *
     * @var string
     */
    
protected $path;

    
/**
     * All of the namespace hints.
     *
     * @var array
     */
    
protected $hints = [];

    
/**
     * Create a new file loader instance.
     *
     * @param  IlluminateFilesystemFilesystem  $files
     * @param  string  $path
     * @return void
     */
    
public function __construct(Filesystem $files, $path)
    {
        
$this->path = $path;
        
$this->files = $files;
    }

    
/**
     * Load the messages for the given locale.
     *
     * @param  string  $locale
     * @param  string  $group
     * @param  string  $namespace
     * @return array
     */
    
public function load($locale, $group, $namespace = null)
    {
        if (
is_null($namespace) || $namespace == '*') {
            return 
$this->loadPath($this->path, $locale, $group);
        }

        return 
$this->loadNamespaced($locale, $group, $namespace);
    }

    
/**
     * Load a namespaced translation group.
     *
     * @param  string  $locale
     * @param  string  $group
     * @param  string  $namespace
     * @return array
     */
    
protected function loadNamespaced($locale, $group, $namespace)
    {
        if (isset(
$this->hints[$namespace])) {
            
$lines = $this->loadPath($this->hints[$namespace], $locale, $group);

            return 
$this->loadNamespaceOverrides($lines, $locale, $group, $namespace);
        }

        return [];
    }

    
/**
     * Load a local namespaced translation group for overrides.
     *
     * @param  array  $lines
     * @param  string  $locale
     * @param  string  $group
     * @param  string  $namespace
     * @return array
     */
    
protected function loadNamespaceOverrides(array $lines, $locale, $group, $namespace)
    {
        
$file = "{$this->path}/vendor/{$namespace}/{$locale}/{$group}.php";

        if (
$this->files->exists($file)) {
            return 
array_replace_recursive($lines, $this->files->getRequire($file));
        }

        return 
$lines;
    }

    
/**
     * Load a locale from a given path.
     *
     * @param  string  $path
     * @param  string  $locale
     * @param  string  $group
     * @return array
     */
    
protected function loadPath($path, $locale, $group)
    {
        if (
$this->files->exists($full = "{$path}/{$locale}/{$group}.php")) {
            return 
$this->files->getRequire($full);
        }

        return [];
    }

    
/**
     * Add a new namespace to the loader.
     *
     * @param  string  $namespace
     * @param  string  $hint
     * @return void
     */
    
public function addNamespace($namespace, $hint)
    {
        
$this->hints[$namespace] = $hint;
    }
}
Онлайн: 2
Реклама