1

嗨,在 PHPStorm 中获得了“标记为 @internal”。我无法修复代码以使消息消失。我正在使用抽象 Mailer.php

<?php

namespace App\Mailers;

use Illuminate\Contracts\Mail\Mailer as Mail;

abstract class Mailer
{
    /**
     * @var Mail
     */
    protected $mail;

    /**
     * @param Mail $mail
     */
    public function __construct(Mail $mail)
    {
        $this->mail = $mail;
    }

    /**
     * @param $to
     * @param $subject
     * @param $from
     * @param $view
     * @param null $data
     */
    public function mailTo($to, $subject, $from, $view, $data = null)
    {
        $this->mail->send($view, $data, function($message) use ($to, $from, $subject)
        {
            $message->to($to->email)->subject($subject)->from($from);
        });
    }
}

然后我的 SiteMailer 类扩展了抽象的 Mailer

<?php

namespace App\Mailers;

class SiteMailer extends Mailer
{

    /**
     * @param array $data
     * @internal param SupportRequest $request
     * @internal param User $user
     */
    public function sendEmailMessageToSupport(array $data)
    {
        $from = env('MAIL_NOREPLY', 'SUPPORT');
        $to = env('MAIL_NOREPLY', 'SUPPORT');
        $subject = 'Activate Your Account';
        $view = 'pages.support';

        $this->mailTo($to, $subject, $from, $view, $data);
    }
}

这是我在 SupportController 中使用 SiteMailer 的方式

<?php

namespace App\Http\Controllers;

use App\Http\Requests;
use App\Mailers\SiteMailer;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use App\Http\Requests\SupportRequest;

class SupportController extends Controller
{
    public function create()
    {
        return view('pages.support');
    }

    public function store(SupportRequest $request, SiteMailer $mail)
    {
        $mail->sendEmailMessageToSupport($request->all());
    }
}
4

0 回答 0