Architecture Overview
Architecture Overview
The architecture keeps Laravel integration thin and isolates protocol behavior in framework-free PHP classes.
flowchart TB
subgraph Laravel
Provider[Ecr17ServiceProvider]
Facade[Ecr17 facade]
ConfigFile[config/ecr17.php]
end
subgraph Core
Client[Ecr17Client]
Session[Ecr17Session]
Retry[RetryPolicy]
Protocol[Ecr17Protocol]
Codec[PacketCodec and Lrc]
Responses[Ecr17Response parsers]
end
subgraph Transport
Socket[SocketTransport]
Fake[FakeTransport]
end
Provider --> Client
Facade --> Client
ConfigFile --> Client
Client --> Session
Client --> Protocol
Client --> Responses
Client --> Retry
Session --> Codec
Session --> Transport
Design rule
Ecr17Client decides command semantics; Ecr17Session drives one exchange; PacketCodec handles bytes; response classes expose domain fields.
Limits
The package does not provide persistence, order state machines, or a hosted terminal simulator. Applications must own those boundaries.