rinvex/laravel-repositories

View on GitHub

Showing 38 of 38 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 BaseRepository has an overall complexity of 58 which is very high. The configured complexity threshold is 50.
Open

abstract class BaseRepository implements RepositoryContract, CacheableContract
{
use Cacheable;
 
/**
Severity: Minor
Found in src/Repositories/BaseRepository.php by phpmd

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

BaseRepository has 26 functions (exceeds 20 allowed). Consider refactoring.
Open

abstract class BaseRepository implements RepositoryContract, CacheableContract
{
use Cacheable;
 
/**
Severity: Minor
Found in src/Repositories/BaseRepository.php - About 3 hrs to fix

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

Method prepareQuery has 45 lines of code (exceeds 25 allowed). Consider refactoring.
Open

protected function prepareQuery($model)
{
// Set the relationships that should be eager loaded
if (! empty($this->relations)) {
$model = $model->with($this->relations);
Severity: Minor
Found in src/Repositories/BaseRepository.php - About 1 hr to fix

Function prepareQuery has a Cognitive Complexity of 14 (exceeds 5 allowed). Consider refactoring.
Open

protected function prepareQuery($model)
{
// Set the relationships that should be eager loaded
if (! empty($this->relations)) {
$model = $model->with($this->relations);
Severity: Minor
Found in src/Repositories/BaseRepository.php - About 1 hr to fix

Avoid excessively long variable names like $repositoryAliasPattern. Keep variable name length under 20.
Open

protected $repositoryAliasPattern = '{{class}}Contract';

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

Method bindRepository has 5 arguments (exceeds 4 allowed). Consider refactoring.
Open

protected function bindRepository($abstract, $concrete = null, $shared = true, $alias = null, $force = false): void
Severity: Minor
Found in src/Traits/Bindable.php - About 35 mins to fix

Function forgetCache has a Cognitive Complexity of 7 (exceeds 5 allowed). Consider refactoring.
Open

public function forgetCache()
{
if ($this->getCacheLifetime()) {
// Flush cache tags
if (method_exists($this->getContainer('cache')->getStore(), 'tags')) {
Severity: Minor
Found in src/Traits/Cacheable.php - About 35 mins to fix

Missing class import via use statement (line '75', column '27').
Open

$reflection = new \ReflectionClass($class);
Severity: Minor
Found in src/Traits/Criteriable.php by phpmd

Avoid unused local variables such as '$scope'.
Open

if (method_exists($model = $this->createModel(), $scope = 'scope'.ucfirst($method))) {
Severity: Minor
Found in src/Repositories/BaseRepository.php by phpmd
Severity
Category
Status
Source
Language