src/Pok/PoolDBM/Console/Command/GenerateMultiModelCommand.php
protected function buildParameters($className)
    {
        /** @var \Pok\PoolDBM\Mapping\ClassMetadata $metadata */
        $metadata = $this->getModelManager()->getClassMetadata($className);

        $managers = array();
        foreach ($metadata->getFieldMappings() as $model) {

            $managers[$model->getManagerName()] = array(
                'namespace' => '\\' . $model->getName(),
                'methods'   => array()
            );

            $fields = $model->getFields();
            if ($metadata->getManagerIdentifier() === $model->getManagerName()) {
                $fields[] = $metadata->getFieldIdentifier();
            }

            $pattern = self::patternDeclared($fields);

            $refl = new \ReflectionClass($model->getName());
            foreach ($refl->getMethods() as $method) {
                if (!$method->isPublic() || $method->isStatic() || $method->isConstructor() || $method->isDestructor() || $method->isAbstract()) {
                    continue;
                }

                preg_match($pattern, $method->getName(), $matches);
                if (empty($matches)) {
                    continue;
                }

                $arg = array(
                    'comment'    => $method->getDocComment(),
                    'name'       => $method->getName(),
                    'type'       => in_array($matches[1], array('get','is','has','all','check')) ? 'getter' : 'setter',
                    'arguments'  => Reflector::parameters($method->getParameters()),
                    'parameters' => $method->getParameters()
                );

                $managers[$model->getManagerName()]['methods'][] = $arg;
            }
        }

        $associations = new Bag();
        foreach ($metadata->getAssociationDefinitions() as $definition) {
            if ($definition->isMany()) {
                $associations->many[$definition->getField()] = array(
                    'fields'    => $definition->getReferences(),
                    'className' => $definition->getTargetMultiModel()
                );
            } else {
                $associations->one[$definition->getField()] = array(
                    'className' => $definition->getTargetMultiModel()
                );
            }
        }

        $occ = strrpos($metadata->getName(), '\\');

        return array(
            'model_namespace'   => substr($metadata->getName(), 0, $occ),
            'model_name'        => substr($metadata->getName(), $occ + 1),
            'managers'          => $managers,
            'associations'      => $associations
        );
    }
protected function buildParameters($className)
    {
        /** @var \Pok\PoolDBM\Mapping\ClassMetadata $metadata */
        $metadata = $this->getModelManager()->getClassMetadata($className);

        $managers = array();
        foreach ($metadata->getFieldMappings() as $model) {

            $managers[$model->getManagerName()] = array(
                'namespace' => '\\' . $model->getName(),
                'methods'   => array()
            );

            $fields = $model->getFields();
            if ($metadata->getManagerIdentifier() === $model->getManagerName()) {
                $fields[] = $metadata->getFieldIdentifier();
            }

            $pattern = self::patternDeclared($fields);

            $refl = new \ReflectionClass($model->getName());
            foreach ($refl->getMethods() as $method) {
                if (!$method->isPublic() || $method->isStatic() || $method->isConstructor() || $method->isDestructor() || $method->isAbstract()) {
                    continue;
                }

                preg_match($pattern, $method->getName(), $matches);
                if (empty($matches)) {
                    continue;
                }

                $arg = array(
                    'comment'    => $method->getDocComment(),
                    'name'       => $method->getName(),
                    'type'       => in_array($matches[1], array('get','is','has','all','check')) ? 'getter' : 'setter',
                    'arguments'  => Reflector::parameters($method->getParameters()),
                    'parameters' => $method->getParameters()
                );

                $managers[$model->getManagerName()]['methods'][] = $arg;
            }
        }

        $associations = new Bag();
        foreach ($metadata->getAssociationDefinitions() as $definition) {
            if ($definition->isMany()) {
                $associations->many[$definition->getField()] = array(
                    'fields'    => $definition->getReferences(),
                    'className' => $definition->getTargetMultiModel()
                );
            } else {
                $associations->one[$definition->getField()] = array(
                    'className' => $definition->getTargetMultiModel()
                );
            }
        }

        $occ = strrpos($metadata->getName(), '\\');

        return array(
            'model_namespace'   => substr($metadata->getName(), 0, $occ),
            'model_name'        => substr($metadata->getName(), $occ + 1),
            'managers'          => $managers,
            'associations'      => $associations
        );
    }
protected function buildParameters ( $ className ) { /** @var \Pok\PoolDBM\Mapping\ClassMetadata $metadata */ $ metadata = $ this -> getModelManager ( ) -> getClassMetadata ( $ className ) ; $ managers = array ( ) ; foreach ( $ metadata -> getFieldMappings ( ) as $ model ) { $ managers [ $ model -> getManagerName ( ) ] = array ( 'namespace' => '\\' . $ model -> getName ( ) , 'methods' => array ( ) ) ; $ fields = $ model -> getFields ( ) ; if ( $ metadata -> getManagerIdentifier ( ) === $ model -> getManagerName ( ) ) { $ fields [ ] = $ metadata -> getFieldIdentifier ( ) ; } $ pattern = self :: patternDeclared ( $ fields ) ; $ refl = new \ ReflectionClass ( $ model -> getName ( ) ) ; foreach ( $ refl -> getMethods ( ) as $ method ) { if ( ! $ method -> isPublic ( ) || $ method -> isStatic ( ) || $ method -> isConstructor ( ) || $ method -> isDestructor ( ) || $ method -> isAbstract ( ) ) { continue ; } preg_match ( $ pattern , $ method -> getName ( ) , $ matches ) ; if ( empty ( $ matches ) ) { continue ; } $ arg = array ( 'comment' => $ method -> getDocComment ( ) , 'name' => $ method -> getName ( ) , 'type' => in_array ( $ matches [ 1 ] , array ( 'get' , 'is' , 'has' , 'all' , 'check' ) ) ? 'getter' : 'setter' , 'arguments' => Reflector :: parameters ( $ method -> getParameters ( ) ) , 'parameters' => $ method -> getParameters ( ) ) ; $ managers [ $ model -> getManagerName ( ) ] [ 'methods' ] [ ] = $ arg ; } } $ associations = new Bag ( ) ; foreach ( $ metadata -> getAssociationDefinitions ( ) as $ definition ) { if ( $ definition -> isMany ( ) ) { $ associations -> many [ $ definition -> getField ( ) ] = array ( 'fields' => $ definition -> getReferences ( ) , 'className' => $ definition -> getTargetMultiModel ( ) ) ; } else { $ associations -> one [ $ definition -> getField ( ) ] = array ( 'className' => $ definition -> getTargetMultiModel ( ) ) ; } } $ occ = strrpos ( $ metadata -> getName ( ) , '\\' ) ; return array ( 'model_namespace' => substr ( $ metadata -> getName ( ) , 0 , $ occ ) , 'model_name' => substr ( $ metadata -> getName ( ) , $ occ + 1 ) , 'managers' => $ managers , 'associations' => $ associations ) ; }
Build parameters with data recovered by the driver.

@param string $className

@return array
Build parameters with data recovered by the driver .