A PHP Injection liblary

Installs: 16

Dependents: 0

Suggesters: 0

Security: 0

Stars: 2

Watchers: 2

Forks: 0

Type:liblary

1.0.0 2016-10-15 13:37 UTC

This package is not auto-updated.

Last update: 2024-09-28 19:25:59 UTC


README

A PHP Injection Liblary.

Install

composer require renshan/tc

Usage

Define A Service Without Parameter

namespace Foo;

class Foo 
{
	public function foo()
	{
		// Do anything here
	}
}
use Tc\Container;


$container = new Container;

$defKey = 'service.foo';
$defMap = 'Foo\Foo';

$container->register($defKey, $defMap);

Define A Service With Parameters

namespace Bar;

use Foo\Foo;

class Bar
{
	/**
		* This class need a parameter whic a instance of Foo, and a parameter $bar
		*/
	public function constructor(Foo $foo, $bar)
	{
	}

	public function bar()
	{
		// Do anything here
	}
}

and you can define a service like this:

$container = new Container;

$defKey = 'service.bar';
$defMap = 'Bar\Bar';
$params = ['@service.foo', 'bar']; // Be sure the position of parameters

$container->register($defKey, $defMap, $params);

finally, you can use your services now:

$foo = $container->get('service.foo');
$bar = $container->get('service.bar');

and you can get a raw service:

$contnainer->raw('service.foo');

By default, a service will generate one and only a instance of the map class.