关于Canvas的Jobs写法,求教Jellybool

不知道Jellybool有木有扛过Canvas这个轻量级博客的源码。

他的控制器里几乎都是

$this->dispatch(new BlogIndexData($tag));

本来博客首页显示数据本来可以 直接

$data = BlogModel::all();

这样解决的,我想问一下。

他这种写法的好处是什么,为什么这样写,一般什么情况用到Jobs。

JellyBool

没用过这个 Blog ,具体的 Jobs 相关,你可以看看队列的系列:
https://laravist.com/series/laravel-queue-is-awesome

Tomoe

剛好最近有在 Laravel News 看見這個,其實 issue 有人問作者為何要用 job ,作者的理由是他只是試驗一下 Laravel 的特性

https://github.com/austintoddj/Canvas/issues/29

tlerbao

@Tomoe 哦,看来Job对于我这种菜鸟暂时用不到,我还是用常规写法先弄个项目出来,然后再改进。

Tomoe

@tlerbao 主要目的都是為了解耦,如果業務邏輯並不複雜其實不用過度設計。

justtest

让控制器和应用代码解耦,控制器只做转发,而不需要触碰任何 orm 或者业务逻辑。

如果直接调用 orm,未来如果需求变了,你就要改控制器中的 all。

如果转发到应用/业务对象,未来任何变更都可以直接在那里改,于是就职责单一了。

dispatcher 在这里不一定非要用,直接调用即可。