讨论:Laravel 9 将 lang 从 resources 中移到项目根目录,是出于什么样的考虑呢?

我非常疑惑,从语义和目录结构上考虑,语言文件和视图文件,都是最终呈现出来的资源或信息,理应是同级或同理的东西,为什么一个放在 resources,另一个放到根目录了,不是很理解这个变化。求教和讨论一下,这样的改动,是出于什么样的考虑呢?

我已经尝试过在中文和英文环境里搜索答案,没有找到相关的讨论。

jevan
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 16

坐等知情人士解答 :stuck_out_tongue_winking_eye:

3年前 评论

看升级里面有说,他可以随意定义语言包路径,就写外面了

3年前 评论
jevan (楼主) 3年前
deatil 3年前
jevan (楼主) 3年前
deatil 3年前
Diudiuuuu (作者) 3年前
MZ0x01 3年前

laravel 作者有强迫症,目录的改动也不是第一次了 :smiley:

3年前 评论

语言配置不是视图专用,我在接口返回,报错等信息也可以多语言配置的,所以作者放最外层方便调用

3年前 评论
GeorgeKing 3年前
buxuhunao 2年前

在哪里能更改lang目录的位置啊 现在两个地方都有lang目录 有没有什么影响啊 用兼容不

2年前 评论
kis龍 2年前

看到这个, 切换到 9.x 版本翻看了下源码,如下


// Illuminate\Foundation\Application::bindPathsInContainer()

    protected function bindPathsInContainer()
    {
        // 其他代码  ..... 
        $this->useLangPath(value(function () {
            if (is_dir($directory = $this->resourcePath('lang'))) { // 这里有兼容旧版本的语言路径
                return $directory;
            }

            return $this->basePath('lang');
        }));
    }

兼容旧版本resource_path('lang') 路径

我看的源码的语言文件是放在根目录,看到就知道这个程序支持多语言

可以使用 app()->useLangPath(resource_path('path/lang')) 把路径改成其他的路径,修改也简单

理由也挺牵强的。

之前 Model 的目录也改过

2年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!