Php Laravel 5.1邮件文档-混乱?
我对Laravel5.1还是新手,但我发现文档非常奇怪和混乱 例如,根据Laravel文档,我可以使用Mail facade中的send()方法发送电子邮件 到目前为止,一切顺利。当我转到LaravelAPI并发现Illumb Support Facades邮件时,这种方法不存在吗Php Laravel 5.1邮件文档-混乱?,php,email,laravel,Php,Email,Laravel,我对Laravel5.1还是新手,但我发现文档非常奇怪和混乱 例如,根据Laravel文档,我可以使用Mail facade中的send()方法发送电子邮件 到目前为止,一切顺利。当我转到LaravelAPI并发现Illumb Support Facades邮件时,这种方法不存在吗 我怎样才能理解这个方法需要什么参数,以及它在成功/失败时返回什么?这是因为它使用的是Facade模式 在您的app.phpconfig文件中有一个名为“别名”的部分。该部分中有一行:'Mail'=>illumb\Su
我怎样才能理解这个方法需要什么参数,以及它在成功/失败时返回什么?这是因为它使用的是Facade模式 在您的
app.php
config文件中有一个名为“别名”的部分。该部分中有一行:'Mail'=>illumb\Support\Facades\Mail::class,
指向Facade,它返回服务容器(IoC)
中绑定的键,该键返回要使用的类/对象
因此,您需要找到创建绑定的位置。绑定是通过方法App::bind('foo',..)
,App::singleton('foo',..)
或App::instance('foo',..)创建的
我搜索'mailer'
并找到创建绑定的文件lluminate\Mail\MailServiceProvider
:
$this->app->singleton('mailer', function($app) {
...
// this is the class resolved by the IoC.
$mailer = new Mailer(
$app['view'], $app['swift.mailer'], $app['events']
);
...
return $mailer;
});
如您所见,类\illighted\Mail\Mailer
在服务提供程序中返回,这就是使用名为邮件的外观时使用的类
快速发现门面后面的类的方法:
您还可以通过转储类名来快速找到类名:dd(get_class(Mail::getFacadeRoot())代码>
更多信息
- 有关服务容器的详细信息:
- 有关Laravel 5立面的更多信息:
- 有关立面样式的详细信息:
Facade类基本上是助手类,提供对完成工作的真实类的快速、方便的访问。关于外观的优点有很多争论,但这不是这个问题
如果在facade上调用getFacadeRoot()
方法,它将为您提供facade指向的对象的实例(例如Mail::getFacadeRoot()==\illumb\Mail\Mailer
)
现在您已经知道了实际使用的对象,可以在该对象上查找方法。您在Facade上调用的任何方法都会传递给getFacadeRoot()
返回的对象。因此,当您调用Mail::send()
时,实际上是在调用\illumize\Mail\Mailer::send()
(尽管是非静态的)。也就是在api文档中查找