Skip to content

A very basic and minimalist component for config management and dependency injection.

License

Notifications You must be signed in to change notification settings

byjg/php-config

Repository files navigation

Config: PSR-11 Container and Dependency Injection

Build Status Opensource ByJG GitHub source GitHub license GitHub release Scrutinizer Code Quality

This is a basic and minimalist implementation of PSR-11 for config management and dependency injection.

Basics

PSR-11, or "PHP Standard Recommendation 11," is a PHP specification that outlines a common interface for implementing dependency injection containers in PHP applications. Dependency injection is a design pattern that allows objects to receive their dependencies from an external source, instead of creating them internally.

Here's a summary of PSR-11:

  • Purpose: PSR-11 provides a standardized approach to implementing and using dependency injection containers in PHP applications.

  • Container Interface: PSR-11 defines the Psr\Container\ContainerInterface, which includes methods for retrieving instances of objects (dependencies) from the container.

  • Container Operations: The interface includes methods such as get($id) to retrieve an instance by its identifier (usually a string), has($id) to check if an instance exists in the container, and set($id, $value) to manually register an instance with the container.

  • Implementing Containers: Developers can create their own containers by implementing the ContainerInterface and providing the necessary methods for managing and retrieving instances.

  • Interoperability: PSR-11 promotes interoperability between different PHP frameworks and libraries by providing a common interface. Applications built using PSR-11 containers can switch between different containers without needing to modify the application code.

  • Autowiring: While PSR-11 does not explicitly define autowiring (automatic resolution of dependencies), containers implementing this specification can choose to include autowiring functionality if desired.

  • Extension: PSR-11 can be extended by other PSR specifications to provide additional features or standards related to dependency injection.

In summary, PSR-11 standardizes the way dependency injection containers are implemented and used in PHP, promoting code reusability, flexibility, and interoperability between different components of PHP applications.

How to Use This Component

Follow the steps below:

Installation

composer require "byjg/config"

Tests

./vendor/bin/phpunit

Dependencies

flowchart TD
    byjg/config --> byjg/cache-engine
Loading

Open source ByJG

About

A very basic and minimalist component for config management and dependency injection.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published

Languages