PackageTrack
Sign in Get early access

ghostwriter/container

Provides an extensible Dependency Injection Service Container for Automated Object Composition, Interception, and Lifetime Management.

7.0.2 7.2M downloads/mo #1160 most downloaded on Packagist ghostwriter/container

What this package is like to depend on

Last release 2 months ago

27 May 2026

Release timing varies

gaps range from 8 days to 8 months

Some releases are documented

notes for 14 of 41 stable releases

Nothing withdrawn

no release was ever pulled

4 years old

41 releases · first in 2022

7 releases in the last 12 months

see the full history below

Release timeline

41 releases · Apr 2022 to May 2026
2023 2024 2025 2026
Release Pre-release

Releases

latest 41
  1. 7.0.2 27 May 2026
    Release notes

    Full Changelog: 7.0.1...7.0.2

    Open source →
  2. 7.0.1 22 Apr 2026
    Release notes

    Full Changelog: 7.0.0...7.0.1

    Open source →
  3. 7.0.0 20 Apr 2026
    Release notes

    Removed

    • Definition-based registration: Removed DefinitionInterface and all related Composer extra definition classes.
    • Deprecated APIs: Removed the define() method from Container and all definition-based registration logic.
    • Reflection/parameter caches: Removed all internal reflection and parameter caches from the container.

    Changed

    • Composer Provider Renaming:
      • Renamed ComposerDefinitionProviderInterface to ComposerServiceProviderInterface.
      • Renamed ComposerDefinitionProvider to ComposerServiceProvider.
    • Container internals:
      • Simplified callable and service normalization logic.
      • Improved circular dependency detection and service-not-found exception handling.
      • Updated container to use only service/provider-based registration.
    • Composer provider:
      • Refactored internals for installed package discovery.
      • Added missingComposerFiles helper for improved Composer integration.
    • Updated all tests to reflect the new API and the removal of definition-based behavior.

    Full Changelog: 6.1.1...7.0.0

    Open source →
    Release notes

    Removed

    • Definition-based registration: Removed DefinitionInterface and all related Composer extra/container definition classes.
    • Deprecated APIs: Removed the define() method from Container and all definition-based registration logic.
    • Reflection/parameter caches: Removed all internal reflection and parameter caches from the container.

    Changed

    • Composer Provider Renaming:
      • Renamed ComposerDefinitionProviderInterface to ComposerServiceProviderInterface.
      • Renamed ComposerDefinitionProvider to ComposerServiceProvider.
    • Container internals:
      • Simplified callable and service normalization logic.
      • Improved circular dependency detection and service-not-found exception handling.
      • Updated container to use only service/provider-based registration.
    • Composer provider:
      • Refactored internals for installed package discovery.
      • Added missingComposerFiles helper for improved Composer integration.
      • Updated all tests to reflect the new API and the removal of definition-based behavior.
    Open source →
  4. 6.1.1 14 Apr 2026
    Release notes

    Full Changelog: 6.1.0...6.1.1

    Open source →
  5. 6.1.0 13 Apr 2026
    Release notes

    Full Changelog: 6.0.1...6.1.0

    Open source →
  6. 6.0.1 18 Nov 2025
    Release notes

    Full Changelog: 6.0.0...6.0.1

    Open source →
  7. 6.0.0 17 Nov 2025
    Release notes

    What's Changed

    Removed attribute-based service registration in favor of automatic service definition registration via Composer's extra config.

    Full Changelog: 5.0.1...6.0.0

    Open source →
  8. 5.0.1 18 Mar 2025
    Release notes

    Full Changelog: 5.0.0...5.0.1

    Open source →
  9. 5.0.0 21 Feb 2025
    Release notes

    Full Changelog: 4.0.5...5.0.0

    Open source →
    Release notes

    Added

    • Method clear() was added to interface Ghostwriter\Container\Interface\ContainerInterface
    • Method define() was added to interface Ghostwriter\Container\Interface\ContainerInterface

    Changed

    • Parameter $value of Ghostwriter\Container\Container#set() changed from callable|object to object
    • Parameter $value of Ghostwriter\Container\Interface\ContainerInterface#set() changed from callable|object to object

    Removed

    • Class Ghostwriter\Container\Exception\ReflectionException has been deleted
    • Method Ghostwriter\Container\Container#purge() was removed
    • Method Ghostwriter\Container\Container#register() was removed
    • Method Ghostwriter\Container\Interface\ContainerInterface#purge() was removed
    • Method Ghostwriter\Container\Interface\ContainerInterface#register() was removed
    Open source →
  10. 4.0.5 02 Feb 2025
    Release notes

    Full Changelog: 4.0.4...4.0.5

    Open source →
  11. 4.0.4 01 Feb 2025

    Nothing published for this version

  12. 4.0.3 09 Oct 2024

    Nothing published for this version

  13. 4.0.2 13 Jul 2024

    Nothing published for this version

  14. 4.0.1 22 Jun 2024

    Nothing published for this version

  15. 4.0.0 21 Jun 2024
    Release notes

    Added

    • Class Ghostwriter\Container\Attribute\Extension added
    • Class Ghostwriter\Container\Attribute\Factory added
    • Class Ghostwriter\Container\Attribute\Inject added
    • Class Ghostwriter\Container\List\Aliases added
    • Class Ghostwriter\Container\List\Bindings added
    • Class Ghostwriter\Container\List\Builders added
    • Class Ghostwriter\Container\List\Dependencies added
    • Class Ghostwriter\Container\List\Extensions added
    • Class Ghostwriter\Container\List\Factories added
    • Class Ghostwriter\Container\List\Instances added
    • Class Ghostwriter\Container\List\Providers added
    • Class Ghostwriter\Container\List\Tags added
    • Method purge() added to Ghostwriter\Container\Interface\ContainerInterface interface

    Changed

    • Removed the return type from Ghostwriter\Container\Container#__clone() method
    • Changed the name of parameter 0 of Ghostwriter\Container\Interface\ContainerInterface#alias() from name to service
    • Changed the name of parameter 1 of Ghostwriter\Container\Interface\ContainerInterface#alias() from service to alias
    • Changed the name of parameter 1 of Ghostwriter\Container\Interface\ContainerInterface#bind() from abstract to service
    • Changed the name of parameter 1 of Ghostwriter\Container\Interface\ContainerInterface#factory() from serviceFactory to factory

    Removed

    • Class Ghostwriter\Container\Instantiator deleted
    • Class Ghostwriter\Container\ParameterBuilder deleted
    • Class Ghostwriter\Container\Reflector deleted
    • Class Ghostwriter\Container\Exception\ReflectorException deleted
    • Class Ghostwriter\Container\Exception\ServiceExtensionAlreadyRegisteredException deleted
    Open source →
  16. 3.0.3 10 Apr 2024

    Nothing published for this version

  17. 3.0.2 19 Feb 2024

    Nothing published for this version

  18. 3.0.1 06 Feb 2024

    Nothing published for this version

  19. 3.0.0 06 Feb 2024
    Release notes

    Added

    • Method invoke() was added to interface Ghostwriter\Container\Interface\ContainerInterface

    Changed

    • The number of required arguments for Ghostwriter\Container\Instantiator#__construct() increased from 0 to 2
    • Parameter $reflector of Ghostwriter\Container\Instantiator#construct() was added
    • Parameter $parameterBuilder of Ghostwriter\Container\Instantiator#construct() was added
    • Parameter $container of Ghostwriter\Container\ParameterBuilder#construct() was added

    Fixed

    • ParameterBuilder resolves positional arguments

    Removed

    • Method Ghostwriter\Container\Instantiator#buildParameters() was removed
    • Parameter $container of Ghostwriter\Container\Instantiator#instantiate() was removed
    • Parameter $container of Ghostwriter\Container\ParameterBuilder#build() was removed
    Open source →
  20. 2.0.1 15 Nov 2023
    Release notes

    Added

    Fixed

    • Build resolves aliases
    • ParameterBuilder resolves default/nullable values from the container
    • Extend supports service name and service type
    Open source →
  21. 2.0.0 12 Nov 2023
    Release notes

    Changed

    • Rename bind method name to register
    • Rename register method name to provide
    • Rename provide method name to bind
    • Change call method parameter type to callable
    • Change extend method 2nd parameter type to string (MUST be a class-string that implements ExtensionInterface)
    • Change invoke method parameter type to string (MUST be callable-string, class with __invoke method or string function names trim)
    • Change set method 2nd parameter type to callable|object. (The callable MUST return an object)
    Open source →
  22. 1.6.0 26 Jul 2023

    Nothing published for this version

  23. 1.5.0 08 Apr 2023

    Nothing published for this version

  24. 1.4.0 21 Mar 2023

    Nothing published for this version

  25. 1.3.0 17 Jan 2023

    Nothing published for this version

  26. 1.2.0 21 Dec 2022

    Nothing published for this version

  27. 1.1.1 10 Dec 2022

    Nothing published for this version

  28. 1.1.0 26 Nov 2022

    Nothing published for this version

  29. 1.0.0 04 Oct 2022

    Nothing published for this version

  30. 0.7.0 14 Sep 2022

    Nothing published for this version

  31. 0.6.0 05 Jul 2022

    Nothing published for this version

  32. 0.5.0 27 Jun 2022

    Nothing published for this version

  33. 0.4.0 26 May 2022

    Nothing published for this version

  34. 0.3.2 21 May 2022

    Nothing published for this version

  35. 0.3.1 09 May 2022

    Nothing published for this version

  36. 0.3.0 03 May 2022

    Nothing published for this version

  37. 0.2.2 02 May 2022

    Nothing published for this version

  38. 0.2.1 01 May 2022

    Nothing published for this version

  39. 0.2.0 01 May 2022

    Nothing published for this version

  40. 0.1.1 25 Apr 2022

    Nothing published for this version

  41. 0.1.0 25 Apr 2022

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive