Manipulação de EDI orientada a objetos em PHP

5

Atualmente estou iniciando um novo subprojeto no qual irei:

  1. Recupere as informações do pedido do nosso mainframe
  2. Salve as informações do pedido no banco de dados de nossos aplicativos da web
  3. Envie o pedido como EDI (D01b ou D93a)
  4. Receba a resposta do pedido, envie avisos e faturas
  5. Faça todos os tipos de coisas divertidas com os conjuntos de dados resultantes.

No entanto, estou lutando com meus projetos iniciais de classe.

As informações do pedido serão recuperadas do mainframe, o que resultará em uma classe "AOrder", isso não é um problema, não tenho certeza sobre como moldar esse objeto local em uma cadeia EDI.

Devo criar classes EDIOrder / EDIOrderResponse / etc com decoradores correspondentes (EDIOrderD01BDecorator, EDIOrderD93ADecorator)? Preciso de objetos de construtor ou posso fazer:

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

E terá que funcionar ao contrário também. O código a seguir é uma boa maneira de lidar com esse problema ou devo fazer isso de maneira diferente?

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

Eu não tenho tanta certeza sobre como devo proceder para projetar as classes e interações entre elas.

Obrigado por ler e ajudar.

    
por gnat 26.08.2011 / 11:45
fonte

1 resposta

1

Se o único ponto do EDIOrderD01BDecorator é produzir uma EDI String, então eu criaria uma classe EDIOrderSerialization com métodos estáticos para desserializar e serializar nos vários formatos necessários.

Caso contrário, se houver mais processamento relacionado a um objeto EDIOrder em vez de ao AOrder, então eu usaria o padrão decorador.

    
por 26.08.2011 / 18:28
fonte