PHPackages                             joomla-x/orm - 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. joomla-x/orm

ActiveJoomla-package[Database &amp; ORM](/categories/database)

joomla-x/orm
============

Joomla ORM Package

4116PHP

Since Nov 14Pushed 8y ago1 watchersCompare

[ Source](https://github.com/joomla-x/orm)[ Packagist](https://packagist.org/packages/joomla-x/orm)[ RSS](/packages/joomla-x-orm/feed)WikiDiscussions master Synced 2w ago

READMEChangelogDependenciesVersions (1)Used By (0)

The ORM Package [![Build Status](https://camo.githubusercontent.com/03fe436f74b7dea0985c38f89437da51216855f6c2b0e97f7258ef4ee02facfe/68747470733a2f2f7472617669732d63692e6f72672f6a6f6f6d6c612d782f6f726d2e706e673f6272616e63683d6d6173746572)](https://travis-ci.org/joomla-x/orm)
===================================================================================================================================================================================================================================================================================

[](#the-orm-package-)

[![Latest Stable Version](https://camo.githubusercontent.com/06f6494cf8369e87e9d65a2ccc46d834bd156f46e23e0337a0af9aea674145f4/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612d782f6f726d2f762f737461626c65)](https://packagist.org/packages/joomla-x/orm)[![Total Downloads](https://camo.githubusercontent.com/24956abea1e31b5386c88d936a18490b5774f663aa886d8ef4debd22b17c509d/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612d782f6f726d2f646f776e6c6f616473)](https://packagist.org/packages/joomla-x/orm)[![Latest Unstable Version](https://camo.githubusercontent.com/ca1a9af2bc7032b7ecbe145efba1920f92940e385413d258537131f651930dcf/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612d782f6f726d2f762f756e737461626c65)](https://packagist.org/packages/joomla-x/orm)[![License](https://camo.githubusercontent.com/5522305c558427a689474180b1117c9266ea071daaa634016ec4e827db8e4f18/68747470733a2f2f706f7365722e707567782e6f72672f6a6f6f6d6c612d782f6f726d2f6c6963656e7365)](https://packagist.org/packages/joomla-x/orm)

The Joomla! **ORM** package provides a storage access abstraction using repositories for your application.

**This package is in a pre-alpha state; use it to get familiar with it and to improve it, but do not use it in production, unless you really know what you are doing.**

Installation via Composer
-------------------------

[](#installation-via-composer)

Simply run the following from the command line in your project's root directory (where your `composer.json` file is):

```
composer require joomla-x/orm:dev-master
```

Contributing
------------

[](#contributing)

Please review  for information on how to contribute to the Framework's development.

ToDo
----

[](#todo)

- Implement handling of entity role
    - Don't create reverse relations for `lookup` tables
- Implement fieldset handling
- Relation Handling
    - Implement belongsToMany handling on installation
    - Implement handling of belongsToMany relations in UnitOfWork::checkForChangedRelations()
    - Implement handling of hasMany relations in UnitOfWork::checkForChangedRelations()
    - Implement handling of hasManyThrough relations in UnitOfWork::checkForChangedRelations()
- Move Entity DTD to a Joomla repository when it is stable enough
- Replace DTD with XMLSchema, so `` can be used to specify attributes that are specific to certain field types. See [this StackOverflow answer](https://stackoverflow.com/questions/27878402/how-to-make-type-depend-on-attribute-value-using-conditional-type-assignment#answer-27880329) for more information.
- Apply validation according to definition in `EntityBuilder::castToEntity()`
- Use entity name instead of table name in `EntityBuilder::resolveHasManyThrough()`
- Add `__call()` method to Repository to proxy any `get*()` methods from the DataMappers
- Implement handler selection according to entity definition
- Implement `entity="@field_name"` syntax for belongsTo relations

###  Health Score

23

—

LowBetter than 26% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity14

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.

### Community

Maintainers

![](https://www.gravatar.com/avatar/84f7f05685e84e3fe971d8d005bb74e766204799c50a7b45036af27436cecddc?d=identicon)[GreenCape](/maintainers/GreenCape)

---

Top Contributors

[![nibra](https://avatars.githubusercontent.com/u/827605?v=4)](https://github.com/nibra "nibra (49 commits)")

---

Tags

databasedatamapperexperimentaljoomlajoomla-xormrepository

### Embed Badge

![Health badge](/badges/joomla-x-orm/health.svg)

```
[![Health](https://phpackages.com/badges/joomla-x-orm/health.svg)](https://phpackages.com/packages/joomla-x-orm)
```

###  Alternatives

[jdorn/sql-formatter

a PHP SQL highlighting library

3.9k117.2M114](/packages/jdorn-sql-formatter)[propel/propel1

Propel is an open-source Object-Relational Mapping (ORM) for PHP5.

8351.6M87](/packages/propel-propel1)[jfelder/oracledb

Oracle DB driver for Laravel

11518.4k](/packages/jfelder-oracledb)

PHPackages © 2026

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