PHPackages                             os2forms/os2forms - 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. os2forms/os2forms

ActiveDrupal-module[Utility &amp; Helpers](/categories/utility)

os2forms/os2forms
=================

Drupal 10 OS2Form module provides advanced webform functionality for Danish Municipalities

5.1.0(1mo ago)59.9k↓78.8%3[78 issues](https://github.com/OS2Forms/os2forms/issues)[7 PRs](https://github.com/OS2Forms/os2forms/pulls)10EUPL-1.2PHPPHP ^8.1CI failing

Since Dec 18Pushed 1w ago6 watchersCompare

[ Source](https://github.com/OS2Forms/os2forms)[ Packagist](https://packagist.org/packages/os2forms/os2forms)[ RSS](/packages/os2forms-os2forms/feed)WikiDiscussions develop Synced 2d ago

READMEChangelog (10)Dependencies (132)Versions (130)Used By (10)

OS2Forms Drupal module [![Build Status](https://camo.githubusercontent.com/c67ce3edd4d2f2e7810b3da929bc5dd52037b82b7b48ed6d6ecefdd9f9b0a9d5/68747470733a2f2f7472617669732d63692e6f72672f4f5332466f726d732f6f7332666f726d732e7376673f6272616e63683d382e78)](https://travis-ci.org/OS2Forms/os2forms)
===================================================================================================================================================================================================================================================================================================

[](#os2forms-drupal-module--)

Install
-------

[](#install)

OS2Forms Drupal 10 module is available to download via composer.

```
composer require os2forms/os2forms
drush pm:install os2forms
```

If you don't have Drupal installed on you server, you will to need install it first. Read more about [how to install drupal core](https://www.drupal.org/docs/getting-started/installing-drupal).

To get more benefits on your Drupal project we recommend you use [OS2web](https://packagist.org/packages/os2web/os2web) as installation profile for Drupal.

You can easy download and install OS2web installation profile to your composer based Drupal project with commands:

```
composer require os2web/os2web
drush site:install os2web --db-url=mysql://db_user:db_pass@mysql_host/db_name --locale=da --site-name="OS2Forms" --account-pass=admin -y
```

Update
------

[](#update)

Updating process for OS2forms module is similar to usual Drupal 10 module. Use Composer's built-in command for listing packages that have updates available:

```
composer outdated os2forms/os2forms
```

Automated testing and code quality
----------------------------------

[](#automated-testing-and-code-quality)

See [OS2Forms testing and CI information](https://os2forms.github.io/os2forms-docs/for-developers.html#testing-and-ci)

Contribution
------------

[](#contribution)

The OS2Forms project is open for new features and bugfixes. If you have any suggestion, or you found a bug in the project, you are very welcome to create an issue in github repository issue tracker. For issue description was ask that you will provide clear and sufficient information about your feature request or bug report.

### Code review policy

[](#code-review-policy)

See [OS2Forms code review policy](https://os2forms.github.io/os2forms-docs/for-developers.html#code-review)

### Git name convention

[](#git-name-convention)

See [OS2Forms git name convention](https://os2forms.github.io/os2forms-docs/for-developers.html#git-guideline)

Important notes
---------------

[](#important-notes)

### Webforms

[](#webforms)

Each webform, along with all its settings, is stored as configuration in the database and can be exported as a `yml` file through Drupal's configuration management system, making it trackable via `git`.

This means that webform settings in the Drupal database will be synchronized (exported/imported) with the state defined in `yml` files located in the configuration folder of your git repository. Without taking the appropriate precautions, webforms may be deleted or reverted to the state captured in those `yml` files during synchronization.

To prevent this, we recommend using the `Config ignore`-[module](https://www.drupal.org/project/config_ignore), which allows you to exclude specific settings from the configuration management export/import process.

### Serviceplatformen plugins

[](#serviceplatformen-plugins)

Similar to webforms, settings for the CPR and CVR Serviceplatformen plugins are stored as configuration in the database and can be exported as `yml` files through Drupal's configuration management system, making them trackable via `git`.

Note that if your git repository is publicly accessible, these plugin settings — which may contain sensitive information — will be exposed. As with webforms, we recommend using the `Config ignore`-module to exclude them from the export/import process.

### Other configuration

[](#other-configuration)

The two cases above are just some examples of configuration that may be sensitive or subject to unintended changes during synchronization. In general, any configuration that is environment-specific, contains sensitive data, or is managed directly in the database rather than through code should be considered for exclusion via the `Config ignore`-module.

Unstable features
-----------------

[](#unstable-features)

### Export submissions to Word

[](#export-submissions-to-word)

This feature is still not part of Webform and Entity print modules stable versions due to following issues:

- [\[Webform\] Unlock possibility of using Entity print module export to Word feature](https://www.drupal.org/project/webform/issues/3096552)
- [\[Entity Print\] Add Export to Word Support](https://www.drupal.org/project/entity_print/issues/2733781)

To get this functionality on drupal project there will be applied patches from issues above via Composer.

NOTE: If you are downloading os2forms module without using composer, be aware that you have apply those patches by yourself.

Coding standards
----------------

[](#coding-standards)

Our coding are checked by GitHub Actions (cf. [.github/workflows/pr.yml](.github/workflows/pr.yml)). Use the commands below to run the checks locally.

### PHP

[](#php)

```
docker compose pull
docker compose run --rm php composer install
# Fix (some) coding standards issues.
docker compose run --rm php composer coding-standards-apply
docker compose run --rm php composer coding-standards-check
```

Tip

If the `composer install` commands fails with

> Unable to install module simplesamlphp/simplesamlphp-assets-base, package name must be on the form "VENDOR/simplesamlphp-module-MODULENAME".

you can remove the `vendor` folder and rerun the `composer install` command (cf. [https://www.drupal.org/project/simplesamlphp\_auth/issues/3350773](https://www.drupal.org/project/simplesamlphp_auth/issues/3350773)).

### Markdown

[](#markdown)

```
docker compose pull
docker compose run --rm markdownlint markdownlint '**/*.md' --fix
docker compose run --rm markdownlint markdownlint '**/*.md'
```

Code analysis
-------------

[](#code-analysis)

We use [PHPStan](https://phpstan.org/) for static code analysis.

Running static code analysis on a standalone Drupal module is a bit tricky, so we use a helper script to run the analysis:

```
docker compose run --rm php ./scripts/code-analysis
```

**Note**: Currently the code analysis is only run on the `os2forms_digital_post` and `os2forms_fbs_handler` sub-modules (cf. [`phpstan.neon`](./phpstan.neon)).

###  Health Score

58

—

FairBetter than 98% of packages

Maintenance76

Regular maintenance activity

Popularity30

Limited adoption so far

Community34

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

Recently: every ~114 days

Total

118

Last Release

31d ago

Major Versions

2.8.2 → 3.0.12021-12-09

2.9.1 → 3.1.02022-01-12

2.10.0 → 3.2.12022-01-19

3.22.2 → 4.0.02025-03-06

4.1.0 → 5.0.02025-11-18

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/827308?v=4)[Jørn Skifter Andersen](/maintainers/skifter)[@skifter](https://github.com/skifter)

![](https://www.gravatar.com/avatar/62f8489b69aecc84322f8899d288c3ab41d3022532d49c849ae4ca10e20f4df7?d=identicon)[andriyun](/maintainers/andriyun)

![](https://www.gravatar.com/avatar/134c42b216718e3d28298bcec8772eeb309c8c94afff3462dac1245b06c06cc5?d=identicon)[stanbellcom](/maintainers/stanbellcom)

![](https://www.gravatar.com/avatar/9d838759fdace714b1c00ca64212935cb06568a6d641169301aa2ed05eed16f9?d=identicon)[rimi-itk](/maintainers/rimi-itk)

![](https://avatars.githubusercontent.com/u/28791660?v=4)[Mads Nørgaard](/maintainers/madsnorgaard)[@madsnorgaard](https://github.com/madsnorgaard)

---

Top Contributors

[![stankut](https://avatars.githubusercontent.com/u/1537807?v=4)](https://github.com/stankut "stankut (297 commits)")[![jekuaitk](https://avatars.githubusercontent.com/u/78410897?v=4)](https://github.com/jekuaitk "jekuaitk (287 commits)")[![rimi-itk](https://avatars.githubusercontent.com/u/11267554?v=4)](https://github.com/rimi-itk "rimi-itk (116 commits)")[![andriyun](https://avatars.githubusercontent.com/u/5544994?v=4)](https://github.com/andriyun "andriyun (109 commits)")[![cableman](https://avatars.githubusercontent.com/u/111397?v=4)](https://github.com/cableman "cableman (30 commits)")[![skifter](https://avatars.githubusercontent.com/u/827308?v=4)](https://github.com/skifter "skifter (29 commits)")[![martinyde](https://avatars.githubusercontent.com/u/545272?v=4)](https://github.com/martinyde "martinyde (26 commits)")[![inuitviking](https://avatars.githubusercontent.com/u/11981709?v=4)](https://github.com/inuitviking "inuitviking (21 commits)")[![juuliabellcom](https://avatars.githubusercontent.com/u/5367428?v=4)](https://github.com/juuliabellcom "juuliabellcom (18 commits)")[![jeppekroghitk](https://avatars.githubusercontent.com/u/106669866?v=4)](https://github.com/jeppekroghitk "jeppekroghitk (14 commits)")[![hra-novicell](https://avatars.githubusercontent.com/u/42935954?v=4)](https://github.com/hra-novicell "hra-novicell (7 commits)")[![ds-bellcom](https://avatars.githubusercontent.com/u/139229719?v=4)](https://github.com/ds-bellcom "ds-bellcom (6 commits)")[![madsnorgaard](https://avatars.githubusercontent.com/u/28791660?v=4)](https://github.com/madsnorgaard "madsnorgaard (3 commits)")[![franzskaaning](https://avatars.githubusercontent.com/u/1532252?v=4)](https://github.com/franzskaaning "franzskaaning (3 commits)")[![ChatBotBerg](https://avatars.githubusercontent.com/u/195424626?v=4)](https://github.com/ChatBotBerg "ChatBotBerg (1 commits)")

---

Tags

composerdrupaldrupal8drupal8-moduleos2os2forms-drupalphpwebform

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/os2forms-os2forms/health.svg)

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

###  Alternatives

[az-digital/az_quickstart

Arizona Quickstart

52280.4k3](/packages/az-digital-az-quickstart)[thunder/thunder-distribution

The thunder distribution

51661.9k3](/packages/thunder-thunder-distribution)[govcms/govcms

GovCMS Drupal Distribution

198102.2k3](/packages/govcms-govcms)[voidagency/vactory_starter_kit

Vactory is a custom Drupal profile which is developed and released by VOID Agency.

1021.6k](/packages/voidagency-vactory-starter-kit)[civicrm/civicrm-core

Open source constituent relationship management for non-profits, NGOs and advocacy organizations.

751291.4k43](/packages/civicrm-civicrm-core)[farmos/farmos

A web-based farm record keeping application.

1.3k7.1k1](/packages/farmos-farmos)

PHPackages © 2026

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