Download the PHP package maduser/argon without Composer

On this page you can find all versions of the php package maduser/argon. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package argon

PHP Build codecov Psalm Level Code Style Latest Version License: MIT

Argon Service Container

A high-performance, PSR-11 compliant dependency injection container with optional compilation.

Strict when you want it, magic when you allow it

Argon compiles your service graph into native PHP code, eliminating reflection and runtime resolution overhead. When no binding exists, it seamlessly falls back to autowiring constructors, closures, and methods — offering predictable, optimized performance when declared, and black magic convenient flexibility when not.


Installation

Requires PHP 8.2+

Tests & QA


Usage

Binding and Resolving Services

Binding Arguments

When registering a service, you can provide constructor arguments using an associative array.
These arguments are matched by name to the constructor’s parameter list — no need for full signatures or complex configuration.

Set arguments during binding

These arguments are attached to the service binding and used every time it's resolved.

Override arguments during resolution (transients only)

This works only for transient services. Shared services are constructed once, and cannot be reconfigured at runtime.

Automatic Dependency Resolution

Argon will resolve Logger by class name, and skip env because it's optional.

What will NOT work:

In this case, you must bind the interface to a concrete class first and provide a default value for the primitive:

Parameter Registry

The parameter registry is a built-in key/value store used to centralize application configuration. It is fully compatible with the compiled container — values are embedded directly into the generated service code.

Use it to define reusable values, inject environment settings.

Set and retrieve values

Use parameters in bindings or at resolution

TIP: you can wrap the parameter registry with your own "ConfigRepository" and implement validation, scopes via dot notation, etc.

Factory Bindings

Use factory() to bind a service to a dedicated factory class.
The factory itself is resolved via the container and may define either an __invoke() method or a named method.

This resolves and calls ClockFactory::__invoke().

To use a specific method:

Contextual Bindings

Contextual bindings allow different consumers to receive different implementations of the same interface.

Service Providers

Service providers allow grouping service bindings and optional boot-time logic.

Interceptors

Interceptors allow you to hook into the service resolution lifecycle. They are automatically called either before or after a service is constructed.

Post-Resolution Interceptors

These are executed after a service is created, and can modify the object (e.g., inject metadata, call validation, register hooks).

Pre-Resolution Interceptors

These run before a service is instantiated. They can modify constructor parameters or short-circuit the entire resolution.

Extending Services

Extends an already-resolved service instance during runtime. Useful for wrapping, decorating, or modifying an existing service after resolution.

From this point on, all calls to get(LoggerInterface::class) will return the wrapped instance.

Tags

Conditional Service Access

optional() returns a proxy if the service is unavailable — safe for optional dependencies.

Closure Bindings with Autowired Parameters

Closure bindings are convenient for CLI tools, prototyping, or runtime-only services — but they're not suited for production graphs or compilation. Since closures can't be compiled, you must either:

Compiling the Container

The compiled container is a pure PHP class with zero runtime resolution logic for standard bindings. It eliminates reflections and parameter lookups by generating dedicated methods for each service. All bindings, tags, parameters, and interceptors are statically resolved and written as native PHP code.


ArgonContainer API

ArgonContainer Parameters Return Description
set() string $id, Closure\|string\|null $concrete ArgonContainer Registers a service as shared by default (use ->transient() to override)
get() string $id object Resolves and returns the service.
has() string $id bool Checks if a service binding exists.
getBindings() array<string, ServiceDescriptor> Returns all registered service descriptors.
getContextualBindings() ContextualBindingsInterface Returns all contextual service descriptors.
getDescriptor() string $id ServiceDescriptorInterface Returns the service description associated with the id.
getParameters() ParameterStoreInterface Access the parameter registry for raw or shared values.
registerInterceptor() class-string<InterceptorInterface> $class ArgonContainer Registers a type interceptor.
registerProvider() class-string<ServiceProviderInterface> $class ArgonContainer Registers and invokes a service provider.
tag() string $id, list<string> $tags ArgonContainer Tags a service with one or more labels.
getTags() array<string, list<string>> Returns all tag definitions in the container.
getTagged() string $tag list<object> Resolves all services tagged with the given label.
boot() ArgonContainer Bootstraps all registered service providers.
extend() string $id callable $decorator ArgonContainer Decorates an already-resolved service at runtime.
for() string $target ContextualBindingBuilder Begins a contextual binding chain — call ->set() to define per-target bindings.
getPreInterceptors() list<class-string<InterceptorInterface>> Lists all registered pre-interceptors.
getPostInterceptors() list<class-string<InterceptorInterface>> Lists all registered post-interceptors.
invoke() callable $target, array $params = [] mixed Calls a method or closure with injected dependencies.
isResolvable() string $id bool Checks if a service can be resolved, even if not explicitly bound.
optional() string $id object Resolves a service or returns a NullServiceProxy if not found.

BindingBuilder API

When you call set(), it returns a BindingBuilder, which lets you configure the binding fluently.

Method Parameters Return Description
transient() BindingBuilder Marks the service as non-shared. A new instance will be created for each request.
skipCompilation() BindingBuilder Excludes this binding from the compiled container. Useful for closures or dynamic logic.
tag() string\|list<string> $tags BindingBuilder Assigns one or more tags to this service.
factory() string $factoryClass, ?string $method = null BindingBuilder Uses a factory class (optionally a method) to construct the service.
defineInvocation() string $methodName, array $args = [] BindingBuilder Pre-defines arguments for a later invoke() call. Avoids reflection at runtime.
getDescriptor() ServiceDescriptorInterface Returns the internal service descriptor for advanced inspection or modification.

License

MIT License


All versions of argon with dependencies

PHP Build Version
Package Version
Requires php Version ^8.2
nette/php-generator Version ^4.1
psr/container Version ^2.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package maduser/argon contains the following files

Loading the files please wait ....