PHPackages                             opus4-repo/framework - 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. [Framework](/categories/framework)
4. /
5. opus4-repo/framework

ActiveLibrary[Framework](/categories/framework)

opus4-repo/framework
====================

Framework for Opus 4

4.8.0.4(5mo ago)219.9k↑83.3%7[117 issues](https://github.com/OPUS4/framework/issues)[5 PRs](https://github.com/OPUS4/framework/pulls)6GPL-2.0+PHPCI passing

Since Apr 25Pushed 1mo ago6 watchersCompare

[ Source](https://github.com/OPUS4/framework)[ Packagist](https://packagist.org/packages/opus4-repo/framework)[ Docs](http://opus4.kobv.de)[ RSS](/packages/opus4-repo-framework/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (10)Dependencies (7)Versions (30)Used By (6)

OPUS 4 Framework Implementation
===============================

[](#opus-4-framework-implementation)

The project is using Composer for handling dependencies. The OPUS 4 Framework itself is a Composer package that is used by the OPUS 4 Application.

The OPUS 4 Framework is written in PHP. It also uses Ant for scripting common development actions. The Ant script (`build.xml`) is used for automation by a continous integration system.

Requirements
------------

[](#requirements)

The system must meet the following basic requirements in order to run the unit tests:

- PHP &lt; 7.2 (because of Zend Framework 1)
- MySQL &gt; 5.1

Dependencies
------------

[](#dependencies)

The dependencies are declared in `composer.json` and can be downloaded automatically using

```
composer install

```

or

```
php composer.phar install

```

Now the necessary packages are automatically downloaded and installed in the `vendor` directory.

For more information about Composer:

The script `bin/install-composer.sh` can be used to automatically download `composer.phar`, so the most recent version can be used. Composer is also available in most Linux distributions.

Running the Unit Tests
----------------------

[](#running-the-unit-tests)

In order to run the unit tests you need to create database and a configuration for the framework.

### Creating the database

[](#creating-the-database)

The database can be setup by executing the `setup.sh` script. It will create the configuration file and the database with the chosen database name.

```
cd framework
./bin/setup.sh

```

The database schema can be created using the `createdb.php` script.

```
ant create-database

```

The database access parameters are stored in `tests/config.ini` and needs to be configured with the correct user and database name.

### Configuring the Framework

[](#configuring-the-framework)

This step is optional and needs to be executed only if the previous steps didn't work.

The configuration file (`tests/config.ini`) can be created using the following command.

```
cd tests
./configure.sh

```

The script will ask you for values for the placeholders in the configuration template file, `tests/config.ini.template`.

PlaceholderDescriptiondb.admin.nameName of MySQL user with full access to OPUS database.db.params.passwordPassword for MySQL user.db.params.dbnameName of MySQL database for OPUS.### Creating the workspace folders

[](#creating-the-workspace-folders)

The workspace directory for testing can be created using

```
ant prepare

```

### Testing

[](#testing)

Tests can be run using the Composer

```
composer test

```

or executing phpunit directly

```
vendor/bin/phpunit -c tests

```

Coding Style
------------

[](#coding-style)

The basic formatting of the code can be checked automatically using

```
composer cs-check

```

Most basic styling errors can be fixed automatically using

```
composer cs-fix

```

###  Health Score

51

—

FairBetter than 96% of packages

Maintenance61

Regular maintenance activity

Popularity31

Limited adoption so far

Community30

Small or concentrated contributor base

Maturity74

Established project with proven stability

 Bus Factor2

2 contributors hold 50%+ of commits

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

Recently: every ~240 days

Total

20

Last Release

160d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/1cd34fe319a70c5373c10cf610135749b4894dec16ee47e94de09f1de5aef1cc?d=identicon)[opus4kobv](/maintainers/opus4kobv)

---

Top Contributors

[![j3nsch](https://avatars.githubusercontent.com/u/8101870?v=4)](https://github.com/j3nsch "j3nsch (1267 commits)")[![tklein23](https://avatars.githubusercontent.com/u/1956208?v=4)](https://github.com/tklein23 "tklein23 (748 commits)")[![saschaszott](https://avatars.githubusercontent.com/u/952735?v=4)](https://github.com/saschaszott "saschaszott (434 commits)")[![claussni](https://avatars.githubusercontent.com/u/205235?v=4)](https://github.com/claussni "claussni (414 commits)")[![henning-gerhardt](https://avatars.githubusercontent.com/u/2129672?v=4)](https://github.com/henning-gerhardt "henning-gerhardt (228 commits)")[![esmo](https://avatars.githubusercontent.com/u/346699?v=4)](https://github.com/esmo "esmo (92 commits)")[![soletan](https://avatars.githubusercontent.com/u/48088?v=4)](https://github.com/soletan "soletan (49 commits)")[![lgottwald](https://avatars.githubusercontent.com/u/4335172?v=4)](https://github.com/lgottwald "lgottwald (43 commits)")[![apvcf](https://avatars.githubusercontent.com/u/145443179?v=4)](https://github.com/apvcf "apvcf (39 commits)")[![maximilian-salomon](https://avatars.githubusercontent.com/u/32635839?v=4)](https://github.com/maximilian-salomon "maximilian-salomon (34 commits)")[![haogatyp](https://avatars.githubusercontent.com/u/13765467?v=4)](https://github.com/haogatyp "haogatyp (20 commits)")[![kaustabhbarman](https://avatars.githubusercontent.com/u/13511318?v=4)](https://github.com/kaustabhbarman "kaustabhbarman (20 commits)")[![extracts](https://avatars.githubusercontent.com/u/1410036?v=4)](https://github.com/extracts "extracts (15 commits)")[![Capoot](https://avatars.githubusercontent.com/u/1117072?v=4)](https://github.com/Capoot "Capoot (12 commits)")[![raminkhorsandi](https://avatars.githubusercontent.com/u/24913416?v=4)](https://github.com/raminkhorsandi "raminkhorsandi (8 commits)")[![bdressler](https://avatars.githubusercontent.com/u/14885406?v=4)](https://github.com/bdressler "bdressler (8 commits)")[![alw-bsz](https://avatars.githubusercontent.com/u/49676210?v=4)](https://github.com/alw-bsz "alw-bsz (4 commits)")

---

Tags

phpframeworkopus4

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/opus4-repo-framework/health.svg)

```
[![Health](https://phpackages.com/badges/opus4-repo-framework/health.svg)](https://phpackages.com/packages/opus4-repo-framework)
```

###  Alternatives

[hemp/presenter

Easy Model Presenters in Laravel

247592.6k1](/packages/hemp-presenter)[pestphp/pest-plugin-stressless

Stressless plugin for Pest

67792.6k16](/packages/pestphp-pest-plugin-stressless)[wpstarter/framework

The WpStarter Framework - Laravel Framework for WordPress

1810.1k4](/packages/wpstarter-framework)

PHPackages © 2026

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