Создание объекта в цикле
Есть функионал смс рассылки, реализация старая и мне она не оч нравится, во первых тем что она не гибкая, во вторых метод принимает оч много аргументов и со временем превращается в кашу.
Ниже приведу пример старой и желаемой реализации
Старый вариант:
class SMSNotificationModule
{
public function sendNotification($to, $from, $notificationType, $language, $params = array())
{
}
}
Новый вариант:
interface NotificationInterface
{
public function sendNotification();
}
class SMSNotificationModule implements NotificationInterface
{
public $from;
public $to;
public $text;
public $lang;
public $dlrUrl;
public $dlrParams = array();
public function sendNotification()
{
}
}
Проблема заключается в создании объекта при каждой итерации, и мне кажется это не оч хорошо в плане потребления ресурсов и оптимизации кода. В старом варианте я поднимал один раз объект а дальше в цикле передавал разнные значения методу. Сейчас же прийдется каждый раз создавать новый объект и присваивать свойства.
foreach ($allSms as $sms)
{
$smsNotificationParams = array(
'originator' => $sms['originator'],
'text' => $sms['text']
);
$smsId = UtilityModule::generateUniqueId();
$smsNotificationDlrParams = array(
'dlr_params' => array('sms_id' => $smsId)
);
$smsNotification->sendNotification($calledNumber, null, $smsNotificationParams, $sms['lang'], $smsNotificationDlrParams)
}