PHPackages                             fredbradley/laravel-rule-nhs-number - 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. [Validation &amp; Sanitization](/categories/validation)
4. /
5. fredbradley/laravel-rule-nhs-number

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

fredbradley/laravel-rule-nhs-number
===================================

A Laravel Validator Rule for checking the validity of a NHS Number

v2.0.2(4y ago)04.4k↓50%MITPHPPHP ^7.4||^8.0

Since Feb 18Pushed 4y ago1 watchersCompare

[ Source](https://github.com/fredbradley/laravel-rule-nhs-number)[ Packagist](https://packagist.org/packages/fredbradley/laravel-rule-nhs-number)[ RSS](/packages/fredbradley-laravel-rule-nhs-number/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (7)Dependencies (7)Versions (15)Used By (0)

Laravel Rule NHS Number Validator
=================================

[](#laravel-rule-nhs-number-validator)

[![Latest Version on Packagist](https://camo.githubusercontent.com/6f1af35ba8085d161735f95c0d93042ac99c8040003635bfb2b6a931917a4d34/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f66726564627261646c65792f6c61726176656c2d72756c652d6e68732d6e756d6265722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fredbradley/laravel-rule-nhs-number)[![Build Status](https://camo.githubusercontent.com/df83f500d8518283195230ca7fa8725d9f223c5adf4eb25b1b65096d73bb2027/68747470733a2f2f696d672e736869656c64732e696f2f7472617669732f66726564627261646c65792f6c61726176656c2d72756c652d6e68732d6e756d6265722f6d61737465722e7376673f7374796c653d666c61742d737175617265)](https://travis-ci.org/fredbradley/laravel-rule-nhs-number)[![StyleCI Status](https://camo.githubusercontent.com/c4e2944a21af4abec3f3ad1e66621ae58f2d98128d5a7ec0f487119b03caaade/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3234313336383232302f736869656c64)](https://camo.githubusercontent.com/c4e2944a21af4abec3f3ad1e66621ae58f2d98128d5a7ec0f487119b03caaade/68747470733a2f2f6769746875622e7374796c6563692e696f2f7265706f732f3234313336383232302f736869656c64)[![Total Downloads](https://camo.githubusercontent.com/f2ea2d744a38add12b2f64b37732d498875f8b087e6fec1da62fea0fa6145f54/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f66726564627261646c65792f6c61726176656c2d72756c652d6e68732d6e756d6265722e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/fredbradley/laravel-rule-nhs-number)

This is a [Custom Laravel Rule](https://laravel.com/docs/5.8/validation#using-rule-objects) for validating an NHS Number.

The NHS Number validation logic is written by [Liam](https://github.com/imliam/php-nhs-number) and found in a [separate package](https://github.com/imliam/php-nhs-number), if you'd like to use it without Laravel's dependencies.

Installation
------------

[](#installation)

Install the package using Composer:

```
composer require fredbradley/laravel-rule-nhs-number
```

Laravel's service provider discover will automatically configure the service provider for you.

Using the Validator
-------------------

[](#using-the-validator)

After installation, the validator will be available for use directly in your validation rules.

```
'field_name' => 'nhsnumber'
```

Within the context of a form controller it would like like this:

```
return Validator::make($data, [
    'name' => 'required|string|max:255',
    'nhs_number' => 'required|string|nhsnumber'
]);
```

Using the Rule Object
---------------------

[](#using-the-rule-object)

*NB: This is needed required to use with some form builders like Kris Forms*

```
return Validator::make($data, [
    'name' => 'required|string|max:255',
    'nhs_number' => [
        'required',
        'string',
        new \FredBradley\NhsNumber\ValidateNhsNumber()
    ]
]);
```

Added bonus: Generators
-----------------------

[](#added-bonus-generators)

Because we're using Liam's original code, I've added in a `Generator` helper class. Use this in your projects to generate valid random NHS Numbers:

```
echo \FredBradley\NhsNumber\Generator::nhsNumber();
// '9278462608'
```

```
echo \FredBradley\NhsNumber\Generator::nhsNumber(3);
// ['7448556886', '0372104223', '8416367035']
```

Contributing
------------

[](#contributing)

At the moment the package is only available in English - due to the way the error message is displayed. If someone would like to contribute to make it translatable that would be nice of them.

👷 Credits
---------

[](#-credits)

- [Fred Bradley](https://github.com/fredbradley) for the Laravel-ication of the validator
- [Liam Hammett](https://github.com/imliam) for the original package
- [Peter Fisher](https://github.com/pfwd/NHSNumber-Validation) for the original class
- [All Contributors](../../contributors)

♻️ License
----------

[](#️-license)

The MIT License (MIT). Please see the [license file](LICENSE.md) for more information.

###  Health Score

33

—

LowBetter than 75% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity22

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 100% 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 ~45 days

Recently: every ~0 days

Total

14

Last Release

1691d ago

Major Versions

v1.0.10 → 2.0.02021-09-30

PHP version history (4 changes)1.0.0PHP &gt;=7.2

1.0.3PHP ^7.2

1.0.6PHP ^7.2||^8.0

1.0.8PHP ^7.4||^8.0

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/1639226?v=4)[Fred Bradley](/maintainers/fredbradley)[@fredbradley](https://github.com/fredbradley)

---

Top Contributors

[![fredbradley](https://avatars.githubusercontent.com/u/1639226?v=4)](https://github.com/fredbradley "fredbradley (25 commits)")

---

Tags

laravellaravel-package

###  Code Quality

TestsPHPUnit

Static AnalysisPsalm

Code StylePHP CS Fixer

Type Coverage Yes

### Embed Badge

![Health badge](/badges/fredbradley-laravel-rule-nhs-number/health.svg)

```
[![Health](https://phpackages.com/badges/fredbradley-laravel-rule-nhs-number/health.svg)](https://phpackages.com/packages/fredbradley-laravel-rule-nhs-number)
```

###  Alternatives

[webmozart/assert

Assertions to validate method input/output with nice error messages.

7.6k894.0M1.2k](/packages/webmozart-assert)[bensampo/laravel-enum

Simple, extensible and powerful enumeration implementation for Laravel.

2.0k15.9M104](/packages/bensampo-laravel-enum)[swaggest/json-schema

High definition PHP structures with JSON-schema based validation

48612.5M73](/packages/swaggest-json-schema)[stevebauman/purify

An HTML Purifier / Sanitizer for Laravel

5325.6M19](/packages/stevebauman-purify)[ashallendesign/laravel-config-validator

A package for validating your Laravel app's config.

217905.3k5](/packages/ashallendesign-laravel-config-validator)[crazybooot/base64-validation

Laravel validators for base64 encoded files

1341.9M8](/packages/crazybooot-base64-validation)

PHPackages © 2026

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