定制 runner/container 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

runner/container

Composer 安装命令:

composer require runner/container

包简介

container for runner framework

README 文档

README

A small IoC Container for PHP

StyleCI

Installation

$ composer require runner/container

Usage

create an instance of the container, and bind services into the container with a name.

basic binding

use Runner\Container\Container;

$container = new Container();

$container->bind('stack', SplStack::class);

$container->make('stack');

$container->bind(ArrayAccess::class, function () {
    return new ArrayObject();
});

binding implementation

use an interface name as name and bind a concrete implementation to it

$container->bind(ArrayAccess::class, function () {
    return new ArrayObject();
});

$container->make(ArrayAccess::class);

binding singleton

$container->bind(
    'db', 
    function () {
        return new PDO();
    }, 
    true
);

$container->bind();

binding instance

just another way to binding singleton

$pdo = new PDO();

$container->instance('db', $pdo);

alias binding

bind an alias as concrete to a registered service

$container->bind(CacheInterface::class, function () {
    return new FileCache();
});

$container->bind('cache', CacheInterface::class, true);

$container->make('cache');

have fun :)

contextual binding

bind different implementation to classes while doing injecting

$container->bind(CacheInterface::class, function () {
    return new FileCache();
});

$container->bind('redis_cache', function () {
    return new RedisCache();
});

$container->bindContext(
    PageController::class,
    CacheInterface::class,
    function (Container $container) {
        return $container->make('redis_cache');
    }
);

$controller = $container->make(PageController::class);

References

License

MIT

统计信息

  • 总下载量: 94
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 1
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 1
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-04-12

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固