wilkques/container

v4.0.0 2024-09-25 05:37 UTC

This package is auto-updated.

Last update: 2024-09-25 05:55:00 UTC


README

Latest Stable Version License

如何使用

composer require wilkques/container

require '<project path>/vendor/Container/src/helpers.php';
require '<project path>/vendor/Container/src/Container.php';

方法

  1. register

    container()->register(
    '<your class name>',
    new '<your class name>'
    );
    
    // or
    
    container()->register([
    	[
    		'<your class name1>',
    		new '<your class name1>'
    	],
    	[
    		'<your class name2>',
    		new '<your class name2>'
    	],
    
    	...
    ]);
  2. bind

    $abstract = new \Your\Class\Name;
    
    container()->bind('<your class name>', function () use ($abstract) {
    	return $abstract;
    });
  3. singleton 单例方法将一个类或接口绑定到容器中,该绑定只能被解析一次。一旦单例绑定被解析,后续调用容器时将返回相同的对象实例。

    $abstract = new \Your\Class\Name;
    
    container()->singleton('<your class name>', function () use ($abstract) {
    	return $abstract;
    });
  4. scoped

    $abstract = new \Your\Class\Name;
    
    container()->scoped('<your class name>', function () use ($abstract) {
    	return $abstract;
    });
  5. get

    container()->get('<your class name>');
  6. make

    container('<your class name>');
    
    // or
    
    container()->make('<your class name>');
  7. call

    container()->call(['<your class name>', '<your class method name>'], ['<your class method vars name>' => '<your class method vars value>']);
    
    // or
    
    container()->call([new '<your class name>', '<your class method name>'], ['<your class method vars name>' => '<your class method vars value>']);
    
    // or
    
    container()->call(function (\Your\Class\Name $abstract) {
    	// do something
    });
  8. forgetScopedInstances 从容器中清除所有作用域实例。

  9. forgetInstance

    container()->forgetInstance('<your class name>');
  10. forgetInstances 从容器中清除所有实例。

  11. flush 清空容器中的所有绑定和已解析实例。