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

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

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

jevan
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
讨论数量: 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 3年前

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

3年前 评论
kis龍 3年前

看到这个, 切换到 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 的目录也改过

3年前 评论

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