Gestione EDI orientata agli oggetti in PHP

5

Al momento sto iniziando un nuovo sottoprogetto dove farò:

  1. Recupera le informazioni dell'ordine dal nostro mainframe
  2. Salva le informazioni dell'ordine nel nostro database di app web
  3. Invia l'ordine come EDI (o D01b o D93a)
  4. Ricevi la risposta dell'ordine, i consigli di spedizione e i messaggi di fatturazione
  5. Fai tutti i tipi di cose divertenti con i set di dati risultanti.

Tuttavia, sto lottando con i miei progetti di classe iniziali.

Le informazioni sull'ordine saranno recuperate dal mainframe che risulterà in una classe "AOrder", questo non è un problema, non sono sicuro di come modellare questo oggetto locale in una stringa EDI.

Devo creare classi EDIOrder / EDIOrderResponse / etc con decoratori corrispondenti (EDIOrderD01BDecorator, EDIOrderD93ADecorator)? Ho bisogno di oggetti di costruzione o posso fare:

// $myOrder is instance of AOrder
$myOrder->toEDIOrder();
$decorator = new EDIOrderD01BDecorator($myOrder);
$edi = $decorator->getEDIString();

E dovrà funzionare anche nell'altro modo. Il seguente codice è un buon modo per gestire questo problema o dovrei farlo in modo diverso?

$ediString = $myEDIMessageBroker->fetch();
$ediOrderResponse = EDIOrderResponse::fromString($ediString);

Non sono così sicuro di come dovrei andare a progettare le classi e le interazioni tra di loro.

Grazie per aver letto e aiutato.

    
posta gnat 26.08.2011 - 11:45
fonte

1 risposta

1

Se l'unico punto di EDIOrderD01BDecorator è quello di produrre una stringa EDI, creo una classe EDIOrderSerialization con metodi statici per deserializzare e serializzare nei vari formati necessari.

Se ci sono ulteriori elaborazioni da fare con un oggetto EDIOrder invece di AOrder, allora andrei con il modello decoratore.

    
risposta data 26.08.2011 - 18:28
fonte

Leggi altre domande sui tag