Laravel Packages

Manager Pattern Package for Laravel

Published
Manager Pattern Package for Laravel image

The DeGraciaMathieu/Manager package is an implementation of the Manager pattern for the Laravel framework. The job of this package is to make it convenient to create various implementations that adhere to an interface and a manager class to resolve them:

use DeGraciaMathieu/Manager/Manager;
 
class LoggerManager extends Manager {
 
public function createMonologDriver(): LoggerDriver
{
return new MonologDriver();
}
 
public function createMockDriver(): LoggerDriver
{
return new MockDriver();
}
 
public function getDefaultDriver()
{
return 'monolog';
}
}

Here’s an example of how you can use the manager class to do anything the interface allows conveniently:

(new LoggerManager())->doAnything();
 
// Or pick a driver
(new LoggerManager())->driver('monolog')->doAnything();

Imagine that you wanted to allow consumers to define a default implementation (similar to things like the DatabaseManager in Laravel):

public function getDefaultDriver()
{
return config('some_package.default');
}

To learn more about the package, the author provides a manager-examples GitHub repo. Check out this package on GitHub at DeGraciaMathieu/Manager.

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

acquaintsoft logo
Acquaint Softtech

Hire Laravel developers with AI expertise at $20/hr. Get started in 48 hours.

Visit Acquaint Softtech

The latest

View all →
Bifrost Turns One With AI Builds and New Workflows image

Bifrost Turns One With AI Builds and New Workflows

Read article
Preview Blade Templates in macOS Finder with Quick Blade image

Preview Blade Templates in macOS Finder with Quick Blade

Read article
Artisan Debugging Commands in Laravel Telescope 5.24.0 image

Artisan Debugging Commands in Laravel Telescope 5.24.0

Read article
Queue totalSize() and JobInterrupted Event in Laravel 13.31 image

Queue totalSize() and JobInterrupted Event in Laravel 13.31

Read article
Find Unexpected Test Inputs with Fuzz for Pest image

Find Unexpected Test Inputs with Fuzz for Pest

Read article
Laravel Rulebook: Business Rules That Change by Date image

Laravel Rulebook: Business Rules That Change by Date

Read article