gidato / laminas-container-extensions
扩展Laminas服务管理器以实现容器扩展(例如嵌套容器、带有选项的缓存实例)
v1.0.1
2020-05-28 14:01 UTC
Requires
Requires (Dev)
- phpunit/phpunit: ^8.5
This package is not auto-updated.
Last update: 2024-09-28 10:02:50 UTC
README
composer require gidato/laminas-container-extensions
然后您需要找到\config\container.php文件中的以下行
use Laminas\ServiceManager\ServiceManager;
并按如下修改
use Gidato\ContainerExtensions\Laminas;
嵌套容器
可以在容器内创建并使用一个独立的容器,从而有效地对绑定元素进行命名空间。
这允许将应用程序的特定部分直接关联到特定的容器。
要访问子容器,可以使用$container->container("容器名称")
,然后将事物绑定到这个级别。
使用选项构建的缓存对象
而不是使用$container->get('名称')
,您可以使用$container->getWith('名称', ['选项'])
。这将使用传递的选项创建对象,但如果对象定义为共享或默认为共享,则后续请求将返回相同的实例。
获取新实例
您应该使用create()
和createWith()
而不是使用build()
,以便该包可以与其他容器实现一起使用。
从容器中获取所有内容
您可以从容器中获取所有键或所有实例。
public function getKeys(bool $includeContainer = false, bool $includeAliases = false);
$container->getKeys(); // returns all keys, but excludes containers and aliases
$container->getKeys(true); // returns all keys including containers, but excludes aliases
$container->getKeys(false, true); // returns all keys including aliases but excludes containers
$container->getKeys(true, true); // returns all keys including containers and aliases
或获取所有实例(按键索引)。如果尚未构建,则将构建这些。
public function getAll(bool $includeContainer = false);
$container->getAll(); // returns all instances, but excludes containers
$container->getAll(true); // returns all instances, and includes containers
许可证
此软件是开源软件,许可协议为MIT许可。