Code Duplication    Length = 20-21 lines in 3 locations

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

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

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

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

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

@@ 621-641 (lines=21) @@
618
    /**
619
     * {@inheritdoc}
620
     */
621
    public function hasForeignKey($tableName, $columns, $constraint = null)
622
    {
623
        if (is_string($columns)) {
624
            $columns = [$columns]; // str to array
625
        }
626
        $foreignKeys = $this->getForeignKeys($tableName);
627
        if ($constraint) {
628
            if (isset($foreignKeys[$constraint])) {
629
                return !empty($foreignKeys[$constraint]);
630
            }
631
632
            return false;
633
        } else {
634
            foreach ($foreignKeys as $key) {
635
                $a = array_diff($columns, $key['columns']);
636
                if (empty($a)) {
637
                    return true;
638
                }
639
            }
640
641
            return false;
642
        }
643
    }
644