Metadata modification: add getAll() and change get() methods

This commit is contained in:
Taras Machyshyn
2013-11-28 13:20:11 +02:00
parent 6306293a7d
commit 7024162ef8
4 changed files with 62 additions and 9 deletions

View File

@@ -7,6 +7,6 @@ class Metadata extends \Espo\Core\Controllers\Base
public function actionRead($params, $data)
{
return $this->getMetadata()->get(true);
return $this->getMetadata()->getAll(true);
}
}

View File

@@ -27,11 +27,7 @@ class EspoConverter
$this->metadata = $metadata;
$this->fileManager = $fileManager;
$this->schemaTool = new \Doctrine\ORM\Tools\SchemaTool($this->getEntityManager());
$this->entityGenerator = new \Doctrine\ORM\Tools\EntityGenerator();
$this->disconnectedClassMetadataFactory = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory();
$this->disconnectedClassMetadataFactory->setEntityManager($this->getEntityManager()); // $em is EntityManager instance
$this->doctrineHelper = new \Espo\Core\Doctrine\Helper($this->getEntityManager()->getWrapped());
}
protected function getEntityManager()
@@ -101,7 +97,7 @@ class EspoConverter
{
$GLOBALS['log']->add('Debug', 'Metadata:get() - converting to doctrine metadata');
$meta = $this->getMetadata()->get();
$meta = $this->getMetadata()->getAll();
return; //TODO
$this->setMeta($meta);

View File

@@ -6,9 +6,22 @@ class Helper
{
private $entityManager;
private $schemaTool;
private $disconnectedClassMetadataFactory;
private $entityGenerator;
public function __construct(\Espo\Core\EntityManager $entityManager)
{
$this->entityManager = $entityManager;
$this->schemaTool = new \Doctrine\ORM\Tools\SchemaTool($this->getEntityManager());
$this->entityGenerator = new \Doctrine\ORM\Tools\EntityGenerator();
$this->disconnectedClassMetadataFactory = new \Doctrine\ORM\Tools\DisconnectedClassMetadataFactory();
$this->disconnectedClassMetadataFactory->setEntityManager($this->getEntityManager()); // $em is EntityManager instance
}
protected function getEntityManager()
@@ -16,5 +29,20 @@ class Helper
return $this->entityManager;
}
protected function getSchemaTool()
{
return $this->schemaTool;
}
protected function getDisconnectedClassMetadataFactory()
{
return $this->disconnectedClassMetadataFactory;
}
protected function getEntityGenerator()
{
return $this->entityGenerator;
}
}

View File

@@ -76,14 +76,43 @@ class Metadata
/**
* Get Metadata context
* Get Metadata
*
* @param string $key
* @param mixed $return
*
* @return array
*/
public function get($key = '', $returns = null)
{
if (empty($key)) {
return $this->meta;
}
$keys = explode('.', $key);
$lastMeta = $this->meta;
foreach($keys as $keyName) {
if (isset($lastMeta[$keyName]) && is_array($lastMeta)) {
$lastMeta = $lastMeta[$keyName];
} else {
return $returns;
}
}
return $lastMeta;
}
/**
* Get All Metadata context
*
* @param $isJSON
* @param bool $reload
*
* @return json | array
*/
public function get($isJSON = false, $reload = false)
public function getAll($isJSON = false, $reload = false)
{
if ($reload) {
$this->init();