PHPackages                             movisio/nais-cs - 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. movisio/nais-cs

ActiveComposer-plugin[Utility &amp; Helpers](/categories/utility)

movisio/nais-cs
===============

Coding styles rules and git hook for NAIS Based Applications

4.0.0(1mo ago)210.9k—6.3%2BSD-3-ClausePHPPHP &gt;=8.3

Since May 29Pushed 1mo ago3 watchersCompare

[ Source](https://github.com/movisio/nais-cs)[ Packagist](https://packagist.org/packages/movisio/nais-cs)[ Docs](https://movisio.com)[ RSS](/packages/movisio-nais-cs/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (10)Dependencies (7)Versions (25)Used By (2)

nais-cs
=======

[](#nais-cs)

Coding styles rules and git hook for NAIS Based Applications

v4.0.0

- SemVer major: PHP 8.3+ required (same ruleset as 3.1.0)
- `DNFTypeHintFormat` replaces deprecated `UnionTypeHintFormat`

v3.1.0

- Require PHP 8.3+
- `UnionTypeHintFormat` replaced with `DNFTypeHintFormat` (Slevomat CS 8.16+)
- Ruleset: typed class constants (`ClassConstantTypeHint`), `ConstantSpacing`
- Custom sniffs: native `int` parameters, `enum_exists()` in `StringClassReferenceSniff`
- Composer plugin: `void` return types, Composer 2 plugin API only

v3.0.0

- Require PHP 8.1
- Update slevomat/coding-standard to v8
- Enabled new sniffs `UselessConstantTypeHint`, `UnionTypeHintFormat` and `RequireNonCapturingCatch`

v2.0.2

- Allow usage with Composer v2

v2.0.0

- Require PHP 7.4
- Update to slevomat/coding-standard 6
- Remove lock on phpcs version
- Replace `SlevomatCodingStandard.TypeHints.TypeHintDeclaration` excludes with new `SlevomatCodingStandard.TypeHints.*TypeHint` ones
- Remove `UselessParentheses` check (was too strict and clashed with readability)
- Exclude a handful of minor PSR-12 spacing rules

v1.3.2

- Exclude all in assets directory

v1.3.1

- Repair .js and .css file exclude pattern

v1.3.0

- change some excludes to relative

v1.2.4

- limit codesniffer to 3.4.\* (3.5.0 brought better PSR12 which currently collides with the slevomat config)

v1.2.3

- CSS files no longer checked by `phpcs`

v1.2.2

- Eslint command is now called from node\_modules in pre-commmit hook
- Added extendable Eslint rules

v1.2.1

- Fixed eslint pre commit hook only for .js files

v1.2.0

- Added eslint support

v1.1.2

- Fix error when commit does not contain any \*.php files

v1.1.1

- Handle spaces in paths

v1.1.0

- Stop commit on warnings too

v1.0.2

- Setup excludes for js/css checks

v1.0.1

- Allow unused variables in foreach where only the key is used

v1.0.0

- Automatically installs a pre-commit hook on composer install/update

###  Health Score

59

—

FairBetter than 98% of packages

Maintenance92

Actively maintained with recent releases

Popularity27

Limited adoption so far

Community18

Small or concentrated contributor base

Maturity84

Battle-tested with a long release history

 Bus Factor1

Top contributor holds 79.2% 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 ~141 days

Recently: every ~542 days

Total

19

Last Release

40d ago

Major Versions

1.3.2 → 2.0.02020-06-17

2.0.2 → 3.0.02022-10-03

3.0.1 → 4.0.02026-05-25

PHP version history (4 changes)1.0PHP &gt;=7.0

2.0.0PHP &gt;=7.4

3.0.0PHP &gt;=8.1

4.0.0PHP &gt;=8.3

### Community

Maintainers

![](https://www.gravatar.com/avatar/4b17d4000958913c3b2c477a979832a974da7264194a29da6e4ce127802f9049?d=identicon)[Kocicak](/maintainers/Kocicak)

![](https://www.gravatar.com/avatar/aa0bdd25a28532af1e28abfd77e8bc58ac8cc575232471b6cd8e6a08bc8e7397?d=identicon)[2DDTMovisio](/maintainers/2DDTMovisio)

![](https://www.gravatar.com/avatar/71a63f5186648b402215d2f79a0a93b59bb607cbfd5be892de54ff1f08cf0354?d=identicon)[jkavalik](/maintainers/jkavalik)

---

Top Contributors

[![jkavalik](https://avatars.githubusercontent.com/u/5812825?v=4)](https://github.com/jkavalik "jkavalik (19 commits)")[![namo-R](https://avatars.githubusercontent.com/u/22830798?v=4)](https://github.com/namo-R "namo-R (4 commits)")[![Kocicak](https://avatars.githubusercontent.com/u/37833137?v=4)](https://github.com/Kocicak "Kocicak (1 commits)")

---

Tags

phpcsrulesetnaismovisio

###  Code Quality

Code StylePHP\_CodeSniffer

### Embed Badge

![Health badge](/badges/movisio-nais-cs/health.svg)

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

###  Alternatives

[symfony/runtime

Enables decoupling PHP applications from global state

74798.8M1.0k](/packages/symfony-runtime)[drupal/core-composer-scaffold

A flexible Composer project scaffold builder.

5445.2M564](/packages/drupal-core-composer-scaffold)[drupal/core-project-message

Adds a message after Composer installation.

2124.7M203](/packages/drupal-core-project-message)[sandersander/composer-link

Adds ability to link local packages for development with composer

98457.9k](/packages/sandersander-composer-link)[phpro/grumphp-shim

GrumPHP Phar distribution

294.7M340](/packages/phpro-grumphp-shim)[worksome/coding-style

Worksomes coding style

49814.9k66](/packages/worksome-coding-style)

PHPackages © 2026

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