Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace DoctrineExtensions\Hierarchical;
- use DoctrineExtensions\Hierarchical\MaterializedPath\MaterializedPathNodeInfo,
- DoctrineExtensions\Hierarchical\AdjacencyList\AdjacencyListNodeInfo,
- DoctrineExtensions\Hierarchical\NestedSet\NestedSetNodeInfo,
- Doctrine\ORM\EntityManager;
- class HierarchicalManagerFactory
- {
- /**
- * Factory method to create a Hierarchical Manager for the specified class
- *
- * @param EntityManager $em
- * @param string $className
- * @return AbstractManager
- */
- public static function getManager(EntityManager $em, $className)
- {
- $meta = $em->getClassMetadata($className);
- $reflClass = $meta->reflClass;
- if ($reflClass->implementsInterface('MaterializedPathNodeInfo')) {
- return new MaterializedPathHiearchicalManager($em, $meta);
- } elseif ($reflClass->implementsInterface('NestedSetNodeInfo')) {
- return new NestedSetHierarchicalManager($em, $meta);
- }
- throw new HierarchicalException('Provided entity does not implement any known Node interface');
- }
- }
Add Comment
Please, Sign In to add comment