我是OOP的新手,所以在Laravel控制器中,这是一个基本的OOP问题。我是否在Laravel控制器中使用静态方法设置失败?
我试图创建一个用于创建Notification
对象时会创建某些其他对象,编辑的通知系统系统,删除等,所以,举例来说,如果一个User
编辑,然后我想生成一个Notification
关于这个编辑。在此示例之后,我创建了UserObserver
,保存User
时调用NotificationController::store()
。
class UserObserver extends BaseObserver
{
public function saved($user)
{
$data = [
// omitted from example
];
NotificationController::store($data);
}
}
为了使这项工作,我不得不使NotificationController::store()
静态。
class NotificationController extends \BaseController {
public static function store($data)
{
// validation omitted from example
$notification = Notification::create($data);
}
我只依稀熟悉的东西static
手段,所以有超过内在的错误我在这里做什么可能的东西,但这似乎把工作做好,或多或少。然而,我读过的所有内容都表明,静态功能通常是不好的做法。每个人都说我在这里做的“错误”?我怎么能做得更好?
我将有几个其他Observer类将需要调用相同的NotificationController::store()
,我想NotificationController::store()
来处理$data
的任何验证。
我刚开始学习单元测试。我在这里所做的是否会在测试方面造成困难?