PHPackages                             k3progetti/doctrine-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. k3progetti/doctrine-repository

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

k3progetti/doctrine-repository
==============================

Abstract Doctrine repository with common helpers for Symfony projects

1.0.1(3mo ago)0101MITPHPPHP ^8.1

Since Mar 23Pushed 3mo agoCompare

[ Source](https://github.com/K3Progetti/doctrine-repository)[ Packagist](https://packagist.org/packages/k3progetti/doctrine-repository)[ RSS](/packages/k3progetti-doctrine-repository/feed)WikiDiscussions master Synced 3w ago

READMEChangelogDependencies (3)Versions (3)Used By (1)

k3/doctrine-repository
======================

[](#k3doctrine-repository)

Repository Doctrine astratto con helper comuni per progetti Symfony.

Requisiti
---------

[](#requisiti)

- PHP ^8.1
- Symfony ^6.0 | ^7.0 | ^8.0
- Doctrine ORM ^2.0 | ^3.0

Installazione
-------------

[](#installazione)

```
composer require k3/doctrine-repository
```

Utilizzo
--------

[](#utilizzo)

Estendi la classe `Repository` al posto di `ServiceEntityRepository` di Doctrine:

```
use K3\Repository\Repository;
use Doctrine\Persistence\ManagerRegistry;

class UserRepository extends Repository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, User::class);
    }
}
```

Metodi disponibili
------------------

[](#metodi-disponibili)

### Persistenza

[](#persistenza)

MetodoDescrizione`save(object $entity, bool $flush = true)`Persiste un'entità e opzionalmente esegue il flush`remove(object $entity, bool $flush = true)`Rimuove un'entità e opzionalmente esegue il flush`flush()`Esegue il flush sull'entity manager`beginTransaction()`Avvia una transazione`commit()`Conferma la transazione corrente`rollback()`Annulla la transazione corrente### Query

[](#query)

MetodoDescrizione`findOneById(int $id)`Trova un'entità per ID, restituisce `null` se non trovata`getOneById(int $id)`Trova un'entità per ID, lancia `RuntimeException` se non trovata`findByField(string $field, mixed $value, ?array $orderBy = null)`Trova tutte le entità che corrispondono al valore di un campo`findOneByField(array $criteria, ?array $orderBy = null)`Trova una singola entità che corrisponde al valore di un campo`findByCriteria(AttributeBag $parameters)`Trova entità con criteri di filtro e paginazione`countByCriteria(array $filters)`Conta le entità che corrispondono ai filtri dati### Helper per i criteri

[](#helper-per-i-criteri)

MetodoDescrizione`prepareFiltersCriteria(array $filters)`Racchiude un array di filtri in un `AttributeBag``getPaginatedAndFilteredCriteria(AttributeBag $parameters)`Costruisce un `Criteria` con filtri, ordinamento e paginazione`getFiltersCriteria(array $filters)`Da sovrascrivere nelle sottoclassi per definire i filtri specifici dell'entità`getBooleanCriteria(Criteria $criteria, string $field, ?string $value)`Aggiunge una condizione booleana (`'Y'`/`'N'`) a un `Criteria``getContainsFieldCriteria(Criteria $criteria, string $key, ?string $value)`Aggiunge una condizione LIKE su un singolo campo`getContainsFieldsCriteria(Criteria $criteria, array $keys, ?string $value)`Aggiunge una condizione LIKE su più campi (OR)`getEqualFieldCriteria(Criteria $criteria, string $key, ?string $value, ?Repository $repository)`Aggiunge una condizione di uguaglianza, con risoluzione opzionale del valore tramite un altro repository### Esempio di paginazione

[](#esempio-di-paginazione)

```
$bag = $this->prepareFiltersCriteria([
    'filters' => ['active' => 'Y'],
    'sortBy'  => ['name' => 'ASC'],
    'limit'   => 20,
    'offset'  => 0,
]);

$results = $this->findByCriteria($bag);
```

### Override di `getFiltersCriteria`

[](#override-di-getfilterscriteria)

```
public function getFiltersCriteria(array $filters): Criteria
{
    $criteria = Criteria::create();
    $criteria = $this->getBooleanCriteria($criteria, 'active', $filters['active'] ?? null);
    $criteria = $this->getContainsFieldCriteria($criteria, 'name', $filters['name'] ?? null);
    return $criteria;
}
```

Licenza
-------

[](#licenza)

MIT

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance82

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity44

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 ~0 days

Total

2

Last Release

96d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/79fa54e3be2c0b9470fcb9c4acebe78b15470c37028e91694ce380ccf66f0ada?d=identicon)[mattiavitalik3](/maintainers/mattiavitalik3)

---

Top Contributors

[![mattiavitalik3](https://avatars.githubusercontent.com/u/141140764?v=4)](https://github.com/mattiavitalik3 "mattiavitalik3 (2 commits)")

### Embed Badge

![Health badge](/badges/k3progetti-doctrine-repository/health.svg)

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

###  Alternatives

[easycorp/easyadmin-bundle

Admin generator for Symfony applications

4.3k17.5M376](/packages/easycorp-easyadmin-bundle)[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.

1155.2k](/packages/rcsofttech-audit-trail-bundle)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M196](/packages/sulu-sulu)[kimai/kimai

Kimai - Time Tracking

4.7k8.7k1](/packages/kimai-kimai)[open-dxp/opendxp

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

9317.2k55](/packages/open-dxp-opendxp)[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)

PHPackages © 2026

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