# propelorm/Propel2

Propel2 is an open-source high-performance Object-Relational Mapping (ORM) for modern PHP

Repository: https://github.com/propelorm/Propel2
Canonical: https://ross.abutalabs.com/products/propel2
Homepage: http://propelorm.org/
Language: PHP
License: MIT
License Family: permissive
Topics: php, orm
Last push: 2026-08-21T10:05:22+00:00

## Health v2 (maintenance only)
Score: 94/100 (v2, computed 2026-09-02T17:46:02.011165+00:00)
- activity 98, release rhythm 86, longevity 100
- inputs: {"age_days": 5445, "days_push": 12, "days_rel": 12, "gap_med": 58, "n_releases_24m": 2}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1270, forks 403 (observed 2026-08-28T04:04:11.826830+00:00)

## What it is
Propel2 is an open-source, high-performance Object-Relational Mapping (ORM) library for modern PHP (7.4+/PHP8), built on code generation and Symfony components. It provides Active Record and query classes, schema migrations, reverse engineering of existing databases, and a behavior system for reusable model features.

## Use cases
- map php objects to mysql or postgresql tables
- generate php model classes from an xml schema
- run database schema migrations without losing data
- reverse engineer an orm from an existing database
- build crud queries with a fluent query builder
- add reusable behaviors like sluggable or timestampable to models
- use an orm with symfony or silex

## When to choose
- you want a fast, code-generation-based ORM in PHP with IDE-friendly generated getters/setters
- you need schema migrations and reverse engineering for MySQL, SQLite, or PostgreSQL
- you prefer Active Record patterns and a behavior/plugin system
- you're integrating an ORM into Symfony or Silex applications

## When to avoid
- you prefer Doctrine's entity manager / data mapper approach, the dominant PHP ORM ecosystem
- you need a database unsupported by Propel (e.g., beyond MySQL, PostgreSQL, SQLite, MSSQL, Oracle)
- you want a runtime-only ORM without a code generation build step
- you need NoSQL or non-SQL data mapping

## Facets
- artifact type: library
- maturity: active
- function: orm, database, database-driver, cli
- domain: databases, web-development, backend, developer-tools
- platform: php, cross-platform, cli
- tags: active-record, query-builder, schema-migration, reverse-engineering, code-generation, mysql, postgresql, sqlite, symfony-components

## Member repositories
- propelorm/Propel2 (main) score 94

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:04:11.826830+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T05:03:27.633137+00:00, confidence not recorded.
  - readme: https://github.com/propelorm/Propel2 (fetched 2026-08-28T04:04:11.826830+00:00, sha daaf3fb0d5d2)
  - homepage: http://propelorm.org/ (fetched 2026-08-29T12:14:57.113377+00:00, sha 55a469bb208b)
  - site_page: http://propelorm.org/documentation (fetched 2026-08-29T12:14:57.116018+00:00, sha 7ee4ddf9edd4)
  - site_page: http://propelorm.org/documentation/01-installation.html (fetched 2026-08-29T12:14:57.118053+00:00, sha cab3aeba1c00)
  - site_page: http://propelorm.org/about-us.html (fetched 2026-08-29T12:14:57.119833+00:00, sha a116f6b643a5)
- Data as of 2026-08-30T08:39:29.467469+00:00.
