Commit a561e1fc authored by Laurent Lecluse's avatar Laurent Lecluse
Browse files

Début travail sur les contraintes

parent 8802ad1a
Loading
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ use Unicaen\BddAdmin\Manager\AbstractManager;
abstract class AbstractManagerDdlConstraint extends AbstractManager
{
    protected string $description = '';
    protected string $descriprionPluriel = '';



+16 −19
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@ use Unicaen\BddAdmin\Ddl\DdlFilter;
class UniqueConstraintManager extends AbstractManagerDdlConstraint implements UniqueConstraintManagerInterface
{
    protected $description = 'contrainte d\'unicité';
    protected $descriprionPluriel = 'contraintes d\'unicité';



@@ -90,7 +91,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un



    public function makeCreate(array $data)
    public function makeCreate(array $data): void
    {
        $cols = implode(', ', $data['columns']);
        $sql = "ALTER TABLE " . $data['table'] . " ADD CONSTRAINT " . $data['name'] . " UNIQUE ($cols) ";
@@ -110,7 +111,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un



    public function create(array $data)
    public function create(array $data): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;

@@ -119,7 +120,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un



    public function drop(array|string $name)
    public function drop(array|string $name): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;

@@ -128,7 +129,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un



    public function alter(array $old, array $new)
    public function alter(array $old, array $new): void
    {
        if ($this->isDiff($old, $new)) {
            if ($this->sendEvent()->getReturn('no-exec')) return;
@@ -139,7 +140,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un



    public function rename(string $oldName, array $new)
    public function rename(string $oldName, array $new): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;

@@ -151,7 +152,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un
    /***
     * @param string|array $name
     */
    public function enable($name)
    public function enable($name): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;

@@ -163,7 +164,7 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un
    /***
     * @param string|array $name
     */
    public function disable($name)
    public function disable($name): void
    {
        if ($this->sendEvent()->getReturn('no-exec')) return;

@@ -175,21 +176,19 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un
    /**
     * @return UniqueConstraintManagerInterface
     */
    public function enableAll(): UniqueConstraintManagerInterface
    public function enableAll(): void
    {
        $this->bdd->logBegin("Activation de toutes les contraintes d'unicité");
        $this->bdd->logBegin("Activation de toutes les ".$this->descriprionPluriel);
        $l = $this->get();
        foreach ($l as $d) {
            $this->bdd->logMsg("Clé primaire " . $d['name'], true);
            $this->bdd->logMsg(ucfirst($this->description).' ' . $d['name'], true);
            try {
                $this->enable($d);
            } catch (\Throwable $e) {
                $this->bdd->logError($e);
            }
        }
        $this->bdd->logEnd('Toutes les contraintes d\'unicité ont été activées');

        return $this;
        $this->bdd->logEnd('Toutes les '.$this->descriprionPluriel.' ont été activées');
    }


@@ -197,20 +196,18 @@ class UniqueConstraintManager extends AbstractManagerDdlConstraint implements Un
    /**
     * @return UniqueConstraintManagerInterface
     */
    public function disableAll(): UniqueConstraintManagerInterface
    public function disableAll(): void
    {
        $this->bdd->logBegin("Désactivation de toutes les contraintes d'unicité");
        $this->bdd->logBegin("Désactivation de toutes les ".$this->descriprionPluriel);
        $l = $this->get();
        foreach ($l as $d) {
            $this->bdd->logMsg("Clé primaire " . $d['name'], true);
            $this->bdd->logMsg(ucfirst($this->description).' ' . $d['name'], true);
            try {
                $this->disable($d);
            } catch (\Throwable $e) {
                $this->bdd->logError($e);
            }
        }
        $this->bdd->logEnd('Toutes les contraintes d\'unicité ont été désactivées');

        return $this;
        $this->bdd->logEnd('Toutes les '.$this->descriprionPluriel.' ont été désactivées');
    }
}
 No newline at end of file