PHPackages                             jldev/ibexa-enhanced-migrations - 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. [Utility &amp; Helpers](/categories/utility)
4. /
5. jldev/ibexa-enhanced-migrations

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

jldev/ibexa-enhanced-migrations
===============================

Additional features that improve the native ibexa migrations bundle.

1.0.4(5mo ago)0294MITPHPPHP ^7.4 || ^8.0

Since Aug 27Pushed 5mo agoCompare

[ Source](https://github.com/jlecocq/ibexa-enhanced-migrations)[ Packagist](https://packagist.org/packages/jldev/ibexa-enhanced-migrations)[ RSS](/packages/jldev-ibexa-enhanced-migrations/feed)WikiDiscussions develop Synced today

READMEChangelogDependencies (1)Versions (7)Used By (0)

Ibexa enhanced migrations
=========================

[](#ibexa-enhanced-migrations)

This bundle provides additional migration features to the native Ibexa DXP migrations bundle (available in ibexa content, ibexa experience and ibexa commerce). It is compatible with Ibexa 4.x and 5.x.

Installation
------------

[](#installation)

```
composer require jldev/ibexa-enhanced-migrations:^1.0.0
```

Make sure the bundle is enabled in your `config/bundles.php` file:

```
    JL\IbexaEnhancedMigrations\IbexaEnhancedMigrationsBundle::class => ['all' => true],
```

Features
--------

[](#features)

Custom functions that can be used in migration files ([official documentation](https://doc.ibexa.co/en/5.0/content_management/data_migration/importing_data/#custom-functions)):

- `content_id_from_content_remote_id("remote_id")` : load a content by remote id and return its id
- `location_id_from_content_remote_id("remote_id")` : load a content by remote id and return its main location id
- `location_path_string_from_content_remote_id("remote_id")` : load a content by remote id and return its main location path string
- `content_id_from_location_remote_id("remote_id")` : load a location by remote id and return its content id
- `location_id_from_location_remote_id("remote_id")` : load a location by remote id and return its location id
- `location_path_string_from_location_remote_id("remote_id")` : load a location by remote id and return its path string
- `section_id_from_section_identifier("section_identifier")` : load a section by identifier and return its id
- `content_id_from_user_login("login")` : load a user by login and return its id
- `content_remote_id_from_user_login("login")` : load a user by login and return its content remote id
- `location_id_from_user_login("login")` : load a user by id and return its main location id
- `location_remote_id_from_user_login("login")` : load a user by id and return its main location remote id
- `location_remote_id_from_content_remote_id("remote_id")` : load a content by remote id and return its main location remote id
- `content_remote_id_from_location_remote_id("remote_id")` : load a location by remote id and return its content remote id
- `content_id_from_content_name("name")` : load a content by name and return its id (triggers an exception if name is not unique)

Example of usage in a migration file:

```
-
    type: role
    mode: update
    match:
        field: identifier
        value: 'Anonymous'
    policies:
        mode: append
        list:
            -
                module: content
                function: read
                limitations:
                    - { identifier: Node, values: [ '###XXX location_id_from_content_remote_id("my_remote_id") XXX###' ] }

```

###  Health Score

37

—

LowBetter than 81% of packages

Maintenance72

Regular maintenance activity

Popularity15

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity46

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 ~37 days

Total

5

Last Release

161d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/5475257c985dbc8331661adedd982d4a5df04df41f6e417bea86b96bd86a78fe?d=identicon)[jerome.lecocq](/maintainers/jerome.lecocq)

---

Top Contributors

[![jlecocq](https://avatars.githubusercontent.com/u/41451879?v=4)](https://github.com/jlecocq "jlecocq (11 commits)")

---

Tags

phpibexa

### Embed Badge

![Health badge](/badges/jldev-ibexa-enhanced-migrations/health.svg)

```
[![Health](https://phpackages.com/badges/jldev-ibexa-enhanced-migrations/health.svg)](https://phpackages.com/packages/jldev-ibexa-enhanced-migrations)
```

###  Alternatives

[imanghafoori/laravel-anypass

A minimal yet powerful package to help you in development.

21623.4k](/packages/imanghafoori-laravel-anypass)

PHPackages © 2026

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