Code Duplication    Length = 15-15 lines in 4 locations

src/Model.php 4 locations

@@ 1016-1030 (lines=15) @@
1013
     *
1014
     * @return \Pulsar\Relation\Relation
1015
     */
1016
    public function hasOne($model, $foreignKey = '', $localKey = '')
1017
    {
1018
        // the default local key would look like `user_id`
1019
        // for a model named User
1020
        if (!$foreignKey) {
1021
            $inflector = Inflector::get();
1022
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1023
        }
1024
1025
        if (!$localKey) {
1026
            $localKey = self::DEFAULT_ID_PROPERTY;
1027
        }
1028
1029
        return new HasOne($model, $foreignKey, $localKey, $this);
1030
    }
1031
1032
    /**
1033
     * Creates the child side of a One-To-One or One-To-Many relationship.
@@ 1041-1055 (lines=15) @@
1038
     *
1039
     * @return \Pulsar\Relation\Relation
1040
     */
1041
    public function belongsTo($model, $foreignKey = '', $localKey = '')
1042
    {
1043
        if (!$foreignKey) {
1044
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1045
        }
1046
1047
        // the default local key would look like `user_id`
1048
        // for a model named User
1049
        if (!$localKey) {
1050
            $inflector = Inflector::get();
1051
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1052
        }
1053
1054
        return new BelongsTo($model, $foreignKey, $localKey, $this);
1055
    }
1056
1057
    /**
1058
     * Creates the parent side of a Many-To-One or Many-To-Many relationship.
@@ 1066-1080 (lines=15) @@
1063
     *
1064
     * @return \Pulsar\Relation\Relation
1065
     */
1066
    public function hasMany($model, $foreignKey = '', $localKey = '')
1067
    {
1068
        // the default local key would look like `user_id`
1069
        // for a model named User
1070
        if (!$foreignKey) {
1071
            $inflector = Inflector::get();
1072
            $foreignKey = strtolower($inflector->underscore(static::modelName())).'_id';
1073
        }
1074
1075
        if (!$localKey) {
1076
            $localKey = self::DEFAULT_ID_PROPERTY;
1077
        }
1078
1079
        return new HasMany($model, $foreignKey, $localKey, $this);
1080
    }
1081
1082
    /**
1083
     * Creates the child side of a Many-To-Many relationship.
@@ 1091-1105 (lines=15) @@
1088
     *
1089
     * @return \Pulsar\Relation\Relation
1090
     */
1091
    public function belongsToMany($model, $foreignKey = '', $localKey = '')
1092
    {
1093
        if (!$foreignKey) {
1094
            $foreignKey = self::DEFAULT_ID_PROPERTY;
1095
        }
1096
1097
        // the default local key would look like `user_id`
1098
        // for a model named User
1099
        if (!$localKey) {
1100
            $inflector = Inflector::get();
1101
            $localKey = strtolower($inflector->underscore($model::modelName())).'_id';
1102
        }
1103
1104
        return new BelongsToMany($model, $foreignKey, $localKey, $this);
1105
    }
1106
1107
    /**
1108
     * Loads a given relationship (if not already) and returns