如何在每次访问不同页面时有效地触发事件

时间:2016-10-10 15:40:51

标签: php events laravel-5 controller

我正在处理我的公司以前的开发人员的应用程序,现在我已经让老板要求我记录哪个用户访问了哪个页面。所以我已经设置了一些事件和监听器来完成工作,因为我一直在为所有其他日志做,但是有一个问题。

如果我按照我一直在做的方式发起事件直到现在id必须重新编写代码来为每个返回页面的单独方法触发事件,但是现在这是唯一可行的我看到的选项因为我可以自定义我放入事件日志的信息(我需要能够自定义被推送到事件/监听器的信息)。 以下示例

 public function showCreateAccount()
    {

        // NEW EVENT HERE
        //I need the account types for this page and the status types
        $account_types = AccountController::getTypes();
        $status_types  = StatusController::getTypes();
        $timezone_types = TimezoneController::getTypes();
        $currency_types = CurrencyController::getTypes();

        return view('create.account')->with('account_types', $account_types)
            ->with('status_types', $status_types)
            ->with('currency_types', $currency_types)
            ->with('timezone_types', $timezone_types);
    }

    public function showCreateRevenue()
    {
        // NEW EVENT HERE...
        $revenue_types = RevenueController::getTypes();
        return view('create.income')->with('revenue_types', $revenue_types);
    }

    public function showCreateIncomeWithID($id)
    {
        // NEW EVENT HERE
        return view('create.income')->with('account_id', $id);
    }

    public function showCreateExpense()
    {
        // NEW EVENT HERE, ETC ETC
        $expense_types = ExpenseController::getTypes();
        return view('create.outcome')->with('expense_types', $expense_types);
    }

现在这可以正常工作我假设但是我担心的是这种方法不是“良好做法”当然必须有替代方法在每个功能中编写新事件,同时仍然能够传递关于什么的相关信息页面已被访问?

如果我错了,请纠正我,如果不欢迎你的回答

0 个答案:

没有答案