wouterj/shift-php

Add Service Container

Closed this issue · 1 comments

class NewsLetter
{
    public function __construct(Mailer $mailer)
    { ... }
}

use Wj\Shift\DependencyInjection\Annotation as DI;

class Mailer
{
    /**
     * @DI\Inject("transport", "mailer.transport")
     */
    public function __construct($transport)
    { ... }
}

And also providing setter injection:

class NewsLetter
{
    /**
     * @DI\InjectMethod
     */
    public function setMailer(Mailer $mailer)
    { ... }
}

class Mailer
{
    /**
     * @DI\InjectMethod
     * @DI\Inject("transport", "mailer.transport")
     */
    public function setTransport($transport)
    { ... }
}