rinvex/laravel-repositories

View on GitHub
src/Repositories/EloquentRepository.php

Summary

Maintainability
D
2 days
Test Coverage

Showing 14 of 14 total issues

The class EloquentRepository has an overall complexity of 57 which is very high. The configured complexity threshold is 50.
Open

class EloquentRepository extends BaseRepository
{
/**
* {@inheritdoc}
*/

The class EloquentRepository has 27 non-getter- and setter-methods. Consider refactoring EloquentRepository to keep number of methods under 25.
Open

class EloquentRepository extends BaseRepository
{
/**
* {@inheritdoc}
*/

EloquentRepository has 27 functions (exceeds 20 allowed). Consider refactoring.
Open

class EloquentRepository extends BaseRepository
{
/**
* {@inheritdoc}
*/
Severity: Minor
Found in src/Repositories/EloquentRepository.php - About 3 hrs to fix

Function update has a Cognitive Complexity of 8 (exceeds 5 allowed). Consider refactoring.
Open

public function update($id, array $attributes = [], bool $syncRelations = false)
{
$updated = false;
 
// Find the given instance
Severity: Minor
Found in src/Repositories/EloquentRepository.php - About 45 mins to fix

Avoid assigning values to variables in if clauses and the like (line '21', column '32').
Open

public function createModel()
{
if (is_string($model = $this->getModel())) {
if (! class_exists($class = '\\'.ltrim($model, '\\'))) {
throw new RepositoryException("Class {$model} does NOT exist!");

Avoid assigning values to variables in if clauses and the like (line '20', column '23').
Open

public function createModel()
{
if (is_string($model = $this->getModel())) {
if (! class_exists($class = '\\'.ltrim($model, '\\'))) {
throw new RepositoryException("Class {$model} does NOT exist!");

Avoid assigning values to variables in if clauses and the like (line '73', column '23').
Open

public function findOrNew($id, $attributes = ['*'])
{
if (! is_null($entity = $this->find($id, $attributes))) {
return $entity;
}

Similar blocks of code found in 2 locations. Consider refactoring.
Open

public function paginate($perPage = null, $attributes = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Paginator::resolveCurrentPage($pageName);
 
return $this->executeCallback(static::class, __FUNCTION__, array_merge(func_get_args(), compact('page')), function () use ($perPage, $attributes, $pageName, $page) {
Severity: Major
Found in src/Repositories/EloquentRepository.php and 1 other location - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 125..132

Similar blocks of code found in 2 locations. Consider refactoring.
Open

public function simplePaginate($perPage = null, $attributes = ['*'], $pageName = 'page', $page = null)
{
$page = $page ?: Paginator::resolveCurrentPage($pageName);
 
return $this->executeCallback(static::class, __FUNCTION__, array_merge(func_get_args(), compact('page')), function () use ($perPage, $attributes, $pageName, $page) {
Severity: Major
Found in src/Repositories/EloquentRepository.php and 1 other location - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 113..120

Similar blocks of code found in 2 locations. Consider refactoring.
Open

public function restore($id)
{
$restored = false;
 
// Find the given instance
Severity: Major
Found in src/Repositories/EloquentRepository.php and 1 other location - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 271..290

Similar blocks of code found in 2 locations. Consider refactoring.
Open

public function delete($id)
{
$deleted = false;
 
// Find the given instance
Severity: Major
Found in src/Repositories/EloquentRepository.php and 1 other location - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 295..314

Similar blocks of code found in 3 locations. Consider refactoring.
Open

public function findWhereHas(array $where, $attributes = ['*'])
{
return $this->executeCallback(static::class, __FUNCTION__, func_get_args(), function () use ($where, $attributes) {
[$relation, $callback, $operator, $count] = array_pad($where, 4, null);
 
 
Severity: Major
Found in src/Repositories/EloquentRepository.php and 2 other locations - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 137..146
src/Repositories/EloquentRepository.php on lines 151..160

Similar blocks of code found in 3 locations. Consider refactoring.
Open

public function findWhere(array $where, $attributes = ['*'])
{
return $this->executeCallback(static::class, __FUNCTION__, func_get_args(), function () use ($where, $attributes) {
[$attribute, $operator, $value, $boolean] = array_pad($where, 4, null);
 
 
Severity: Major
Found in src/Repositories/EloquentRepository.php and 2 other locations - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 151..160
src/Repositories/EloquentRepository.php on lines 179..188

Similar blocks of code found in 3 locations. Consider refactoring.
Open

public function findWhereIn(array $where, $attributes = ['*'])
{
return $this->executeCallback(static::class, __FUNCTION__, func_get_args(), function () use ($where, $attributes) {
[$attribute, $values, $boolean, $not] = array_pad($where, 4, null);
 
 
Severity: Major
Found in src/Repositories/EloquentRepository.php and 2 other locations - About 2 hrs to fix
src/Repositories/EloquentRepository.php on lines 137..146
src/Repositories/EloquentRepository.php on lines 179..188
Category
Status