PHPackages                             skrip42/advanced-repository - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Database &amp; ORM](/categories/database)
4. /
5. skrip42/advanced-repository

ActiveLibrary[Database &amp; ORM](/categories/database)

skrip42/advanced-repository
===========================

Symfony relation find repository

v2.3.1(5y ago)1391MITPHPPHP ^7.1.3

Since Sep 11Pushed 4y ago1 watchersCompare

[ Source](https://github.com/Skrip42/AdvancedRepository)[ Packagist](https://packagist.org/packages/skrip42/advanced-repository)[ Docs](https://github.com/Skrip42/advancedRepository)[ RSS](/packages/skrip42-advanced-repository/feed)WikiDiscussions master Synced today

READMEChangelog (6)Dependencies (2)Versions (7)Used By (1)

AdvancedRepository
==================

[](#advancedrepository)

Суть этой приблуды - предоставить возможность делать запросы с джойнами так же легко как просто запросы по параметрам

есть 2 метода:

- protected function buildQuery(array $params)
- public function advancedFindBy(array $params)

первый билдит квери из параметров вида:

```
[
    'joinedEntityName.joinedEntityFiled' => 'value',
    'joinedEntityName.joinedSubEntityName.joinedSubEntityField' => 'like:value'
]
```

второй просто оборачивает его и возвращает результат запроса (методы разделены чтобы иметь возможность использовать buildQuery в наследниках для организации своей логики (например пагинатора))

как видно из примера выше,помимо выпобки по релейшн сушностям эта штука позволяет задать более сложные условия:

```
[
  'fieldName' => 'value',                    // равенство
  'fieldName' => 'not::value',               // неравыенство
  'fieldName' => 'like::value',              // нестрогое соотвествие
  'fieldName' => 'notLike::value',           // нестрогое соотвествие с отрицанием
  'fieldName' => 'in::value1,value2,value3', // вхождение в масив
  'fieldName' => 'notIn::value4,value5',     // вхождение в масив с отрицанием
  'fieldName' => 'less::value',              // меньше значения
  'fieldName' => 'lessOrEq::value',          // меньше или равно значению
  'fieldName' => 'more::value',              // больше значения
  'fieldName' => 'moreOrEq::value',          // больше или равно значения
  'fieldName' => 'empty::',                  // не определено
  'fieldName' => 'notEmpty::'                // определено
]
```

В завершении замечу, что тут крайне сырой и некрасивый код, по суть это прототип из которого уже нужно лепить полноценный компилятор запросов, но я ленивая жопа и наврятле когданибудь это сделаю

###  Health Score

25

—

LowBetter than 35% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity9

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity54

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~21 days

Total

6

Last Release

2011d ago

Major Versions

v1.0.0 → v2.0.02020-10-16

### Community

Maintainers

![](https://www.gravatar.com/avatar/ac2ab44421653cebc795140356530287c37ba8c2011790683db6d2b316ea0e8d?d=identicon)[skrip42](/maintainers/skrip42)

---

Top Contributors

[![Skrip42](https://avatars.githubusercontent.com/u/11675343?v=4)](https://github.com/Skrip42 "Skrip42 (14 commits)")

### Embed Badge

![Health badge](/badges/skrip42-advanced-repository/health.svg)

```
[![Health](https://phpackages.com/badges/skrip42-advanced-repository/health.svg)](https://phpackages.com/packages/skrip42-advanced-repository)
```

###  Alternatives

[rcsofttech/audit-trail-bundle

Enterprise-grade, high-performance Symfony audit trail bundle. Automatically track Doctrine entity changes with split-phase architecture, multiple transports (HTTP, Queue, Doctrine), and sensitive data masking.

1189.8k](/packages/rcsofttech-audit-trail-bundle)[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.9M388](/packages/easycorp-easyadmin-bundle)[kimai/kimai

Kimai - Time Tracking

4.8k9.0k1](/packages/kimai-kimai)[2lenet/crudit-bundle

The easy like Crud'it Bundle.

1616.4k12](/packages/2lenet-crudit-bundle)[ahmed-bhs/doctrine-doctor

Runtime analysis tool for Doctrine ORM integrated into Symfony Web Profiler. Unlike static linters, it analyzes actual query execution at runtime to detect performance bottlenecks, security vulnerabilities, and best practice violations during development with real execution context and data.

939.0k](/packages/ahmed-bhs-doctrine-doctor)[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k60](/packages/open-dxp-opendxp)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
