如果我发送电子邮件与Laravel这样:
Mail::send('folder.view', $data, function($msg)
{
$msg->to('dest@email.com');
$msg->subject('email subject');
});
我想扩展Laravel的核心类 Illuminate \ Mail \ Message.php 设置默认主题前缀,如下所示:
[Projectname] email subject
如何扩展核心类以避免使用作曲家更新进行覆盖?
答案 0 :(得分:1)
子类Message
并将您的代码放入不同的命名空间和文件中:
<?php
namespace my\namespace;
class MyMessage extends Illuminate\Mail\Message
{
// ...
}
答案 1 :(得分:1)
随意接受克里斯的答案,因为他是正确的,我只是延伸他说的话。 Illuminate \ Mail \ Message有一个subject()
方法,用于设置主题。它看起来像这样:
/**
* Set the subject of the message.
*
* @param string $subject
* @return \Illuminate\Mail\Message
*/
public function subject($subject)
{
$this->swift->setSubject($subject);
return $this;
}
如果你像克里斯在答案中所说的那样扩展它,你可以像这样扩展它:
public function subject($subject)
{
$this->swift->setSubject('[' . Config::get('app.project_name') . '] ' . $subject);
return $this;
}
假设您设置了app.project_name
配置指令。