laravel源码解析-通过框架学习PHP

此文将会一直更新

1.登录LoginController.php

我们执行了php artisan make:auth之后,进入LoginController控制器

middleware('guest')->except('logout');
    }
}
  • 此处我们会发现作者喜欢先定义一个或者多个trait,然后在使用的类里面use trait Login控制器里面很多方法可能直接看不到,但是你打开trait就可以看到了。
trait AuthenticatesUsers
{
    use RedirectsUsers, ThrottlesLogins;
这个里面有login   logout方法
}
  • 打开RedirectsUsers的trait
redirectTo();
        }

        return property_exists($this, 'redirectTo') ? $this->redirectTo : '/home';
    }
}

这个trait里面定义的是我们登录后跳转到的路由。此处的redirectPath 方法,作者其实在框架中多次使用。
意思是,你如果定义了自己的redirectTo方法或者属性,优先走你的。否则用自定义的home,这种写法,我们平时也可以这样写在自己的项目中

2.Controller

middleware[] = [
                'middleware' => $m,
                'options' => &$options,
            ];
        }

        return new ControllerMiddlewareOptions($options);
    }


    public function getMiddleware()
    {
        return $this->middleware;
    }


    public function callAction($method, $parameters)
    {
        return call_user_func_array([$this, $method], $parameters);
    }


    public function missingMethod($parameters = [])
    {
        throw new NotFoundHttpException('Controller method not found.');
    }

    public function __call($method, $parameters)
    {
        throw new BadMethodCallException("Method [{$method}] does not exist.");
    }
}

你可能感兴趣的:(laravel源码解析-通过框架学习PHP)