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.