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.10.1(1mo ago)222.1k↑373.3%7[119 issues](https://github.com/OPUS4/framework/issues)[5 PRs](https://github.com/OPUS4/framework/pulls)8GPL-2.0+PHPPHP &gt;=8.1CI 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 2d ago

READMEChangelog (10)Dependencies (20)Versions (37)Used By (8)

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 continuous integration system.

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

58

—

FairBetter than 98% of packages

Maintenance70

Regular maintenance activity

Popularity33

Limited adoption so far

Community33

Small or concentrated contributor base

Maturity84

Battle-tested with a long release history

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

Recently: every ~7 days

Total

26

Last Release

46d 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 (1280 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 (6 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

[open-dxp/opendxp

Content &amp; Product Management Framework (CMS/PIM)

9421.6k61](/packages/open-dxp-opendxp)[oro/platform

Business Application Platform (BAP)

645143.5k115](/packages/oro-platform)[pimcore/pimcore

Content &amp; Product Management Framework (CMS/PIM/E-Commerce)

3.8k3.8M508](/packages/pimcore-pimcore)[sulu/sulu

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

1.3k1.4M203](/packages/sulu-sulu)[prestashop/prestashop

PrestaShop is an Open Source e-commerce platform, committed to providing the best shopping cart experience for both merchants and customers.

9.1k17.8k](/packages/prestashop-prestashop)[concrete5/core

Concrete core subtree split

20166.1k52](/packages/concrete5-core)

PHPackages © 2026

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