diff --git a/src/lib/Zikula/Bundle/CoreBundle/Resources/config/core.xml b/src/lib/Zikula/Bundle/CoreBundle/Resources/config/core.xml
index 3a6bfd26bf..c85233ce3f 100644
--- a/src/lib/Zikula/Bundle/CoreBundle/Resources/config/core.xml
+++ b/src/lib/Zikula/Bundle/CoreBundle/Resources/config/core.xml
@@ -37,6 +37,7 @@
Zikula\Bundle\CoreBundle\EventListener\ExceptionListener
Zikula\Bundle\CoreBundle\EventListener\OutputCompressionListener
Zikula\Bundle\CoreBundle\EventListener\StripFrontControllerListener
+ Zikula\Core\Doctrine\Helper\SchemaHelper
@@ -155,5 +156,8 @@
+
+
+
diff --git a/src/lib/Zikula/Core/Doctrine/Helper/SchemaHelper.php b/src/lib/Zikula/Core/Doctrine/Helper/SchemaHelper.php
new file mode 100644
index 0000000000..3e89a0e65c
--- /dev/null
+++ b/src/lib/Zikula/Core/Doctrine/Helper/SchemaHelper.php
@@ -0,0 +1,89 @@
+entityManager = $em;
+ $this->tool = new SchemaTool($em);
+ }
+
+ /**
+ * create tables from array of entity classes
+ * @param array $classes
+ * @throws \Doctrine\ORM\Tools\ToolsException
+ */
+ public function create(array $classes)
+ {
+ $metaClasses = array();
+ foreach ($classes as $class) {
+ $metaClasses[] = $this->entityManager->getClassMetadata($class);
+ }
+ try {
+ $this->tool->createSchema($metaClasses);
+ } catch (\PDOException $e) {
+ throw $e;
+ }
+ }
+
+ /**
+ * drop tables from array of entity classes
+ * @param array $classes
+ */
+ public function drop(array $classes)
+ {
+ $metaClasses = array();
+ foreach ($classes as $class) {
+ $metaClasses[] = $this->entityManager->getClassMetadata($class);
+ }
+ try {
+ $this->tool->dropSchema($metaClasses);
+ } catch (\PDOException $e) {
+ throw $e;
+ }
+ }
+
+ /**
+ * update tables from array of entity classes
+ * @param array $classes
+ * @param bool $saveMode
+ */
+ public function update(array $classes, $saveMode=true)
+ {
+ $metaClasses = array();
+ foreach ($classes as $class) {
+ $metaClasses[] = $this->entityManager->getClassMetadata($class);
+ }
+ try {
+ $this->tool->updateSchema($metaClasses, $saveMode);
+ } catch (\PDOException $e) {
+ throw $e;
+ }
+ }
+}
diff --git a/src/lib/util/DoctrineHelper.php b/src/lib/util/DoctrineHelper.php
index 7925e852ad..4df0ace0fc 100644
--- a/src/lib/util/DoctrineHelper.php
+++ b/src/lib/util/DoctrineHelper.php
@@ -14,6 +14,10 @@
use Doctrine\ORM\EntityManager as EntityManager;
use Doctrine\ORM\Tools\SchemaTool as SchemaTool;
+/**
+ * Class DoctrineHelper
+ * @deprecated to be removed at Core 2.0.0
+ */
class DoctrineHelper
{
public static function createSchema(EntityManager $em, array $classes)