PHPackages                             subugoe/oai-model - 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. subugoe/oai-model

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

subugoe/oai-model
=================

OAI-PMH Model

0.1.2(2y ago)0978↑12.5%1AGPL-3.0-or-laterPHPPHP ^8.1CI failing

Since Jun 21Pushed 1y ago2 watchersCompare

[ Source](https://github.com/subugoe/oai-model)[ Packagist](https://packagist.org/packages/subugoe/oai-model)[ RSS](/packages/subugoe-oai-model/feed)WikiDiscussions main Synced today

READMEChangelogDependencies (6)Versions (12)Used By (1)

OAI Model for OAI-PMH serialization
===================================

[](#oai-model-for-oai-pmh-serialization)

This library defines OAI-PMH models for an HTTP-interface to retrieve OAI data.

In a Symfony application, the models kann be filled programmatically like that for the `Identify`-verb:

```
// assume we injected some service at $this->oaiService
$identify = new new \Subugoe\OaiModel\Model\Identify\Identify();
$identification = new \Subugoe\OaiModel\Model\Identify\Identification();
$description = new \Subugoe\OaiModel\Model\Identify\Description();
$oaiIdentifier = new \Subugoe\OaiModel\Model\Identify\OaiIdentifier();
$oaiIdentifierTags = $oaiConfiguration['oai_identifier'];

$oaiIdentifier
    ->setNamespace($oaiIdentifierTags['xmlns'])
    ->setXsi($oaiIdentifierTags['xmlns:xsi'])
    ->setSchemaLocation($oaiIdentifierTags['xsi:schemaLocation'])
    ->setScheme($oaiIdentifierTags['scheme'])
    ->setDelimiter($oaiIdentifierTags['delimiter'])
    ->setRepositoryIdentifier($oaiIdentifierTags['repositoryIdentifier'])
    ->setSampleIdentifier($oaiIdentifierTags['sampleIdentifier']);

$description->setOaiIdentifier($oaiIdentifier);
$identificationTags = $oaiConfiguration['identification_tags'];
$oaiRequest = (new \Subugoe\OaiModel\Model\Request())
    ->setUrl($url)
    ->setVerb('Identify');
$identify
    ->setDate(new DateTimeImmutable())
    ->setRequest($oaiRequest);
$identification
    ->setAdminEmail($identificationTags['admin_email'])
    ->setBaseUrl($identificationTags['base_url'])
    ->setDeletedRecord($identificationTags['deleted_record'])
    ->setGranularity($identificationTags['granularity'])
    ->setProtocolVersion($identificationTags['protocol_version'])
    ->setRepositoryName($identificationTags['repository_name'])
    ->setEarliestDatestamp(new DateTimeImmutable('1998-03-01T00:00:00Z'))
    ->setDescription($description);

$identify->setIdentify($identification);
$xml = $this->serializer->serialize($identify, 'xml');
```

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance30

Infrequent updates — may be unmaintained

Popularity17

Limited adoption so far

Community12

Small or concentrated contributor base

Maturity53

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 84% 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 ~56 days

Recently: every ~132 days

Total

11

Last Release

908d ago

PHP version history (3 changes)0.0.1PHP ^7.4 || ^8.0 || ^8.1

0.1.0PHP ^8.0

0.1.2PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/b66e7711b4ec5bfb6ae525e2d0d04a510afb69a7073aaee926087af21219897f?d=identicon)[ipf](/maintainers/ipf)

---

Top Contributors

[![ipf](https://avatars.githubusercontent.com/u/557076?v=4)](https://github.com/ipf "ipf (21 commits)")[![j-panzer](https://avatars.githubusercontent.com/u/4922141?v=4)](https://github.com/j-panzer "j-panzer (4 commits)")

###  Code Quality

Static AnalysisPHPStan, Rector

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/subugoe-oai-model/health.svg)

```
[![Health](https://phpackages.com/badges/subugoe-oai-model/health.svg)](https://phpackages.com/packages/subugoe-oai-model)
```

###  Alternatives

[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M203](/packages/sulu-sulu)[oat-sa/tao-core

TAO core extension

66143.7k124](/packages/oat-sa-tao-core)[akeneo/pim-community-dev

Akeneo PIM, the future of catalog management is open!

1.0k624.1k85](/packages/akeneo-pim-community-dev)[commerceguys/tax

Tax library with a flexible data model, predefined tax rates, powerful resolving logic.

285781.2k](/packages/commerceguys-tax)[cron/cron-bundle

Symfony cron

1921.5M2](/packages/cron-cron-bundle)[prestashop/ps_facetedsearch

PrestaShop module ps\_facetedsearch

618.3M4](/packages/prestashop-ps-facetedsearch)

PHPackages © 2026

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