PHP Classes
elePHPant
Icontem

PHP Dependency Resolver: Create class objects and others that it needs

Recommend this page to a friend!
  Info   View files Documentation   View files View files (4)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2018-02-14 (9 months ago) RSS 2.0 feedNot enough user ratingsTotal: 78 All time: 9,216 This week: 272Up
Version License PHP version Categories
dependency-resolver 1.0.3GNU General Publi...5.3PHP 5, Language, Design Patterns
Description Author

This class can create class objects and others that it needs.

It uses reflection to retrieve the information about a class and the parameters that it may need to pass on the constructor function.

If the constructor of the object to be created also needs objects of other classes, this class can also create objects of those other classes and pass them to the current object constructor.

The class may also pass values to the constructor of other types that were previous defined.

Name: Vinícius Dias <contact>
Classes: 2 packages by
Country: Brazil Brazil
Age: ???
All time rank: 3596286 in Brazil Brazil
Week rank: 330 Up18 in Brazil Brazil Up

Details

Dependency Resolver

Description

This is a simple Dependency Resolver to resolve classes dependencies and instantiate them automagically.

Instalation

Install the latest version with:

$ composer require cviniciussdias/dependency-resolver

Usage

<?php
use CViniciusSDias\DependencyResolver\Resolver;

// Classes definitions
class Class1
{
    private $class2;

    public function __construct(Class2 $class, Class3 $class3)
    {
        echo $class3->method();
        $this->class2 = $class;
    }

    public function test()
    {
        echo $this->class2;
    }
}

class Class2
{
    public function __construct(Class3 $test, $param = 'default value')
    {
        echo $param . PHP_EOL;
    }

    public function __toString()
    {
        return 'Class2::__toString()';
    }
}

class Class3
{
    public function __construct($paramWithoutDefaulValue)
    {
    }

    public function method()
    {
        return 'Class3::method()' . PHP_EOL;
    }
}

// Resolver usage
$resolver = new Resolver();
$resolver->setParameters(Class3::class, ['paramWithoutDefaulValue' => 'manual value']);
$class1 = $resolver->resolve(Class1::class);
$class1->test();

Author

Vinicius Dias - carlosv775@gmail.com - https://github.com/CViniciusSDias/

License

This component is licensed under the GPL License

  Files folder image Files  
File Role Description
Files folder imagesrc (2 files)
Accessible without login Plain text file composer.json Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
  Plain text file Resolver.php Class Class source
  Plain text file ResolverException.php Class Class source

 Version Control Unique User Downloads Download Rankings  
 100%
Total:78
This week:0
All time:9,216
This week:272Up