Laravel 5.8 版本的新功能及更改

文章目录

    2019 年 2 月 26 日,Laravel 新版本 5.8 发布。粗略地扫了一遍新功能列表,感觉没有任何尝试的必要,根本没有升级的冲动。都是不痛不痒的小功能更新。只不过有些修改确实无法向下兼容 5.7 版本,例如 TTL 的单位问题,所以不得不发了 5.8 版本,我觉得是这样。

    Laravel 5.8 要求 PHP 版本 >= 7.1.3。

    一些新功能:

    集成了 PHP dotenv 3.0

    随之而来的新特性使 .env 的配置更加灵活:

    支持了多行变量。例如

    LOCATION="烟台
    开发区"
    

    不再对配置字符串进行 trim 操作。

    可配置从一堆路径中查找 .env 文件,而不是固定路径。我暂时没想到这有什么用。。。

    还有两处修改,我没看懂。。。

    详情参考 https://laravel-news.com/phpdotenv-3-0

    支持 Carbon v2

    • 默认使用 CarbonImmutable
    • 方便做国际化

    这两项更改,我都不知道意义何在。。。

    Cache TTL 单位由分钟变为秒

    这是一个有意义的修改。

    因为正常的缓存组件(例如 Redis)都是用的秒,而 Laravel 默认使用分钟作为单位容易出现惯性思维导致的 Bug。

    现在,Cache::remember 和 Cache::put 的缓存单位都由分钟变成了秒。

    String 和 Array helper 被废弃

    laravel 5.9 中将会被移除。

    // 废弃
    array_add($array, $key, $value);
    
    // 需替换为
    Arr::add($array, $key, $value);
    

    这是个悲剧,我还是很喜欢使用 array_add 。。。所以使用框架内置 helper 还是慎重,一调整就带来不必要的迁移工作量。

    不再内置 Nexmo / Slack Notification Channels

    已被剥离到三方库。

    需手动引入 https://laravel.com/docs/5.8/upgrade#nexmo-slack-notification-channels

    编译后的 blade 模板,文件头部增加了源 blade 文件的路径

    方便调试时,知道这是来自哪个源文件。

    效果如 https://laravel-news.com/laravel-5-8-blade-template-file-path

    laravel5.8对php版本有要求吗?

    PHP >= 7.1.3

    参考

    https://laravel-news.com/laravel-5-8

    关于作者 🌱

    我是来自山东烟台的一名开发者,有感兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊,或者关注我的个人公众号“大象工具”, 查看更多联系方式