编程逻辑

The logic of programming

我对编程逻辑有疑问,请查看以下示例:

public function logout() {
     if (Auth::user()) {
         Auth::logout();
     }
}

在上面的例子中,我们首先检查用户是否登录。在这个函数中,我们可以说只有登录的用户才能注销,但是如果你只能访问'logout'函数,如果你登录了,那就是一样的。哪个更好,为什么?这样的事情我遇到了很多,一直不知道该选哪个。

虽然您应该只有在您已经登录的情况下才能访问此功能,但这在您的代码中只是一种很好的做法。这里封装的方法使确定它在有意义的上下文中被调用。

这很重要的原因可以通过许多有缺陷的 Web 应用程序(和其他)示例来说明,其中代码假定用户只能 select 向他们提供的选项。但是,用户实际上可以调用 Web 应用程序中任何公开公开的函数,而不管该函数是否显示在 HTML 界面中。

因此,开发人员必须确保调用函数的上下文有意义。在您提供的情况下,class 创建者有一个特定的用法,您和我都可以理解,只有您登录后才能访问,但开发人员不能对其他用户强制执行此操作,除非他包括在他公开的方法中有这样的逻辑(或者,也许,检查是否允许访问而不是用户是否登录)。