module/FzyCommon/src/FzyCommon/Service/Update/Base.php
final public function getEntities()
    {
        if (!isset($this->entities)) {
            $this->entities = array();
            $entities = $this->generateEntities();
            $entities[static::MAIN_TAG] = $this->getEntity();
            /* @var $entity \FzyCommon\Entity\BaseInterface */
            foreach ($entities as $tag => $entity) {
                $this->getEventManager()
                    ->trigger(self::EVENT_CONFIGURE_ENTITY.$tag, $this, array(
                        'tag' => $tag,
                        'entity' => $entity,
                        'entities' => $entities,
                    ));
                $this->entities[$tag] = $entity;
                $entity->setFormTag($tag);
            }
        }

        return $this->entities;
    }
final public function getEntities()
    {
        if (!isset($this->entities)) {
            $this->entities = array();
            $entities = $this->generateEntities();
            $entities[static::MAIN_TAG] = $this->getEntity();
            /* @var $entity \FzyCommon\Entity\BaseInterface */
            foreach ($entities as $tag => $entity) {
                $this->getEventManager()
                    ->trigger(self::EVENT_CONFIGURE_ENTITY.$tag, $this, array(
                        'tag' => $tag,
                        'entity' => $entity,
                        'entities' => $entities,
                    ));
                $this->entities[$tag] = $entity;
                $entity->setFormTag($tag);
            }
        }

        return $this->entities;
    }
Ensures 'generateEntities' is only ever invoked once.
Fires the EVENT_CONFIGURE_ENTITY event on each entity
to allow for any configuration.

TODO: test that this even actually gets fired and provides
access/configuration to the entity

@return array