Illuminate\Support\Manager::class
is an abstract class that you can inherit from to assist you in constructing your own manager implementation for your drivers.
This class only requires you to implement getDefaultDriver()
method in your own class.
Creating drivers can either be by using closure, or declaring a create{DriverName}Driver
in your manager implementation.
One good example of concrete implementation is Laravel's Illuminate\Hashing\HashManager::class
, which inherits from Manager::class
and shows you how to manage your drivers.
P.S: I know, I know! Code to interface not inheritance. First, you can still code to interface while inheriting from this class. Also, this is just an optional approach for creating manager classes, so it's still up to you as a developer.