Abstraction Layer

An abstraction layer is a piece of software that offer the same API to access multiple similar components.

The underlying components may be of various shapes : PDO offers an abstraction layer to databases, streams offer an abstraction layer to files, etc.

league/flysystem offers also an abstraction layer to filesystem, lcobucci/clock offers an abstraction to clocks.

Documentation

See also Creating a Data Abstraction Layer in PHP

Related : Stream, PHP Data Objects (PDO)

Related packages : league/flysystem, lcobucci/clock, php-http/httplug