phug / dependency-injection
Phug dependency injection engine
Fund package maintenance!
kylekatarnls
Open Collective
Tidelift
Requires
- phug/util: ^0.4.0 || ^1.0
- dev-master / 1.x-dev
- 1.13.0
- 1.12.3
- 1.12.2
- 1.12.1
- 1.12.0
- 1.11.0
- 1.10.0
- 1.9.0
- 1.8.3
- 1.8.2
- 1.8.1
- 1.8.0
- 1.7.3
- 1.7.2
- 1.7.1
- 1.7.0
- 1.6.0
- 1.5.0
- 1.4.0
- 1.4.0-beta2
- 1.4.0-beta1
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.1
- 1.2.0
- 1.1.0
- 1.0.2
- 1.0.1
- 1.0.0
- 1.0.0-RC3
- 1.0.0-RC.2
- 1.0.0-rc.1
- 0.1.0
- dev-analysis-xgmrM9
- dev-feature/multi-tester-3
- dev-feature/symfony-7
- dev-remotes/pull/106/merge
- dev-remotes/pull/107/merge
- dev-remotes/pull/108/merge
- dev-remotes/pull/109/merge
- dev-remotes/pull/110/merge
- dev-remotes/pull/111/merge
- dev-remotes/pull/113/merge
- dev-remotes/pull/114/merge
- dev-remotes/pull/105/merge
- dev-fix/strict-in-array
- dev-remotes/pull/104/merge
- dev-feature/abstract-token-handler
- dev-feature/duplication-threshold
- dev-remotes/pull/100/merge
- dev-remotes/pull/101/merge
- dev-remotes/pull/102/merge
- dev-remotes/pull/98/merge
- dev-remotes/pull/99/merge
- dev-simplify-split-script
- dev-multitest-php-8
This package is auto-updated.
Last update: 2024-10-19 15:58:21 UTC
README
What is Phug Dependency Injection?
This project allow to provide helpers functions and values, to require them and to dump all required dependencies as a PHP array export.
Installation
Install via Composer
composer require phug/dependency-injection
Usage
use Phug\DependencyInjection; $dependencies = new DependencyInjection(); $dependencies->register('limit', 42); $dependencies->provider('clock', static function () { return new Clock(); }); $dependencies->provider('expiration', ['clock', 'limit', static function (ClockInterface $clock, $limit) { return static function ($margin) use ($clock, $limit) { $delta = $limit - $margin; return $clock->now()->modify("$delta days"); }; }]); $expiration = $dependencies->call('expiration'); // return new DateTimeImmutable('now + 42 days') $expiration = $dependencies->call('expiration', 20); // return new DateTimeImmutable('now + 22 days')
Security contact information
To report a security vulnerability, please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.