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.2.0(1mo ago)01.1k↑285.7%1AGPL-3.0-or-laterPHPPHP &gt;= 8.4.0 &lt;=8.5.99CI failing

Since Jun 21Pushed 1mo 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 1w ago

READMEChangelogDependencies (12)Versions (13)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

49

—

FairBetter than 94% of packages

Maintenance92

Actively maintained with recent releases

Popularity18

Limited adoption so far

Community14

Small or concentrated contributor base

Maturity63

Established project with proven stability

 Bus Factor1

Top contributor holds 84.6% 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 ~134 days

Recently: every ~360 days

Total

12

Last Release

40d ago

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

0.1.0PHP ^8.0

0.1.2PHP ^8.1

0.2.0PHP &gt;= 8.4.0 &lt;=8.5.99

### 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 (22 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.4M236](/packages/sulu-sulu)[oat-sa/tao-core

TAO core extension

64147.9k151](/packages/oat-sa-tao-core)[commerceguys/tax

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

286786.9k](/packages/commerceguys-tax)[prestashop/ps_facetedsearch

PrestaShop module ps\_facetedsearch

628.5M4](/packages/prestashop-ps-facetedsearch)[api-platform/doctrine-common

Common files used by api-platform/doctrine-orm and api-platform/doctrine-odm

294.9M55](/packages/api-platform-doctrine-common)[dagger/dagger

Dagger PHP SDK

271.4k](/packages/dagger-dagger)

PHPackages © 2026

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