PHPackages                             suvera/winter-doctrine - 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. suvera/winter-doctrine

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

suvera/winter-doctrine
======================

Doctrine ORM/DBAL Support in the Winterboot framework

v1.0(1y ago)11MITPHP

Since Jul 1Pushed 1y ago1 watchersCompare

[ Source](https://github.com/suvera/winter-doctrine)[ Packagist](https://packagist.org/packages/suvera/winter-doctrine)[ Docs](https://suvera.github.io/)[ RSS](/packages/suvera-winter-doctrine/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (2)Versions (3)Used By (0)

WinterBoot Module - Doctrine
============================

[](#winterboot-module---doctrine)

Winter Doctrine is a module that provides easy configuration and access to Doctrine orm/dbal functionality from [WinterBoot](https://github.com/suvera/winter-boot) applications.

### About Doctrine:

[](#about-doctrine)

-

Setup
-----

[](#setup)

```
composer require suvera/winter-doctrine
```

To enable [Doctrine](https://www.doctrine-project.org/index.html) module in applications, append following code to **application.yml**

```
modules:
    - module: dev\winterframework\doctrine\DoctrineModule
      enabled: true
```

application.yml
---------------

[](#applicationyml)

in your **application.yml** file you might already have setup datasources like this.

In below example, there are two datasources configured here with names.

1. defaultdb (**isPrimary: true**)
2. admindb

```
datasource:
    -   name: defaultdb
        isPrimary: true
        url: "sqlite::memory:"
        username: xxxxx
        password: xxzzz
        doctrine:
            entityPaths:
                - /path/to/defaultdb/entities
            isDevMode: false

    -   name: admindb
        url: "mysql:host=localhost;port=3307;dbname=testdb"
        username: xxxxx
        password: xxzzz
        doctrine:
            entityPaths:
                - /path/to/admindb/entities
                - /path/other/admindb/entities2
            isDevMode: false
            driver:
            driverOptions:
            wrapperClass:
            driverClass:
        connection:
            persistent: true
            errorMode: ERRMODE_EXCEPTION
            columnsCase: CASE_NATURAL
            idleTimeout: 300
            autoCommit: true
            defaultrowprefetch: 100
```

ORM/DBAL beans can be Autowired. No need to created them manually.

Bean names are suffixed as following way. Autowired code should input bean name.

Bean TypeBean NameORM EntityManager{name}-doctrine-emORM Tranaction Manager{name}-doctrine-emtxnDBAL Connection{name}-doctrine-dbalDBAL Tranaction Manager{name}-doctrine-dbaltxnExamples below

### ORM EntityManager

[](#orm-entitymanager)

```
// ORM - Primary (defaultdb)
#[Autowired]
private EntityManager $defaultEm;
// Alternatively coded as: #[Autowired("defaultdb-doctrine-em")]

// ORM
#[Autowired("admindb-doctrine-em")]
private EntityManager $adminEm;
```

### ORM Transaction Managers

[](#orm-transaction-managers)

```
// ORM - Primary Tranaction Manager (defaultdb)
#[Autowired]
private EmTransactionManager $defaultTxnManager;
// Alternatively coded as: #[Autowired("defaultdb-doctrine-emtxn")]

// ORM Tranaction Manager
#[Autowired("admindb-doctrine-emtxn")]
private EmTransactionManager $adminTxnManager;
```

### DBAL Connection

[](#dbal-connection)

```
// DBAL Connection - Primary (defaultdb)
#[Autowired]
private Connection $defaultConn;
// Alternatively coded as: #[Autowired("defaultdb-doctrine-dbal")]

// DBAL Connection
#[Autowired("admindb-doctrine-dbal")]
private Connection $adminConn;
```

### DBAL Transaction Managers

[](#dbal-transaction-managers)

```
// DBAL - Primary Tranaction Manager (defaultdb)
#[Autowired]
private DbalTransactionManager $defaultTxnManager;
// Alternatively coded as: #[Autowired("defaultdb-doctrine-dbaltxn")]

// DBAL Tranaction Manager
#[Autowired("admindb-doctrine-dbaltxn")]
private DbalTransactionManager $adminTxnManager;
```

How to use Transcations - as AOP
--------------------------------

[](#how-to-use-transcations---as-aop)

Articles About winter-boot framework.

1. [Transaction Management](https://github.com/suvera/winter-boot/blob/master/docs/transactions.md)
2. [Aspect Oriented Magic](https://github.com/suvera/winter-boot/blob/master/docs/custom_aop.md)

Executing something under ORM/DBAL transaction is pretty easy by just using **Transactional** annotation

```
#[Autowired("admindb-doctrine-em")]
private EntityManager $adminEm;

#[Transactional(transactionManager: "admindb-doctrine-emtxn")]
public function executeInTransaction(): void {
    // do something here
    foreach ($objects as $obj) {
        $this->adminEm->persist($obj);
    }
    // do more things here
}
```

###  Health Score

23

—

LowBetter than 27% of packages

Maintenance34

Infrequent updates — may be unmaintained

Popularity3

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity41

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

Unknown

Total

1

Last Release

677d ago

### Community

Maintainers

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

---

Top Contributors

[![suvera](https://avatars.githubusercontent.com/u/3530406?v=4)](https://github.com/suvera "suvera (5 commits)")

---

Tags

php8 frameworkwinter-bootwinterboot

### Embed Badge

![Health badge](/badges/suvera-winter-doctrine/health.svg)

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

###  Alternatives

[laravel-doctrine/orm

An integration library for Laravel and Doctrine ORM

8425.3M86](/packages/laravel-doctrine-orm)[damienharper/auditor-bundle

Integrate auditor library in your Symfony projects.

4542.8M](/packages/damienharper-auditor-bundle)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[doctrine/phpcr-bundle

Symfony DoctrinePHPCRBundle

1602.6M41](/packages/doctrine-phpcr-bundle)[bolt/core

🧿 Bolt Core

585142.5k54](/packages/bolt-core)[bartlett/php-compatinfo-db

Reference Database of all functions, constants, classes, interfaces on PHP standard distribution and about 110 extensions

1183.0k1](/packages/bartlett-php-compatinfo-db)

PHPackages © 2026

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