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

ActiveLibrary

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

OAI-PMH Model

0.1.2(2y ago)0883↑50%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 1mo ago

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

31

—

LowBetter than 68% of packages

Maintenance32

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

861d 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

[sylius/sylius

E-Commerce platform for PHP, based on Symfony framework.

8.4k5.6M651](/packages/sylius-sylius)[sulu/sulu

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

1.3k1.3M152](/packages/sulu-sulu)[liuggio/fastest

Simple parallel testing execution... with some goodies for functional tests.

4825.6M26](/packages/liuggio-fastest)[horstoeko/zugferd

A library for creating and reading european electronic invoices

4044.3M18](/packages/horstoeko-zugferd)[sonata-project/entity-audit-bundle

Audit for Doctrine Entities

644989.8k1](/packages/sonata-project-entity-audit-bundle)[doctrine/phpcr-odm

PHP Doctrine Content Repository Object Document Mapper (ODM) provides transparent persistence for PHP objects.

1811.5M97](/packages/doctrine-phpcr-odm)

PHPackages © 2026

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