Download the PHP package mrclay/props-dic without Composer

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

Props Build Status

Most Dependency Injection containers have fetch operations, like $di->get('foo') or $di['foo'], which don't allow your IDE to know the type of value received, nor offer you any help remembering/typing key names.

With Props, you access values via custom property reads $di->foo or method calls $di->new_foo(). This allows you to subclass the container and provide @property and/or @method PHPDoc declarations, giving your IDE and static analysis tools valuable runtime type information.

An example will help:

Here's a more complex example:

Since "slice" has a factory function set, we can call new_slice() to get fresh instances from it:

Your IDE sees the container as a plain old class of typed properties, allowing it to offer suggestions of available properties, autocomplete their names, and autocomplete the objects returned. It gives you much more power when providing static analysis and automated refactoring.

Compatibility

Props\Container implements ContainerInterface.

Overview

You can specify dependencies via direct setting:

You can specify factories by setting a Closure, or by using the setFactory() method. These are functionally equivalent:

Resolved dependencies are cached, returning the same instance:

Using factories

If you don't want a cached value, use new_PROPERTYNAME() to always fetch a fresh instance:

Regular value sets do not store a factory, so you may want to check hasFactory() before you use new_PROPERTYNAME():

You can also get access to a set factory:

Extending a factory

Use extend to have the return value of a factory filtered before it's returned:

Pimple with property access

If you're used to the Pimple API, try Props\Pimple, which just adds property access. With that you can add @property declarations and get the same typing benefits.

You can see an example that's similar to the Pimple docs.

Requirements

License (MIT)

See LICENSE.


All versions of props-dic with dependencies

PHP Build Version
Package Version
Requires php Version >=8.1.0
psr/container Version ^2.0
pimple/pimple Version ~3.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 mrclay/props-dic contains the following files

Loading the files please wait ....