class ReportPodcastPurchase {
public function handle(PodcastWasPurchased $event)
{
//
}
}
了解有关事件的更多信息, 可以查看它的完整文档.
命令/队列
在 4.0 版支持的任务队列基础上, 5.0 支持把任务队列定义为简单的命令对象. 这些命令存放在 app/Commands 目录. 下面是一个简单的命令示例:
复制代码 代码如下:
class PurchasePodcast extends Command implements SelfHandling, ShouldBeQueued {
use SerializesModels;
protected $user, $podcast;
/**
* 创建新的命令实例
*
* @return void
*/
public function __construct(User $user, Podcast $podcast)
{
$this->user = $user;
$this->podcast = $podcast;
}
/**
* 执行命令
*
* @return void
*/
public function handle()
{
// 处理购买播客视频的逻辑
event(new PodcastWasPurchased($this->user, $this->podcast));
}
}
Laravel 的基础控制器 (base controller) 使用了新的 DispatchesCommands 特性, 允许你很方便地监控命令的执行:
$this->dispatch(new PurchasePodcastCommand($user, $podcast));
当然, 你不仅可以把命令用于任务队列(非同步执行), 也可以用于同步任务. 事实上, 把你的应用需要执行的复杂任务封装成命令是一个很好的选择. 了解有关命令的更多信息, 可以查看命令桥的详细文档.
数据库队列
新版 Laravel 包含 database 队列驱动, 提供简单的, 本地的队列驱动, 无需安装额外的包. (译注:比如让不支持事务的数据库进行类似事务的数据操作)
Laravel 定时任务
在过去, 为了定时执行控制台任务, 开发者必须依赖 Cron 任务. 这带来很大不便. 因为定时任务并不包括在网站的源代码中, 而且必须通过 SSH 登陆到服务器去添加 Cron 任务. 新版 Laravel 的定时任务允许开发者在 Laravel 框架内来定义定时执行的命令, 然后只需要在服务器上定义一个总的 Cron 任务即可.
比如:
复制代码 代码如下:
$schedule->command('artisan:command')->dailyAt('15:00');
同样的, 了解更多有关定时任务的信息, 可以查阅.
Tinker / Psysh
php artisan tinker 命令在新版本中借助了 Justin Heleman 开发的 Psysh. 如果你喜欢 Laravel 4.0 里的 Boris, 你肯定会喜欢 Psysh. Boris 在 Windows 下运行得不好, Psysh 完全支持 Windows! 使用方法和以前一样:
复制代码 代码如下:
php artisan tinker
DotEnv
在 Laravel 5.0 中, 用 Vance Lucas 实现的 DotEnv 替代了以前版本中的嵌套结构, 容易让人困惑的环境配置目录. 这个框架提供了一种非常简单的管理环境配置的方式. 在 Laravel 5.0 中检测和区分不同的运行环境变得轻而易举. 了解更多详情, 请访问完整的.
Laravel Elixir
由 Jeffrey Way 提供的 Laravel Elixir 提供了简明易懂的合并, 编译资源文件的接口. 如果你曾经对配置 Grunt 或者 Gulp 感到很头大, 那么现在你得到解放了. Elixir 让你可以轻松地借助 Gulp 来编译你的 Less, Sass 和 CoffeeScript 文件. 它甚至可以替你执行测试.
了解 Elixir 的更多详情, 请访问完整文档.
Laravel Socialite
Laravel Socialite 只兼容 Laravel 5.0 以上版本的可选包, 它提供了完整而且上手毫无难度的 OAuth 解决方案. 目前, Socialite 支持 Facebook, Twitter, Google 和 Github. 它看起来是这个样子的:
复制代码 代码如下: