通过laravel重设密码的代码快速学习laravel的重要概念-01
使用了laravel ui建立了简单的用户注册、忘记密码前端后端页面及功能。[项目传送门:https://github.com/laravel/ui]
因为我的系统是用户名可以是手机,也可以是email。所有需要对代码进行修改。而在修改重设密码的过程中,发现了这次修改,涉及到了laravel的一些重要概念及php初学者搞的不太清楚的概念,所以就用这个代码解释一下Facade 门面 interface 接口 ServiceProvider 服务提供者 以及 服务容器的概念。
先看忘记代码的控制器代码:
代码很简单,只有一个use,然后我们看这个类是如何设计的。
Trait 类,是php的一种代码复用机制。要是想要简单理解,可以这样理解:
普通的父类只能类继承(extends)或者接口继承(implements),而Trait类可以多继承。
比如 一个类 车子,里面有属性:启动,停止。
你想做个子类,汽车。然后可以继承车子,然后加一个属性 加油。
而Trait类则是这样来表现。
Trait 类 油,里面有属性:汽油 柴油 加油 燃烧。
Trait 类 车,里面有属性:启动,停止。
你可以做个类,里面直接use 油,车,然后使用 启动 停止 燃烧这3个属性方法。
比较详细的解释:
OK,那么我们就了解第一张图中的代码意思了,就是使用默认的SendsPasswordResetEmails类中的属性和方法。然后我们接着看给邮箱发送链接的主代码。
然后我们看一下这个Password::broker()具体做什么的。
我们可以看到password这个类,是继承了Facade这个类。然后里面定义了一些常量,而这些常量是另外一个类提供的。
这个类就是接口类,interface类简单说就像一个模板,你的类继承他了以后,接口类的所有方法必须都要实现。而这个模板类只是把方法名字定义了,方法如何实现则没有写,留给你去写。
这个文件的路径是:\vendor\laravel\framework\src\Illuminate\Contracts\Auth\PasswordBroker.php
继承他的类路径是:\vendor\laravel\framework\src\Illuminate\Auth\Passwords\PasswordBroker.php
你可以仔细看看,继承的这个类是否实现了接口类的所有方法。
参看文章:
噢!评论已关闭。