Code Duplication    Length = 20-21 lines in 3 locations

src/Phinx/Db/Adapter/MysqlAdapter.php 1 location

@@ 587-606 (lines=20) @@
584
    /**
585
     * {@inheritdoc}
586
     */
587
    public function hasForeignKey($tableName, $columns, $constraint = null)
588
    {
589
        if (is_string($columns)) {
590
            $columns = [$columns]; // str to array
591
        }
592
        $foreignKeys = $this->getForeignKeys($tableName);
593
        if ($constraint) {
594
            if (isset($foreignKeys[$constraint])) {
595
                return !empty($foreignKeys[$constraint]);
596
            }
597
598
            return false;
599
        } else {
600
            foreach ($foreignKeys as $key) {
601
                if ($columns == $key['columns']) {
602
                    return true;
603
                }
604
            }
605
606
            return false;
607
        }
608
    }
609

src/Phinx/Db/Adapter/SqlServerAdapter.php 1 location

@@ 733-753 (lines=21) @@
730
    /**
731
     * {@inheritdoc}
732
     */
733
    public function hasForeignKey($tableName, $columns, $constraint = null)
734
    {
735
        if (is_string($columns)) {
736
            $columns = [$columns]; // str to array
737
        }
738
        $foreignKeys = $this->getForeignKeys($tableName);
739
        if ($constraint) {
740
            if (isset($foreignKeys[$constraint])) {
741
                return !empty($foreignKeys[$constraint]);
742
            }
743
744
            return false;
745
        } else {
746
            foreach ($foreignKeys as $key) {
747
                $a = array_diff($columns, $key['columns']);
748
                if (empty($a)) {
749
                    return true;
750
                }
751
            }
752
753
            return false;
754
        }
755
    }
756

src/Phinx/Db/Adapter/PostgresAdapter.php 1 location

@@ 647-667 (lines=21) @@
644
    /**
645
     * {@inheritdoc}
646
     */
647
    public function hasForeignKey($tableName, $columns, $constraint = null)
648
    {
649
        if (is_string($columns)) {
650
            $columns = [$columns]; // str to array
651
        }
652
        $foreignKeys = $this->getForeignKeys($tableName);
653
        if ($constraint) {
654
            if (isset($foreignKeys[$constraint])) {
655
                return !empty($foreignKeys[$constraint]);
656
            }
657
658
            return false;
659
        } else {
660
            foreach ($foreignKeys as $key) {
661
                $a = array_diff($columns, $key['columns']);
662
                if (empty($a)) {
663
                    return true;
664
                }
665
            }
666
667
            return false;
668
        }
669
    }
670