Создание объекта в цикле

Есть функионал смс рассылки, реализация старая и мне она не оч нравится, во первых тем что она не гибкая, во вторых метод принимает оч много аргументов и со временем превращается в кашу.

Ниже приведу пример старой и желаемой реализации

Старый вариант:

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)
        }

Ответы (0 шт):