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.

PDO is a database abstraction layer, to access various RDBMS servers with one PHP API. 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), Relational DataBase Management System (RDBMS)

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