Download the PHP package innmind/di without Composer

On this page you can find all versions of the php package innmind/di. 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 di

Dependency Injection

Build Status codecov Type Coverage

Minimalist dependency injection container with a single way to define services.

Also there's no cache, so no cache invalidation problems.

Installation

Usage

The add method accepts any callable that will return an object. This allows to use either anonymous functions for the ease of use (but have a memory impact) or callables of the form [Service::class, 'factoryMethod'] that allows to only load the class file when the service is loaded.

Use enums instead of strings to reference services

Using strings to name services when adding them via Builder::add() is simple but static analysis tools can't determine the type of the returned services. This results in mixed argument errors that need to be suppressed.

Instead you can use enums like so:

And to use it:

[!TIP] By using enums you can easily reference all the defined services in one place. If you distribute your package, users can look at the enum to see what service they can use (since you can declare @internal services).

On top of that no more typos in the services name and the services are automatically namespaced (no collision possible between packages).

[!NOTE] Named constructors are used on the enum in order to specify the class that is returned. Psalm dosn't allow to directly specify a template value on a case.


All versions of di with dependencies

PHP Build Version
Package Version
Requires php Version ~8.2
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 innmind/di contains the following files

Loading the files please wait ....