gidato/laminas-container-extensions

扩展Laminas服务管理器以实现容器扩展(例如嵌套容器、带有选项的缓存实例)

v1.0.1 2020-05-28 14:01 UTC

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许可