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(4mo ago)0171MITPHPPHP ^8.1

Since Mar 23Pushed 4mo 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 1w 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

35

—

LowBetter than 77% of packages

Maintenance74

Regular maintenance activity

Popularity6

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

141d 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.3k18.3M417](/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.

12017.1k](/packages/rcsofttech-audit-trail-bundle)[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.5k6.0M774](/packages/sylius-sylius)[pimcore/pimcore

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

3.8k3.9M534](/packages/pimcore-pimcore)[sulu/sulu

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

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

Kimai - Time Tracking

4.8k9.4k1](/packages/kimai-kimai)

PHPackages © 2026

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