Is a service provider the right thing to use or this?
是的,使用service provider
用于引导事物,但不是必需的。如果您愿意,您可以完全排除EventServiceProvider service provider
并可以从你的做同样的事情app/start/global.php
使用此文件:
$app->events->subscribe(new Events\UserEventSubscriber);
Since $app
是一个全局变量,所以你可以在这里使用它,但这不是一个更干净的方法(global.php
)文件但是一个service provider
只是一种简洁明了的方式来引导事物(例如包括php
文件使用include "someClass.php"
)因为Laravel
称为register
每个中定义的方法service provider
在框架的启动过程中,开发人员可以在应用程序分派路由之前执行一些引导/初始化/包含等操作。
有没有更好的方法不需要手动传递
每次都对事件进行 Auth::user() 吗?
还有其他方法,但在这种情况下,请坚持使用当前的方法,因为依赖关系是Auth::user()
意味着当前登录的用户,所以最好手动传递使用,或者您也可以使用\Auth::user()->did()
直接这样:
public function login()
{
return \Auth::user()->did('logged_in');
}
这是一个不同的情况,但是Laravel
提供了一种使用以下方法自动解决依赖关系的好方法IoC
容器,当您键入强制转换任何依赖项时__constructor
类,例如:
class SomeClass {
public function __construct(User $user)
{
$this->use = $user;
}
}
在这种情况下,您不需要通过User
当您使用此类时,因为IoC
当框架实例化容器时,容器可以自动注入依赖项,但在您的情况下,他的依赖项是Auth::user()/looged in user
所以这是有点不同的事情所以手动做或使用Auth::user()->did()
直接地。
应该在什么级别触发事件?我倾向于模特
只要有可能,因为它将提供更多有用的批量日志
行动。否则有控制器或存储库。
没有level
为此,这取决于您的需求和偏好,也许还取决于应用程序的架构。实际上,即使不使用,您也可以构建您的应用程序events
.
这些事件仅在管理区域 (/admin/*) 中是必需的。会吗
以某种方式将其仅限于该部分是有益的
地点?
也许可以,但没必要,没什么大不了的IMO
.
我对用户操作记录的搜索非常多
没有成果。这只是开发商不做的事情吗?如果是这样,该怎么办
他们是这样?
不完全确定你在说什么,但如果你在谈论logging
用户操作,那么答案是:depends
。我曾经为一家旅行社做过一次,在他们的申请中logging
用户操作的数量非常重要,因此我记录了用户登录后所做的几乎所有操作,例如:接收客户的付款、出售门票、他们的(员工/用户)日志in/out
以便上级当局可以检查他们的活动。
不要犹豫别人在做什么,找出你需要做什么,了解你的要求并相应地发展。