Download the PHP package cwm/hypo without Composer
On this page you can find all versions of the php package cwm/hypo. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Informations about the package hypo
Hypo
Hypo is a Dependency Injection Container for PHP 5.4+. It provides a simple, fluent API for configuration. Currently, Hypo only supports Constructor Injection.
Installation
Hypo can easily be added to your project via Composer:
Examples
Registering a Class
Registering a Class for an Interface
Registering a Class for Multiple Interfaces
Registering a Class for All Implemented Interfaces
Registering Instances
Previously instantiated objects can be registered with the registerInstance()
method. By default, they will be resolved for requests
of the class the object instantiated.
Configuring Constructor Arguments
Type hinted arguments are automatically resolved if they are classes or interfaces. This can be overridden by using the NamedDependency feature (see next section). Primitive arguments on the other hand have to be specified if they do not have a default value.
Custom Construction via Closure
If the container is not suitable for handling the construction of an object, then it can be customized by use of the
constructedBy()
method on the fluent API. The closure is passed the name of the class and expects an instance of it
to be returned.
Naming Registrations
When multiple classes are registered for the same implementation, they can each be given a unique name. This name can be used
to resolve the class by using the resolveName()
method.
Also, the name can be used with the NamedDependency
class when configuring parameters:
Configuring Object Lifespan
Singletons can be set by using the asSingleton()
method. asTransient()
is also provided, but it is not required to
specify because all registrations are transient by default.
License
Copyright (c) 2013 Chase Miller
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.