PHPackages                             samsonasik/naming - 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. samsonasik/naming

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

samsonasik/naming
=================

Naming Filter and Validator for people name

4.1.4(3mo ago)7219MITPHPPHP ^8.1CI passing

Since Feb 22Pushed 3mo ago1 watchersCompare

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

READMEChangelog (10)Dependencies (12)Versions (18)Used By (0)

Naming
======

[](#naming)

[![Latest Version](https://camo.githubusercontent.com/b099d20b8134be9b747dc4c987e2352bf3b4b41375f72e40f967cfcd14c2409d/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f72656c656173652f73616d736f6e6173696b2f4e616d696e672e7376673f7374796c653d666c61742d737175617265)](https://github.com/samsonasik/Naming/releases)[![ci build](https://github.com/samsonasik/Naming/workflows/ci%20build/badge.svg)](https://github.com/samsonasik/Naming/workflows/ci%20build/badge.svg)[![Code Coverage](https://camo.githubusercontent.com/fc833eb686633eb12071d23a8cdbb0c9a959311a3344453e24d7b06ffed184ab/68747470733a2f2f636f6465636f762e696f2f67682f73616d736f6e6173696b2f4e616d696e672f6272616e63682f6d61737465722f67726170682f62616467652e737667)](https://codecov.io/gh/samsonasik/Naming)[![PHPStan](https://camo.githubusercontent.com/fdcdf50c27377a0f41a7196eeaae8539c4684bfc8a1f9843fdac60fdbc53deab/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f7374796c652d6c6576656c2532306d61782d627269676874677265656e2e7376673f7374796c653d666c61742d737175617265266c6162656c3d7068707374616e)](https://github.com/phpstan/phpstan)[![Downloads](https://camo.githubusercontent.com/3b6c63a6d6f2278dd8cf5c69bdf09215a83adbf96d3f09b139a72cefdbd59f25/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73616d736f6e6173696b2f6e616d696e672e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/samsonasik/naming)

Naming is a library that has filter and validator for people name with multibyte string check support, extends the [`Laminas`](https://getlaminas.org/) filter and validator, while it can be used as standalone.

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

[](#installation)

```
composer require samsonasik/naming
```

Filter Flow
-----------

[](#filter-flow)

- Strip Tags
- String Trim
- String To Upper first letter in each word with set lower case after that
- Replace double space to single space
- String To Upper after `'` and `-` character if any

Examples:

Original nameFiltered name&lt;script&gt;AbdulAbdulABduLAbdulaBDUL m. ikHsanAbdul M. Ikhsanabdul Malik IAbdul Malik ID'lilahD'LilahVeli-mattiVeli-MattiäXÄxValidation checks
-----------------

[](#validation-checks)

- Allowed characters: letters, hyphens, apostrophe, spaces, full stops.
- Not allowed:
    - no letter, eg: `-`
    - include number
    - special characters
    - single `.` character
    - single `-` character
    - single `'` character
    - consecutive `.` characters
    - consecutive `-` characters
    - consecutive `'` characters
    - full stops not in the last of each word

Usage with laminas-form instance:

```
use Naming\Filter;
use Naming\Validator;
use Laminas\Form\Element\Text;
use Laminas\Form\Form;
use Laminas\InputFilter\InputFilterProviderInterface;

class ContactForm extends Form implements InputFilterProviderInterface
{
    public function init()
    {
        $this->add([
            'type' => Text::class,
            'name' => 'fullname',
            'options' => [
                'label' => 'Full name',
            ],
        ]);
    }

    public function getInputFilterSpecification()
    {
        return [
            [
                'name'     => 'fullname',
                'required' => true,
                'filters' => [
                    [
                        'name' => Filter\Naming::class
                    ],
                ],
                'validators' => [
                    [
                        'name' => Validator\Naming::class,
                    ],
                ],
            ],
        ];
    }
}
```

Using standalone:

```
use Naming\Filter;
use Naming\Validator;

include 'vendor/autoload.php';

// ... VALID
$filtered = (new Filter\Naming())->filter('Abdul malik ikhsan');
$validator = new Validator\Naming();

echo $filtered; // Abdul Malik Ikhsan
var_dump($validator->isValid($filtered)); // true

// ... INVALID
$filtered = (new Filter\Naming())->filter('Abdul....');
$validator = new Validator\Naming();

echo $filtered; // Abdul....
var_dump($validator->isValid($filtered)); // false
var_dump(\current($validator->getMessages())); /* "Consecutive "."s are not allowed" */
```

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

[](#contributing)

Contributions are very welcome. Please read [CONTRIBUTING.md](https://github.com/samsonasik/Naming/blob/master/CONTRIBUTING.md)

###  Health Score

49

—

FairBetter than 95% of packages

Maintenance81

Actively maintained with recent releases

Popularity16

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity77

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

Recently: every ~4 days

Total

17

Last Release

100d ago

Major Versions

1.x-dev → 2.0.02020-01-25

2.1.1 → 3.0.02023-01-15

3.0.1 → 4.0.02025-05-07

PHP version history (3 changes)1.0.0PHP ^7.2

2.1.0PHP ^7.3 || ^8.0

3.0.0PHP ^8.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/19076b7688ca1c8ee79ab3ac6fa6acdd7b96012973aba3b1a06cbb3154d7f3e5?d=identicon)[samsonasik](/maintainers/samsonasik)

---

Top Contributors

[![samsonasik](https://avatars.githubusercontent.com/u/459648?v=4)](https://github.com/samsonasik "samsonasik (92 commits)")

---

Tags

filterlaminasmbstringmultibytenamenamingpeoplephpspecialstandalonevalidatorzfzf2zf3mbstringlaminasmultibytenamepeoplenaming

###  Code Quality

Static AnalysisPHPStan, Rector

Code StylePHP\_CodeSniffer

Type Coverage Yes

### Embed Badge

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

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

###  Alternatives

[laminas/laminas-form

Validate and display simple and complex forms, casting forms to business objects and vice versa

8112.0M115](/packages/laminas-laminas-form)[laminas/laminas-escaper

Securely and safely escape HTML, HTML attributes, JavaScript, CSS, and URLs

22088.6M140](/packages/laminas-laminas-escaper)[laminas/laminas-inputfilter

Normalize and validate input sets from the web, APIs, the CLI, and more, including files

4614.4M97](/packages/laminas-laminas-inputfilter)[laminas/laminas-validator

Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria

15544.9M188](/packages/laminas-laminas-validator)[laminas/laminas-i18n

Provide translations for your application, and filter and validate internationalized values

7823.6M200](/packages/laminas-laminas-i18n)[zbateson/mb-wrapper

Wrapper for mbstring with fallback to iconv for encoding conversion and string manipulation

4948.6M5](/packages/zbateson-mb-wrapper)

PHPackages © 2026

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