Code Duplication    Length = 20-21 lines in 3 locations

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

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

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

@@ 583-602 (lines=20) @@
580
    /**
581
     * {@inheritdoc}
582
     */
583
    public function hasForeignKey($tableName, $columns, $constraint = null)
584
    {
585
        if (is_string($columns)) {
586
            $columns = [$columns]; // str to array
587
        }
588
        $foreignKeys = $this->getForeignKeys($tableName);
589
        if ($constraint) {
590
            if (isset($foreignKeys[$constraint])) {
591
                return !empty($foreignKeys[$constraint]);
592
            }
593
            return false;
594
        } else {
595
            foreach ($foreignKeys as $key) {
596
                if ($columns == $key['columns']) {
597
                    return true;
598
                }
599
            }
600
            return false;
601
        }
602
    }
603
604
    /**
605
     * Get an array of foreign keys from a particular table.

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

@@ 611-631 (lines=21) @@
608
    /**
609
     * {@inheritdoc}
610
     */
611
    public function hasForeignKey($tableName, $columns, $constraint = null)
612
    {
613
        if (is_string($columns)) {
614
            $columns = [$columns]; // str to array
615
        }
616
        $foreignKeys = $this->getForeignKeys($tableName);
617
        if ($constraint) {
618
            if (isset($foreignKeys[$constraint])) {
619
                return !empty($foreignKeys[$constraint]);
620
            }
621
            return false;
622
        } else {
623
            foreach ($foreignKeys as $key) {
624
                $a = array_diff($columns, $key['columns']);
625
                if (empty($a)) {
626
                    return true;
627
                }
628
            }
629
            return false;
630
        }
631
    }
632
633
    /**
634
     * Get an array of foreign keys from a particular table.