Code Duplication    Length = 20-24 lines in 4 locations

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

@@ 601-624 (lines=24) @@
598
    /**
599
     * {@inheritdoc}
600
     */
601
    public function hasForeignKey($tableName, $columns, $constraint = null)
602
    {
603
        if (is_string($columns)) {
604
            $columns = [$columns]; // str to array
605
        }
606
        $foreignKeys = $this->getForeignKeys($tableName);
607
608
        if ($constraint) {
609
            if (isset($foreignKeys[$constraint])) {
610
                return !empty($foreignKeys[$constraint]);
611
            }
612
613
            return false;
614
        } else {
615
            foreach ($foreignKeys as $key) {
616
                $a = array_diff($columns, $key['COLUMNS']);
617
                if (empty($a)) {
618
                    return true;
619
                }
620
            }
621
622
            return false;
623
        }
624
    }
625
626
    /**
627
     * Get an array of foreign keys from a particular table.

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

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

@@ 578-597 (lines=20) @@
575
    /**
576
     * {@inheritdoc}
577
     */
578
    public function hasForeignKey($tableName, $columns, $constraint = null)
579
    {
580
        if (is_string($columns)) {
581
            $columns = [$columns]; // str to array
582
        }
583
        $foreignKeys = $this->getForeignKeys($tableName);
584
        if ($constraint) {
585
            if (isset($foreignKeys[$constraint])) {
586
                return !empty($foreignKeys[$constraint]);
587
            }
588
589
            return false;
590
        } else {
591
            foreach ($foreignKeys as $key) {
592
                if ($columns == $key['columns']) {
593
                    return true;
594
                }
595
            }
596
597
            return false;
598
        }
599
    }
600

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

@@ 761-781 (lines=21) @@
758
    /**
759
     * {@inheritdoc}
760
     */
761
    public function hasForeignKey($tableName, $columns, $constraint = null)
762
    {
763
        if (is_string($columns)) {
764
            $columns = [$columns]; // str to array
765
        }
766
        $foreignKeys = $this->getForeignKeys($tableName);
767
        if ($constraint) {
768
            if (isset($foreignKeys[$constraint])) {
769
                return !empty($foreignKeys[$constraint]);
770
            }
771
772
            return false;
773
        } else {
774
            foreach ($foreignKeys as $key) {
775
                $a = array_diff($columns, $key['columns']);
776
                if (empty($a)) {
777
                    return true;
778
                }
779
            }
780
781
            return false;
782
        }
783
    }
784