PHP Static vs Instance

Я как раз собираюсь написать метод преобразования некоторых биллинговых данных в счет-фактуру.

Так что скажите, что у меня есть и массив объектов, содержащих данные, необходимые для создания элементов invocie.

В контроллере биллинга Какой из следующих способов правильный

$invoice = new Invoice(); $invoice->createInvoiceFromBilling($billingItems); 

Затем в классе счетов

 Public Function createInvoiceFromBilling($billingItems) { $this->data = $billingItems; 

ИЛИ

 Invoice::createInvoiceFromBilling($billingItems) 

Затем в классе счетов

 Public Function createInvoiceFromBilling($billingItems) { $invoice = new Invoice(); $invoice->data = $billingItems; 

Каким образом это правильный путь?

С уважением

Solutions Collecting From Web of "PHP Static vs Instance"

Как указывал Терешко в разделе комментариев выше, вы должны изучить модель Factory . Хороший (и простой) пример на основе реального мира из связанного источника:

 <?php class Automobile { private $vehicle_make; private $vehicle_model; public function __construct($make, $model) { $this->vehicle_make = $make; $this->vehicle_model = $model; } public function get_make_and_model() { return $this->vehicle_make . ' ' . $this->vehicle_model; } } class AutomobileFactory { public function create($make, $model) { return new Automobile($make, $model); } } // have the factory create the Automobile object $automobileFactory = new AutomobileFactory(); $veyron = $automobileFactory->create('Bugatti', 'Veyron'); print_r($veyron->get_make_and_model()); // outputs "Bugatti Veyron" 

Как вы можете видеть, AutomobileFactory фактически создает экземпляры Automobile.

Метод, написанный первым, лучше, потому что во втором ваш код будет генерировать объект для счета-фактуры каждый раз, когда он вызывается.