This package is abandoned and no longer maintained. No replacement package was suggested.

Easy way to manage the storage of your invoices

2.0.0 2016-01-26 13:38 UTC

This package is auto-updated.

Last update: 2019-02-20 19:27:24 UTC


Build Status

This package gives you an easy way to store your invoices.


Per usual, install Invoices Storage through Composer.

"require": {
    "quantic-telecom/invoices-storage": "~1.0"



The InvoiceRepositoryInterface provides methods' signatures to get (get and getAll) and save (save) invoices.


This package requires a lot of factories in order to create the invoices from the data stored in the database.

  • CustomerFactoryInterface
  • PaymentFactoryInterface
  • ItemFactoryInterface
  • GroupOfItemsFactoryInterface
  • InvoiceFactoryInterface

All these factories have a build and an inverseResolution methods.

Inverse Resolution

Inverse resolution works like DNS. The repository need to know which concrete class he have to instanciate. The inverseResolution method must return a string (a domain name for classes) that will be stored with the object data. When the repository will need to get this object, he will pass to the build method that string and the data. Then, the factory will need to know how to build the requested object and return it.



This package provides a MongoDB implementation for the InvoiceRepositoryInterface named InvoiceMongoRepository. This repository don't use any ORM and build MongoDB queries by his own.


Each factory implementation build and resolve one or many concrete classes.

There is no implementation for CustomerFactoryInterface and PaymentFactoryInterface because quantic-telecom/invoices doesn't provide any concrete class for CustomerInterface and PaymentInterface. The client need to implement these factories because there are required by the InvoiceFactory.


Concrete class Domain name for class
QuanticTelecom\Invoices\ExcludingTaxInvoice includingTaxInvoice
QuanticTelecom\Invoices\IncludingTaxInvoice excludingTaxInvoice


Concrete class Domain name for class
QuanticTelecom\Invoices\Item item


Concrete class Domain name for class
QuanticTelecom\Invoices\GroupOfItems groupOfItems