Skip to content
Snippets Groups Projects
Commit 4b071753 authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

1.0.2 (21/11/2024)

------------------

- [Optimisation] Table récupère maintenant la DDL depuis le fichier de ddl, et à défaut la recalcule depuis le BDD
parent 2f8d60af
Branches
Tags 1.0.2
No related merge requests found
Pipeline #32639 passed
1.0.2 (21/11/2024)
------------------
- [Optimisation] Table récupère maintenant la DDL depuis le fichier de ddl, et à défaut la recalcule depuis le BDD
1.0.1 (19/11/2024)
------------------
......
......@@ -3,6 +3,8 @@
namespace Unicaen\BddAdmin;
use Unicaen\BddAdmin\Ddl\Ddl;
class Table
{
......@@ -39,9 +41,14 @@ class Table
public function getDdl(): array
{
if (empty($this->ddl)) {
$ddlFromFile = $this->getDdlFromFile();
if (!empty($ddlFromFile)) {
$this->ddl = $ddlFromFile;
} else {
$sTable = $this->getBdd()->table();
$this->ddl = $sTable->get($this->name)[$this->name];
}
}
if (!$this->ddl) {
throw new \Exception('La DDL de la table ' . $this->name . ' n\'a pas pu être calculée');
}
......@@ -51,6 +58,23 @@ class Table
public function getDdlFromFile(): array
{
[$schema,$name] = Util::explodedFullObjectName($this->getName());
$ddlDir = $this->getBdd()->getOption(Bdd::OPTION_DDL . '/' . Ddl::OPTION_DIR);
$filename = $ddlDir . '/' . Ddl::TABLE . '/' . Util::fullObjectName($schema, $name) . '.php';
if (file_exists($filename)) {
$ddl = require $filename;
if (is_array($ddl) && $ddl['name'] == $name) {
return $ddl;
}
}
return [];
}
public function setDdl(array $ddl): self
{
$this->ddl = $ddl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment