PHPackages                             alex-goal/person - 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. alex-goal/person

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

alex-goal/person
================

Data management of a Russian person

1.3.0(3y ago)012MITPHPPHP &gt;=7.1

Since Feb 8Pushed 3y ago1 watchersCompare

[ Source](https://github.com/alex-goal/person)[ Packagist](https://packagist.org/packages/alex-goal/person)[ RSS](/packages/alex-goal-person/feed)WikiDiscussions 1.x Synced 1mo ago

READMEChangelogDependencies (2)Versions (10)Used By (0)

PHP-библиотека по управлению персональными данными человека

### Установка

[](#установка)

```
composer require alex-goal/person

```

### Требования

[](#требования)

```
PHP >=7.1

```

### Возможности

[](#возможности)

#### Форматирование ФИО

[](#форматирование-фио)

```
use AlexGoal\Person\Person;

// Создание объекта Person
$person = new Person('иванов петр сидорович'); // ИЛИ
$person = Person::create('иванов петр сидорович'); // ИЛИ
$person = Person::create()
    ->setLastName('иванов')
    ->setFirstName('петр')
    ->setMiddleName('сидорович');

// Форматирование
$person->getFisrtName(); // Петр
$person->getFullName('%Ff %Mm %Ll'); // Петр Сидорович Иванов
$person->getFullName('%Ff %Mm %L1.'); // Петр Сидорович И.
$person->getShortName(); // Иванов П.С.
$person->getInitials(); // П.С.
$person->getFullNameUpper(); // ИВАНОВ ПЕТР СИДОРОВИЧ
$person->getFullNameLower(); // иванов петр сидорович
```

Доступные спецификаторы для форматирования имён

ОписаниеПример%LlФамилия (первая буква прописная)Иванов%FfИмя (первая буква прописная)Петр%MmОтчество (первая буква прописная)Сидорович%LLФамилия (все буквы прописные)ИВАНОВ%FFИмя (все буквы прописные)ПЕТР%MMОтчество (все буквы прописные)СИДОРОВИЧ%llФамилия (все буквы строчные)иванов%ffИмя (все буквы строчные)петр%mmОтчество (все буквы строчные)сидорович%L1Прописная первая буква фамилииИ%F1Прописная первая буква имениП%M1Прописная первая буква отчестваС%l1Строчная первая буква фамилиии%f1Строчная первая буква именип%m1Строчная первая буква отчествас%lФамилия, как указано изначально%fИмя, как указано изначально%mОтчество, как указано изначально#### Управление датой рождения

[](#управление-датой-рождения)

```
use AlexGoal\Person\Components\Birthday;
use AlexGoal\Person\Person;

// Создание объекта Birthday
$birthday = new Birthday('2001-01-01'); // ИЛИ
$birthday = Birthday::create('2001-01-01'); // ИЛИ
$birthday = Birthday::create()->setDate('2001-01-01'); // ИЛИ
$birthday = Birthday::create()->setDate(new DataTime('2001-01-01'));

// Возраст
$birthday->getAge(); // возраст на текущую дату
$birthday->getAge('2101-01-01'); // 100 (возраст на дату 2101-01-01)
$birthday->getDateByFormat('d.m.y'); // 01.01.01
$birthday->getAgePhrase('2002-01-01') // 1 год (возраст со словом год|года|лет);

// Совершеннолетие
$birthday->isAdult(); // true (на текущую дату)
$birthday->isAdult('2011-01-01'); // false (на дату 2011-01-01)

// Использование совместно с Person
$person = Person::create('иванов петр сидорович')->setBirhday('2000-01-01'); // ИЛИ
$person = Person::create('иванов петр сидорович')->setBirhday(new Birthday('2000-01-01'));

$person->getAge(); // возраст
$person->isAdult(); // совершеннолетие
```

#### Управление полом

[](#управление-полом)

```
use AlexGoal\Person\Components\Gender;
use AlexGoal\Person\Person;

// Создание объекта Gender
$gender = new Gender('мужской'); // ИЛИ
$gender = Gender::create('муж'); // ИЛИ
$gender = Gender::create()->setName('male'); // ИЛИ
Gender::create()->setMale();

$gender->getName(); // male
$gender->getName('М', 'Ж'); // М
$gender->isMale(); // true
$gender->isFemale(); // false

// Использование совместно с Person
$person = Person::create('иванов петр сидорович')->setGender('male'); // ИЛИ
$person = Person::create('иванов петр сидорович')->setGender(new Gender('мужской')); // ИЛИ
$person = Person::create('иванов петр сидорович')->setMale();

$person->getGenderName(); // male
$person->getGenderName('МУЖ', 'ЖЕН'); // МУЖ
$person->isMale(); // true
$gender->isFemale(); // false
```

###  Health Score

21

—

LowBetter than 19% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity5

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity46

Maturing project, gaining track record

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

Total

8

Last Release

1171d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/3aa6fd03a6ea2378d451adb582d2ecc05212f9468822c98026970565af0b57bb?d=identicon)[alex-goal](/maintainers/alex-goal)

---

Top Contributors

[![alex-goal](https://avatars.githubusercontent.com/u/33321707?v=4)](https://github.com/alex-goal "alex-goal (47 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/alex-goal-person/health.svg)

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

###  Alternatives

[ashallendesign/short-url

A Laravel package for creating shortened URLs for your web apps.

1.4k1.9M4](/packages/ashallendesign-short-url)[solspace/craft-freeform

The most flexible and user-friendly form building plugin!

52664.9k12](/packages/solspace-craft-freeform)[whitecube/laravel-timezones

Store UTC dates in the database and work with custom timezones in the application.

106106.2k](/packages/whitecube-laravel-timezones)[intervention/zodiac

Zodiac Sign Calculator

58191.7k](/packages/intervention-zodiac)[erlandmuchasaj/laravel-gzip

Gzip your responses.

40129.3k2](/packages/erlandmuchasaj-laravel-gzip)[solspace/craft-calendar

The most powerful event management and calendaring plugin!

1830.8k1](/packages/solspace-craft-calendar)

PHPackages © 2026

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