迁移后为什么停止使用保水器zf2-> zf3?

时间:2017-02-15 07:12:27

标签: zend-framework2 zend-framework3

如果你在mapper工厂得到它,我无法理解为什么停止使用AggregateHydrator:

$aggregatehydrator = $container->get(AggregateHydrator::class);

返回空对象。当我尝试时,我试图调试并且PHP正在死亡(多余的内存):

\Zend\debug\debug::dump($aggregatehydrator);

如果我以另一种方式得到保湿剂:

$tagsHydrator = $container->get(TagsHydrator::class);
$categoryHydrator = $container->get(CategoryHydrator::class);
$postHydrator = $container->get(PostHydrator::class);
$datesHydrator = $container->get(DatesHydrator::class);
$aggregatehydrator = new     \Zend\Hydrator\Aggregate\AggregateHydrator();
$aggregatehydrator->add($postHydrator);
$aggregatehydrator->add($categoryHydrator);
$aggregatehydrator->add($tagsHydrator);
$aggregatehydrator->add($datesHydrator);

它适用于所有人。返回填充的对象。

https://bitbucket.org/mad-max/blog-note3/overview

class AggregateHydratorFactory implements FactoryInterface
{
    public function __invoke(ContainerInterface $container, $requestedName, array $options = null)
    {
        $aggregatehydrator = new AggregateHydrator();

        $tagsHydrator = $container->get(TagsHydrator::class);
        $categoryHydrator = $container->get(CategoryHydrator::class);
        $postHydrator = $container->get(PostHydrator::class);
        $datesHydrator = $container->get(DatesHydrator::class);


        $aggregatehydrator->add($postHydrator);
        $aggregatehydrator->add($categoryHydrator);
        $aggregatehydrator->add($tagsHydrator);
        $aggregatehydrator->add($datesHydrator);

        return $aggregatehydrator;
    }
}

1 个答案:

答案 0 :(得分:0)

我在AggregateHydratorFactory中添加了:

    $aggregatehydrator = new AggregateHydrator();
    $aggregatehydrator->setEventManager($container->get('EventManager'));

答案在这里: https://github.com/zendframework/zend-hydrator/issues/40