PHPackages                             discoverygarden/foxml - 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. [Parsing &amp; Serialization](/categories/parsing)
4. /
5. discoverygarden/foxml

ActiveDrupal-module[Parsing &amp; Serialization](/categories/parsing)

discoverygarden/foxml
=====================

v1.8.2(6mo ago)0308—0%22GPL-3.0-or-laterPHP

Since Mar 4Pushed 6mo ago4 watchersCompare

[ Source](https://github.com/discoverygarden/foxml)[ Packagist](https://packagist.org/packages/discoverygarden/foxml)[ RSS](/packages/discoverygarden-foxml/feed)WikiDiscussions main Synced 1mo ago

READMEChangelog (1)Dependencies (1)Versions (29)Used By (2)

FOXML Utilities
===============

[](#foxml-utilities)

[![](https://github.com/discoverygarden/foxml/actions/workflows/auto_lint.yml/badge.svg)](https://github.com/discoverygarden/foxml/actions/workflows/auto_lint.yml/badge.svg)[![](https://github.com/discoverygarden/foxml/actions/workflows/auto-semver.yml/badge.svg)](https://github.com/discoverygarden/foxml/actions/workflows/auto-semver.yml/badge.svg)[![License: GPL v3](https://camo.githubusercontent.com/48bf9b56d44f38db53ce21294cf0b9487d0a3734ab3ba1fe4c69858ae20db2c1/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d47504c76332d626c75652e737667)](https://www.gnu.org/licenses/gpl-3.0)

Introduction
------------

[](#introduction)

Provides migration plugins and utility scripts to facilitate I7 to Modern Islandora migration.

Table of Contents
-----------------

[](#table-of-contents)

- [Features](#features)
- [Installation](#installation)
- [Configuration](#configuration)
- [Troubleshooting/Issues](#troubleshootingissues)
- [Maintainers and Sponsors](#maintainers-and-sponsors)
- [Development/Contribution](#developmentcontribution)
- [License](#license)

Features
--------

[](#features)

### Migrate source plugin `foxml`

[](#migrate-source-plugin-foxml)

Source `foxml` plugin that iterates over an "objectStore" implementation.

### Migrate process plugin `foxml.parse`

[](#migrate-process-plugin-foxmlparse)

Given the path to the foxml, this plugin will parse the contents for migration.

### Utility Scripts

[](#utility-scripts)

Scripts to analyse and export metadata from an FCREPO3 instance. Refer to the [README](https://github.com/discoverygarden/foxml/blob/main/scripts/README.md) for more details.

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

[](#installation)

Install as usual, see [this](https://www.drupal.org/docs/extending-drupal/installing-modules) for further information.

### Other modules of particular interest

[](#other-modules-of-particular-interest)

- [`akubra_adapter`](https://github.com/discoverygarden/akubra_adapter/): Integrates with this module to allow access directly into data stored in an [Akubra](https://wiki.lyrasis.org/display/AKUBRA) file system structure making use of [Fedora 3's Hash-based ID mapping](https://github.com/fcrepo3/fcrepo/blob/37df51b9b857fd12c6ab8269820d406c3c4ad774/fcrepo-server/src/main/java/org/fcrepo/server/storage/lowlevel/akubra/HashPathIdMapper.java#L17-L68)

Configuration
-------------

[](#configuration)

Configuration to use the "Archival FOXML" migration:

KeyDescriptionDefault`foxml_archival_object_basepath`The path to the export of archival FOXML over which to iterate.`private://exports``foxml_archival_object_file_pattern`A regex pattern against which to match files.`NULL` (none necessary; defaulting to iterate over *ALL* files)Usage/Examples
--------------

[](#usageexamples)

Troubleshooting/Issues
----------------------

[](#troubleshootingissues)

Having problems or solved a problem? Contact [discoverygarden](http://support.discoverygarden.ca).

### Known Issues:

[](#known-issues)

- `php://filter` use can lead to large memory usage
    - we should probably look at rolling another stream wrapper to wrap up our usage of OpenSSL to Base64 decode
- There are some expensive assertions made in the code, particularly regarding binary datastream content with digests. Assertions should typically be disabled in production environments, so these shouldn't have any impact on execution there; however, in development environments, could potentially lead to issues, especially with larger datastreams, exacerbated by the `php://filter` usage to Base64-decode the contents
    - hesitant to remove the assertions without having any other mechanism to
    - could instead roll some unit tests?

Maintainers and Sponsors
------------------------

[](#maintainers-and-sponsors)

Current maintainers:

- [discoverygarden](http://www.discoverygarden.ca)

Sponsors:

- [FLVC](https://www.flvc.org)

Development/Contribution
------------------------

[](#developmentcontribution)

If you would like to contribute to this module, please check out github's helpful [Contributing to projects](https://docs.github.com/en/get-started/quickstart/contributing-to-projects) documentation and Islandora community's [Documention for developers](https://islandora.github.io/documentation/contributing/CONTRIBUTING/#github-issues) to create an issue or pull request and/or contact [discoverygarden](http://support.discoverygarden.ca).

License
-------

[](#license)

[GPLv3](http://www.gnu.org/licenses/gpl-3.0.txt)

###  Health Score

44

—

FairBetter than 91% of packages

Maintenance72

Regular maintenance activity

Popularity16

Limited adoption so far

Community24

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 62.7% 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 ~60 days

Recently: every ~87 days

Total

23

Last Release

185d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/ed79bbc35ed0aaee2f603c6f16885fb01e203941eea0cd63013f9f6185df6c30?d=identicon)[adam-vessey](/maintainers/adam-vessey)

![](https://www.gravatar.com/avatar/49d799e416ff30e90b07d1b7b6a487dfe945ae884c53747de4724439965d7904?d=identicon)[lutaylor](/maintainers/lutaylor)

![](https://www.gravatar.com/avatar/454136e389341c2a9c22dfba3107e09e2f8653807185bb213c5272efa9b93864?d=identicon)[willtp87](/maintainers/willtp87)

---

Top Contributors

[![adam-vessey](https://avatars.githubusercontent.com/u/607975?v=4)](https://github.com/adam-vessey "adam-vessey (279 commits)")[![nchiasson-dgi](https://avatars.githubusercontent.com/u/53783039?v=4)](https://github.com/nchiasson-dgi "nchiasson-dgi (40 commits)")[![jordandukart](https://avatars.githubusercontent.com/u/1337738?v=4)](https://github.com/jordandukart "jordandukart (35 commits)")[![chrismacdonaldw](https://avatars.githubusercontent.com/u/31731869?v=4)](https://github.com/chrismacdonaldw "chrismacdonaldw (33 commits)")[![JojoVes](https://avatars.githubusercontent.com/u/19390668?v=4)](https://github.com/JojoVes "JojoVes (27 commits)")[![IAMlKeno](https://avatars.githubusercontent.com/u/22577721?v=4)](https://github.com/IAMlKeno "IAMlKeno (20 commits)")[![willtp87](https://avatars.githubusercontent.com/u/688918?v=4)](https://github.com/willtp87 "willtp87 (7 commits)")[![nigelgbanks](https://avatars.githubusercontent.com/u/487373?v=4)](https://github.com/nigelgbanks "nigelgbanks (3 commits)")[![bibliophileaxe](https://avatars.githubusercontent.com/u/18718388?v=4)](https://github.com/bibliophileaxe "bibliophileaxe (1 commits)")

---

Tags

drupaldrupal-moduleislandoramigrationparser

### Embed Badge

![Health badge](/badges/discoverygarden-foxml/health.svg)

```
[![Health](https://phpackages.com/badges/discoverygarden-foxml/health.svg)](https://phpackages.com/packages/discoverygarden-foxml)
```

###  Alternatives

[mtdowling/jmespath.php

Declaratively specify how to extract elements from a JSON document

2.0k472.8M135](/packages/mtdowling-jmespathphp)[opis/closure

A library that can be used to serialize closures (anonymous functions) and arbitrary data.

2.6k230.0M282](/packages/opis-closure)[masterminds/html5

An HTML5 parser and serializer.

1.8k242.8M226](/packages/masterminds-html5)[sabberworm/php-css-parser

Parser for CSS Files written in PHP

1.8k191.2M63](/packages/sabberworm-php-css-parser)[michelf/php-markdown

PHP Markdown

3.5k52.4M343](/packages/michelf-php-markdown)[jms/metadata

Class/method/property metadata management in PHP

1.8k152.8M88](/packages/jms-metadata)

PHPackages © 2026

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