Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 电子邮件的正确方式-设计模式_Php_Laravel_Oop - Fatal编程技术网

Php 电子邮件的正确方式-设计模式

Php 电子邮件的正确方式-设计模式,php,laravel,oop,Php,Laravel,Oop,我正在寻找一些关于如何为电子邮件通知制作合适的“数据收集器”的建议 在我的应用程序中,用户可以更改其地址数据、偏好、目标、习惯等。每当用户更改上述任何一项时,都会发送一封包含已更改内容的电子邮件。 邮件通过以下方式发送: static function sendChangeMail() 在这里,我将信息与更改放在一起,但此时,这个函数需要太多的参数(确切地说是7个),这可能会让人困惑。我想把所有更改的元素放在一个对象中 它应该是什么样子,我的意思是,我应该制作一些其他的“Collectiong

我正在寻找一些关于如何为电子邮件通知制作合适的“数据收集器”的建议

在我的应用程序中,用户可以更改其地址数据、偏好、目标、习惯等。每当用户更改上述任何一项时,都会发送一封包含已更改内容的电子邮件。 邮件通过以下方式发送:

static function sendChangeMail()
在这里,我将信息与更改放在一起,但此时,这个函数需要太多的参数(确切地说是7个),这可能会让人困惑。我想把所有更改的元素放在一个对象中

它应该是什么样子,我的意思是,我应该制作一些其他的“CollectiongDataMailClass”或者一些观察者吗


我曾想过使用一个观察者,但当用户地址被更新时,就会执行函数“create”。即使注册了新用户,邮件也会被发送,我不希望这样。

这是一个很好的使用案例

因此,您基本上需要使用changedData构建对象,并将其传递给
sendChangeMail(changedsettingobject$changedsettingobject)

举个例子

DTO对象结构:

类更改为{
公共广播;
公共优先权;
公共目标;
公众习惯;
}
构建DTO对象:

$changedData=新的changedData;
$changedData->地址='德国';
$changedData->preferences=['setting1'=>'值1','setting2'=>'值2'];
// ...
//将其传递给邮件功能
..->sendChangeMail($changedData);
SendChangeMail功能

public函数sendChangeMail(changedDataTo$changedDataTo)
{
dd($changedatadto);//您将在此处获得整个对象
}

这样,您只需将一个参数传递给基础方法。

到目前为止您是否尝试过任何方法?@RamChander第一次我用更多参数扩展了上述函数,它可以工作,但我知道这不是正确的解决方案。现在,我尝试创建一些其他类,在其中我放置函数以获取地址数据、习惯数据等,但它看起来就像我的模型,所以我认为这也不是一个好的解决方案问题标题有误导性,但答案可能类似于“查找依赖项注入”@jakemen您的问题标题不符合StackOverflow指南。你可能会分享你的努力,并提到你遇到的问题/错误。“你的问题看起来像是一场讨论,应该在另一个平台上进行。”拉姆昌德我改变了问题的标题