74 lines
1.7 KiB
PHP
74 lines
1.7 KiB
PHP
<?php
|
|
|
|
namespace Illuminate\Mail;
|
|
|
|
use Illuminate\Contracts\Support\DeferrableProvider;
|
|
use Illuminate\Support\ServiceProvider;
|
|
|
|
class MailServiceProvider extends ServiceProvider implements DeferrableProvider
|
|
{
|
|
/**
|
|
* Register the service provider.
|
|
*
|
|
* @return void
|
|
*/
|
|
public function register()
|
|
{
|
|
$this->registerIlluminateMailer();
|
|
$this->registerMarkdownRenderer();
|
|
}
|
|
|
|
/**
|
|
* Register the Illuminate mailer instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function registerIlluminateMailer()
|
|
{
|
|
$this->app->singleton('mail.manager', function ($app) {
|
|
return new MailManager($app);
|
|
});
|
|
|
|
$this->app->bind('mailer', function ($app) {
|
|
return $app->make('mail.manager')->mailer();
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Register the Markdown renderer instance.
|
|
*
|
|
* @return void
|
|
*/
|
|
protected function registerMarkdownRenderer()
|
|
{
|
|
if ($this->app->runningInConsole()) {
|
|
$this->publishes([
|
|
__DIR__.'/resources/views' => $this->app->resourcePath('views/vendor/mail'),
|
|
], 'laravel-mail');
|
|
}
|
|
|
|
$this->app->singleton(Markdown::class, function ($app) {
|
|
$config = $app->make('config');
|
|
|
|
return new Markdown($app->make('view'), [
|
|
'theme' => $config->get('mail.markdown.theme', 'default'),
|
|
'paths' => $config->get('mail.markdown.paths', []),
|
|
]);
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Get the services provided by the provider.
|
|
*
|
|
* @return array
|
|
*/
|
|
public function provides()
|
|
{
|
|
return [
|
|
'mail.manager',
|
|
'mailer',
|
|
Markdown::class,
|
|
];
|
|
}
|
|
}
|