awesome-repositories.com
Blog
MCP
awesome-repositories.com

Discover the best open-source repositories with AI-powered search.

ExploreCurated searchesOpen-source alternativesSelf-hosted softwareBlogSitemap
ProjectMCP serverAboutHow we rankPress
LegalPrivacyTerms
© 2026 Bringes Technology SRL·VAT RO45896025·hello@awesome-repositories.com
doctrine avatar

doctrine/persistence

0
View on GitHub↗
4,049 stars·75 forks·PHP·MIT·21 viewswww.doctrine-project.org/projects/persistence.html↗

Persistence

This project is an object persistence library and data mapper abstraction layer. It provides a set of shared interfaces and base classes designed to decouple domain logic from specific object mapper implementations, separating the business domain layer from the underlying data access implementation.

The library includes a database schema management and migration tool for defining, versioning, and deploying incremental updates to database structures across different environments. It also functions as a document database mapper, translating object states into structured document formats for storage and retrieval.

The system covers a broad range of persistence capabilities, including the management of object collections and the ability to instantiate objects without invoking constructors to restore state. It also provides utilities for database schema versioning and the dispatching of custom events to allow decoupled components to react to persistence changes.

Features

  • Object Mappers - Provides an abstraction layer that maps application data models to database structures to simplify storage and retrieval.
  • Persistence Abstractions - Implements a comprehensive persistence abstraction layer that decouples domain logic from specific database storage backends.
  • Data Abstraction Layers - Defines interfaces that decouple application logic from specific database storage backends.
  • Data Persistence and Storage - Implements architectures dedicated to the durable storage and long-term management of object-oriented digital information.
  • Generic Base Mapper Interfaces - Provides generic base mapper interfaces to ensure consistent behavior across different object mapping implementations.
  • Persistence Provider Interfaces - Provides standardized interfaces that allow the implementation of custom storage backends for the persistence layer.
  • Database Schema Migrations - Automates the application of versioned updates to database schemas to maintain structural compatibility with application code.
  • Database Schema Managers - Provides a declarative toolset for defining and managing database structures across different environments.
  • Object-Document Mappers - Maps application objects to document database structures using translation logic.
  • Object Persistence - Defines shared interfaces for saving and retrieving complex objects from persistent data stores.
  • Object Persistence Tools - Provides mechanisms for saving and restoring the internal state of language-native objects to and from external storage.
  • Schema Version Tracking - Tracks database schema changes by recording unique identifiers of applied updates in a database table.
  • Database Schema Migrations - Includes a system for versioning and applying incremental database schema updates to maintain consistency across environments.
  • Object-to-Document Mappings - Translates object states into structured document formats for storage and retrieval within document-oriented databases.
  • Domain Data Presentation Layers - Implements architectural patterns that separate an application into domain, data, and presentation layers.
  • Domain-Persistence Decoupling - Separates business entity definitions from database schemas to allow domain rules to drive the model.
  • Document Database Modeling - Provides a framework for mapping application data structures to document-oriented database formats.
  • Schema Migration Executors - Applies incremental updates to a database schema to migrate it to a target version without losing data.
  • Object Collection Management - Implements specialized methods for handling groups of objects during data persistence operations.
  • Reflection-Based Instantiators - Utilizes reflection to instantiate class objects without invoking constructors to restore their state from storage.
  • Persistence Event Dispatchers - Dispatches custom signals throughout the application lifecycle to let decoupled components react to persistence changes.
  • PHP Event Dispatchers - Implements PHP libraries that dispatch named events to registered listeners for decoupled communication.

Star history

Star history chart for doctrine/persistenceStar history chart for doctrine/persistence

How this analysis was created: This summary and feature list are AI-generated from collected project material and can contain mistakes. Stars, license and language are imported from GitHub. Inclusion does not mean that we have tested or audited this project. Check the source documentation for any feature you depend on. Learn more on our About page.

AI search

Explore more awesome repositories

Describe what you need in plain English — the AI ranks thousands of curated open-source projects by relevance.

Start searching with AI

Projects sharing features with Persistence

These projects share indexed features with Persistence. Shared tags can include platform or build tooling; verify the primary use case before treating a result as a replacement.
  • doctrine/ormdoctrine avatar

    doctrine/orm

    10,172View on GitHub↗

    Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It uses the data mapper and identity map patterns to decouple the in-memory object model from the database schema, allowing developers to manage data persistence without writing manual SQL. The project features a dedicated object-oriented query language and programmatic builder for retrieving data based on entities rather than tables. It implements a unit-of-work system to track object changes during a request and synchronize them via atomic transactions. The capability surface inc

    PHPhacktoberfest
    View on GitHub↗10,172
  • mattes/migratemattes avatar

    mattes/migrate

    2,282View on GitHub↗

    This project is a database schema migration engine that provides a command-line interface and a library for managing sequential structural changes. It functions as a version control utility for database schemas, enabling the application, reversion, and synchronization of incremental updates across development and production environments. The tool distinguishes itself through a driver-based abstraction layer that supports a wide range of relational and non-relational storage systems. It maintains schema consistency by using a dedicated metadata table to track versions and prevent concurrent up

    Goaws-s3cassandracrate
    View on GitHub↗2,282
  • doctrine/instantiatordoctrine avatar

    doctrine/instantiator

    10,999View on GitHub↗

    Instantiator is a PHP library designed to create class instances without invoking their constructors. It uses the PHP Reflection API to allocate objects in memory and initialize them in a predefined state, bypassing standard constructor logic. The project functions as a data hydration tool and a testing helper. It enables the population of PHP objects from external data sources by mapping values directly to properties, regardless of whether those properties are public, protected, or private. This capability allows for the generation of objects in specific internal states for unit tests withou

    PHP
    View on GitHub↗10,999
  • threedotslabs/wild-workouts-go-ddd-exampleThreeDotsLabs avatar

    ThreeDotsLabs/wild-workouts-go-ddd-example

    6,348View on GitHub↗

    This project is a reference implementation of Domain-Driven Design, Clean Architecture, and Command Query Responsibility Segregation (CQRS) patterns using the Go programming language. It serves as a sample application to demonstrate how to decouple core domain rules from infrastructure and delivery mechanisms. The system is built as a gRPC microservices architecture, utilizing type-safe communication and service contracts. It implements an event-driven architecture to manage eventual consistency and asynchronous processing, specifically employing the Outbox pattern to ensure reliable messagin

    Goclean-architecturecqrsddd
    View on GitHub↗6,348
Compare all 30 related projects→

Frequently asked questions

What does doctrine/persistence do?

This project is an object persistence library and data mapper abstraction layer. It provides a set of shared interfaces and base classes designed to decouple domain logic from specific object mapper implementations, separating the business domain layer from the underlying data access implementation.

What are the main features of doctrine/persistence?

The main features of doctrine/persistence are: Object Mappers, Persistence Abstractions, Data Abstraction Layers, Data Persistence and Storage, Generic Base Mapper Interfaces, Persistence Provider Interfaces, Database Schema Migrations, Database Schema Managers.

Which projects share features with doctrine/persistence?

Projects with overlapping indexed features include: doctrine/orm — Doctrine ORM is a PHP object-relational mapper that connects application objects to relational database tables. It… mattes/migrate — This project is a database schema migration engine that provides a command-line interface and a library for managing… doctrine/instantiator — Instantiator is a PHP library designed to create class instances without invoking their constructors. It uses the PHP… threedotslabs/wild-workouts-go-ddd-example — This project is a reference implementation of Domain-Driven Design, Clean Architecture, and Command Query… thuss/standalone-migrations — Standalone Migrations is a Ruby-based utility that provides database schema management and migration capabilities… goravel/goravel — Goravel is a full-featured development scaffold and framework for building web applications, REST APIs, and gRPC…