1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/actors315-DI

Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Twinkle\DI

Реализация PSR-11 контейнера интерфейса

Build Status

Установка

composer require twinkle/di --prefer-dist --optimize-autoloader

Пример

Container

$definitions = [
    'hello' => [
        'class' => \HelloWorld::class,
    ]
];
$container = new \Twinkle\DI\Container($definitions);

// Проверка наличия внедрения контейнера
isset($container['hello'])

// Получение экземпляра
$instance = $container['hello'];
$instance->someMethod();

// Освобождение памяти
unset($container['hello']);

ServiceLocator

namespace App\Services;
class HelloService
{

    public function sayHello()
    {
        return 'hello';
    }
}

namespace App\Controllers;
use App\Services\HelloService;
use Twinkle\DI\ServiceLocatorTrait;

/**
 * Class HelloController
 * @package App\Controllers
 * @property HelloService $helloService
 */
class HelloController
{

    use ServiceLocatorTrait;

    public static function supportAutoNamespaces()
    {
        return [
            'App\\Services',
            'Twinkle\\Services'
        ];
    }

    public function indexAction()
    {
        echo $this->helloService->sayHello();
    }

}

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Простая реализация DI. Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/actors315-DI.git
git@api.gitlife.ru:oschina-mirror/actors315-DI.git
oschina-mirror
actors315-DI
actors315-DI
master