<?php
namespace Illuminate\Translation;
use Illuminate\Filesystem\Filesystem;
class FileLoader implements LoaderInterface
{// FileLoader implements Loader Interface
/**
* The filesystem instance.
*
* @var \Illuminate\Filesystem\Filesystem
*/
protected $files;//The filesystem instance.
/**
* The default path for the loader.
*
* @var string
*/
protected $path;//The default path for the loader.
/**
* All of the namespace hints.
*
* @var array
*/
protected $hints = [];// All of the namespace hints.
/**
* Create a new file loader instance.
*
* @param \Illuminate\Filesystem\Filesystem $files
* @param string $path
* @return void
*/
public function __construct(Filesystem $files, $path)
{
$this->path = $path;// path
$this->files = $files;// files
}//Create a new file loader instance.
/**
* 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);// two type,one is loadPath
}//locale group and namespace
return $this->loadNamespaced($locale, $group, $namespace);// Load Namespace
}//Load the messages for the given locale.
/**
* Load a namespaced translation group.
*
* @param string $locale
* @param string $group
* @param string $namespace
* @return array
*/
protected function loadNamespaced($locale, $group, $namespace)
{//Load a namespaced translation group
if (isset($this->hints[$namespace])) {// if it is set
$lines = $this->loadPath($this->hints[$namespace], $locale, $group);//get this line
return $this->loadNamespaceOverrides($lines, $locale, $group, $namespace);// return a wrap function
}
return [];//default null
}
/**
* 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)
{//another load space
$file = "{$this->path}/vendor/{$namespace}/{$locale}/{$group}.php";//get this file
if ($this->files->exists($file)) {// if it is exists
return array_replace_recursive($lines, $this->files->getRequire($file));
}// return this thing
return $lines;// return line
}
/**
* 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);
}// like include file by path ,the full is the full path
return [];// null
}//load a locale from a given path
/**
* Add a new namespace to the loader.
*
* @param string $namespace
* @param string $hint
* @return void
*/
public function addNamespace($namespace, $hint)
{
$this->hints[$namespace] = $hint;
}// addNamespace
//Add a new namespace to the loader
}
[李景山php]每天laravel-20161027|FileLoader.php
原创
©著作权归作者所有:来自51CTO博客作者lijingshan34的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
mongodb在nacos配置
一、引言 上一篇文章,我介绍了如何在Linux系统上安装和配置MongoDB,其实都不是很难,不需要安装和编译,省去了Make && Make Install 命令的使用。我们既然介绍了在Linux系统(确切的说是CentOS 7上)上如何安装Mong
mongodb在nacos配置 数据库 操作系统 json Server