在Laravel 11中的精简配置文件介绍
Laravel  /  管理员 发布于 9个月前   232
Laravel 11 中我最喜欢的功能之一是精简配置文件。
在 Laravel 11 的开发过程中,所有配置文件都从默认的 Laravel 安装中删除了。
然而,在发布前几周,泰勒决定在默认的 Laravel 安装中重新包含精简版的配置文件,
但保留了删除任何不需要的文件或选项的选项。
让我们深入了解一下这是如何工作的,以避免错误,并尽可能获得最精简的应用程序。
毕竟,配置文件会给你的应用程序增加很多噪音。
此外,由于配置文件会不断变化,因此还需要注意保持更新。
因此,我很高兴在 Laravel 11 中看到这项功能。
在内部,Laravel 会将你的配置文件与框架默认值合并。
因此,如果你的应用程序有一个 config/database.php 文件,
它将与 Laravel 内部的 config/database.php 文件合并。
这里有趣的是合并。从表面上看,它合并的是顶层选项(浅层合并)。
这意味着你可以通过删除任何你不使用的顶级选项来进一步精简你的配置文件。
同样,配置文件中的任何选项都会自动与 Laravel 默认值合并。
让我们以一个 Laravel 11 应用程序为例,看看下面的 config/app.php 文件:
<?php return [ 'timezone' => 'America/Kentucky/Louisville', 'custom_option' => 'foo' ];
合并后的配置将是所有核心应用程序配置选项(app.name、app.env、app.debug 等),
同时覆盖 app.timezone,并添加您的 app.custom_option。
这种合并方法对包含顶级选项的文件效果很好。
不过,有些配置文件有嵌套的 "驱动 "选项。
Laravel 在执行合并时会做得更多一些。
虽然不是递归的,但 Laravel 会合并一些常见的嵌套选项。
例如,数据库连接(database.connections)、文件系统磁盘(filesystem.disk)等。
有了这个额外的合并,你就不需要包含 database.connections 下的所有驱动程序了
(因为它是一个顶级选项),
你可以把这个部分精简到只包含你使用的驱动程序。
例如,如果你使用默认的 testing 和 mysql 数据库驱动,
但在 Laravel 11 中也有一个自定义的 mysql_replica 驱动,
那么你的 config/database.php 文件可以是
<?php return [ 'connections' => [ 'mysql_replica' => [ 'driver' => 'mysql', 'url' => env('DB_REPLICA_URL'), 'host' => env('DB_REPLICA_HOST', '127.0.0.1'), 'port' => env('DB_REPLICA_PORT', '3306'), 'database' => env('DB_DATABASE', 'laravel'), 'username' => env('DB_REPLICA_USERNAME', 'root'), 'password' => env('DB_REPLICA_PASSWORD', ''), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => env('DB_CHARSET', 'utf8mb4'), 'collation' => env('DB_COLLATION', 'utf8mb4_0900_ai_ci'), 'prefix' => '', 'prefix_indexes' => true, 'strict' => true, 'engine' => null, 'options' => extension_loaded('pdo_mysql') ? array_filter([ PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'), ]) : [], ], ] ];
当然,我们也欢迎你保留整套默认配置文件及其所有选项。
但如果你喜欢 Laravel 新的、更精简的应用结构,并希望减少配置文件中的干扰,
从而实现真正的自定义,那么这就是你的选择。
123 在
Clash for Windows作者删库跑路了,github已404中评论 按理说只要你在国内,所有的流量进出都在监控范围内,不管你怎么隐藏也没用,想搞你分..原梓番博客 在
在Laravel框架中使用模型Model分表最简单的方法中评论 好久好久都没看友情链接申请了,今天刚看,已经添加。..博主 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 @1111老铁这个不行了,可以看看近期评论的其他文章..1111 在
佛跳墙vpn软件不会用?上不了网?佛跳墙vpn常见问题以及解决办法中评论 网站不能打开,博主百忙中能否发个APP下载链接,佛跳墙或极光..路人 在
php中使用hyperf框架调用讯飞星火大模型实现国内版chatgpt功能示例中评论 教程很详细,如果加个前端chatgpt对话页面就完美了..Copyright·© 2019 侯体宗版权所有· 粤ICP备20027696号