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.
See also Creating a Data Abstraction Layer in PHP
Related : Stream, PHP Data Objects (PDO)
Related packages : league/flysystem, lcobucci/clock, php-http/httplug