Diciamo che c'è una classe chiamata AccountingService
.
Usando questa classe, prendo tutti i tipi di record di e-commerce come products
, customers
, ecc. Il recupero avviene all'interno di un'azione del controller. Una volta recuperato, dovrei elaborare e salvare questi record in qualche tipo di negozio di e-commerce.
Quello che voglio fare è creare un'implementazione di Shop
namespace PrestaShop;
use Shop\ShopInterface;
class Shop implements ShopInterface
{
public function saveProduct(array $products)
public function saveProductQuantities(array $productQuantities)
public function saveCustomers(array $customers)
public function getOrder($orderReference)
}
Il problema è che i metodi sono incredibilmente lunghi, poiché molte chiavi esterne, tabelle pivot e relazioni devono essere salvate nelle tabelle MySQL. Vorrei estrarre product
, customer
, quantitiy
metodi in classi / componenti separati che funzionano come dipendenze per questa classe.
Sto usando array
perché i record recuperati sono in blocco (diciamo 10k), quindi non posso creare un'istanza di un oggetto per ogni record e salvarlo tramite record attivo.
L'uso di oggetti pattern separati Repository
non ha senso per me, perché tutti questi oggetti product
, customer
, quantity
sono correlati e hanno tabelle collegate.
Sto cercando consigli su come suddividere l'implementazione PrestaShop\Shop
in classi più piccole.
Qualsiasi altro consiglio su hwo per strutturare questa logica dell'app è ben accetto.