brightnucleus / service-locator
Config-driven Service Locator, based on Pimple
Installs: 1 690
Dependents: 0
Suggesters: 0
Security: 0
Stars: 1
Watchers: 2
Forks: 0
Open Issues: 0
Requires
- brightnucleus/config: >=0.4.7
- brightnucleus/exceptions: >=0.2
- brightnucleus/injector: >=0.3
- container-interop/container-interop: ^1
- pimple/pimple: ^3
- psr/log: ^1
Requires (Dev)
README
Config-driven Service Locator, based on Pimple.
This is a config-driven service locator, to allow easy registration and retrieval of services through the brightnucleus/config
component.
It extends the pimple/pimple
package.
Table Of Contents
About The Bright Nucleus Services Architecture
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-services
& 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.
Installation
The best way to use this component is through Composer:
composer require brightnucleus/service-locator
Basic Usage
TODO
Contributing
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
License
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.