Config-driven Service Locator, based on Pimple
Config-driven Service Locator, based on Pimple.
This is a config-driven service locator, to allow easy registration and retrieval of services through the
It extends the
This package is part of the Bright Nucleus Services Architecture, which combines a Config management system (
brightnucleus/config), a Dependency Injector (
brightnucleus/injector), a Service Locator (
brightnucleus/service-locator), a logging subsystem (
brightnucleus/log), a virtual service provider (
brightnucleus/virtual-services) and corresponding WordPress plugins (
brightnucleus/wp-log) to form the basis of an architecture that provides the following benefits:
- Configuration of all involved components through Config files that have defaults overrideable through site-specific, environment-specific or custom-injected settings. Write code once, reuse on all sites, in all environments.
- Proper injector that lets you couple your codebase to interfaces only, deciding at runtime which concrete implementations to inject.
- Service locator that manages loading order and dependencies. Only load and instantiate code that is effectively needed within the current context, defined through other running real and virtual services.
- Logging subsystem that provides general logging and error handling, while providing the means to override logging settings at any granularity level.
- Virtual services that let you incorporate third-party and legacy code into the loading order and dependency management flow of the Service Locator.
- An architecture that runs just as well within the WordPress page request cycle as through a CLI or REST API request.
- WordPress-specific helpers that let you monitor the state of your system within the WordPress backend.
The best way to use this component is through Composer:
composer require brightnucleus/service-locator
All feedback / bug reports / pull requests are welcome.
This package uses the PHP Composter PHPCS PSR-2 package to check committed files for compliance with the PSR-2 Coding Style Guide. If you have valid reasons to skip this check, add the
--no-verify option to your commit command:
git commit --no-verify
This code is released under the MIT license.
For the full copyright and license information, please view the
LICENSE file distributed with this source code.