Laravel5.6新特性详解:日志优化与单机任务调度

需积分: 9 18 下载量 109 浏览量 更新于2024-09-08 收藏 10.83MB DOCX 举报
"laravel5.6官方文档,word版,laravel5.6官方文档,word版" 在Laravel 5.6版本中,开发者可以发现一系列改进和新特性,这些变化旨在提升开发效率和应用性能。以下是部分关键知识点的详细说明: 1. **新版特性**:Laravel 5.6在Laravel 5.5的基础上进行了多方面的优化和增强,如日志系统、单机任务调度、模型序列化、动态频率限制、广播频道类、API资源控制器、Eloquent日期格式化、Blade组件别名、Argon2密码哈希支持、Collision扩展包等。此外,前端框架更新为Bootstrap 4,底层的Symfony组件也升级至4.0版本。 2. **日志优化**:日志配置现在统一在`config/logging.php`文件中管理,允许构建发送日志到多个处理器的“堆栈”。例如,可以将debug级别日志发送到系统日志,而error级别日志发送到Slack。新的“tap”功能使得自定义现有日志频道变得简单。 3. **单机任务调度**:针对多服务器环境,Laravel 5.6引入了单机任务调度。这需要使用memcached或redis作为默认缓存驱动,并确保所有服务器能访问同一中心缓存服务器。通过`onOneServer`方法,可以确保任务只在一个服务器上执行,防止重复处理。 4. **动态频率限制**:以前的频率限制需要在路由群组中硬编码最大请求次数。Laravel 5.6允许根据认证用户的模型属性设置动态的最大请求次数,如User模型包含`rate_limit`字段,可以根据该字段限制特定用户的请求频率。 5. **广播频道类**:广播系统得到改进,可以通过频道类来定义更复杂的广播策略,提高灵活性。 6. **API资源控制器**:用于生成JSON响应的API资源控制器得到增强,使得创建和维护RESTful API更为简便。 7. **Eloquent日期格式化优化**:模型中的日期属性可以使用新的格式化选项,简化了日期和时间的显示。 8. **Blade组件别名**:Blade模板引擎引入了组件别名,允许为组件创建友好的别名,提高代码可读性。 9. **Argon2密码哈希支持**:为了提高安全性,Laravel 5.6添加了对Argon2密码哈希算法的支持,这是一种更安全的哈希算法。 10. **Collision扩展包**:Laravel引入了Collision扩展包,提供了一套优雅的错误和异常处理界面,提升了开发体验。 以上是Laravel 5.6中的一些主要改进和新特性,每个知识点都涉及了框架的核心组件,旨在提升开发者的工作效率和应用程序的质量。对于想要深入学习Laravel 5.6的开发者,官方文档是宝贵的参考资料,包含了详尽的指南和示例。
2018-07-31 上传
laravel5.6版本完整下载。 简介 为了帮助你了解更多关于应用中所发生的事情,Laravel 提供了强大的日志服务来记录日志信息到文件、系统错误日志、甚至是 Slack 以便通知整个团队。 在日志引擎之下,Laravel 集成了 Monolog 日志库以便提供各种功能强大的日志处理器,从而允许你通过它们来定制自己应用的日志处理。 配置 应用日志系统的所有配置都存放在配置文件 config/logging.php 中,该文件允许你配置应用的日志频道,因此请务必查看每个可用频道及其配置项。下面我们就来看看其中某些配置项。 默认情况下,Laravel 使用 stack 频道来记录日志信息,stack 频道被用于聚合多个日志频道到单个频道,更多关于构建 stack 的信息,请查看下面的文档。 配置频道名称 默认情况下,Monolog 通过与当前环境匹配的「频道名」实例化,例如 production 或 local,要改变这个值,添加 name 项到频道配置: 'stack' => [ 'driver' => 'stack', 'name' => 'channel-name', 'channels' => ['single', 'slack'], ], 配置 Slack 频道 slack 频道需要一个 url 配置项,这个 URL 需要和你配置的 Slack 团队请求 URL 相匹配。 构建日志堆栈 如上所述,stack 驱动允许你将多个频道合并到单个日志频道,为了说明如何实现,让我们看一个你可能在生产环境中看到的示例配置: 'channels' => [ 'stack' => [ 'driver' => 'stack', 'channels' => ['syslog', 'slack'], ], 'syslog' => [ 'driver' => 'syslog', 'level' => 'debug', ], 'slack' => [ 'driver' => 'slack', 'url' => env('LOG_SLACK_WEBHOOK_URL'), 'username' => 'Laravel Log', 'emoji' => ':boom:', 'level' => 'critical', ], ], 我们来剖析这个配置。首先,注意 stack 频道通过 channels 项将聚合了其他两个频道:syslog 和 slack。因此,记录日志信息时,这两个频道都有机会记录信息。 日志级别 注意上述示例中 syslog 和 slack 频道配置中出现的 level 配置项,这个配置项决定了日志信息被频道记录所必须达到的最低「级别」。为 Laravel 提供日志服务的 Monolog,支持定义在 RFC 5424规范中的所有日志级别:emergency、alert、critical、error、warning、 notice、info 和 debug。 因此,假设我们使用 debug 方法来记录日志信息: Log::debug('An informational message.'); 鉴于我们的配置,syslog 频道将会将信息记录到系统日志;不过,由于错误消息不是 critical 或更高级别,将不会发送到 Slack。但是,如果我们记录的是 emergency 级别的信息,就会被发送到系统日志和 Slack,因为 emergency 级别高于两个频道的最低级别门槛: Log::emergency('The system is down!'); 写入日志信息 你可以使用 Log 门面记录日志信息,如上所述,日志系统提供了定义在 RFC 5424 规范中的八种日志级别:emergency、alert、critical、error、warning、 notice、info 和 debug: Log::emergency($error); Log::alert($error); Log::critical($error); Log::error($error); Log::warning($error); Log::notice($error); Log::info($error); Log::debug($error); 因此,你可以调用其中的任意一个方法来记录相应级别的日志信息,默认情况下,信息会被写入到通过配置文件 config/logging.php 所配置的