Search by

Мультиязычный генератор фейковых данных для PHP 8.1+: 71 провайдер и полный суперсет форматтеров FakerPHP — имена, адреса, телефоны, e-mail, компании, тексты, даты, платёжные данные, HTML, UUID/ULID на 8 языках (ru/en/de/fr/es/pl/bg/ro) со склонением имён, датами прописью и реальными словами словаря

v1.2.0 2026-09-07 21:29 UTC

README

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano

CloudCastle Faker

CloudCastle Faker

Packagist Version PHP Version Downloads Total Downloads License

GitVerse Quality CI Release

PHPStan Psalm PHPMD PHPCS Coverage Infection MSI Security Policy OpenSSF Scorecard

Мультиязычный генератор фейковых данных для PHP 8.1+: имена, адреса, компании, телефоны, платёжные данные (карты, IBAN, BIC), штрихкоды, тексты, даты, UUID, хеши, изображения и User-Agent на 8 языках (ru/en/de/fr/es/pl/bg/ro). Со склонением имён по падежам, датами и днями недели прописью и реальными словами словаря из коробки. 71 провайдер — полный суперсет категорий FakerPHP плюс инженерно-научные сферы (математика, физика, электроника, IT, космонавтика и др.) и точка расширения extend() для своих провайдеров. Сидируемый и детерминированный; зависимости — только инфраструктура cloud-castle.

Установка

composer require cloud-castle/faker

Требуется PHP 8.1+.

Быстрый старт

<?php

use CloudCastle\Faker\Faker;
use CloudCastle\Faker\Locale;
use CloudCastle\Inflector\GrammaticalCase;

// Детерминированный генератор: одно зерно — одни и те же данные на PHP 8.1–8.5.
$faker = Faker::create(Locale::Russian, seed: 42);

$faker->person()->name();          // имя с фамилией на языке локали
$faker->person()->nameInCase(GrammaticalCase::Genitive); // склонение по падежу
$faker->person()->gender();        // Gender::Male либо Gender::Female

$faker->internet()->email();       // e-mail из транслитерированного имени
$faker->internet()->ipv4();        // IPv4-адрес
$faker->internet()->slug();        // URL-слаг из слов локали

$faker->calendar()->dateInWords(); // дата прописью: «22 декабря 2020 года»
$faker->calendar()->dayOfWeek();   // день недели на языке локали
$faker->calendar()->monthName();   // название месяца на языке локали

$faker->text()->sentence();        // предложение из настоящих слов словаря
$faker->text()->realText(90);      // связный текст по марковской цепочке

$faker->payment()->creditCardNumber('Visa'); // номер, валидный по алгоритму Луна
$faker->payment()->iban('DE');     // IBAN с контролем mod-97
$faker->identifier()->uuid();      // UUID v4

$faker->address()->address();      // улица, дом, индекс и город локали
$faker->company()->company();      // название организации с орг.-правовой формой
$faker->phoneNumber()->imei();     // IMEI, валидный по Луну
$faker->barcode()->ean13();        // EAN-13 с корректной контрольной цифрой

$faker->image()->dataUri();        // «data:image/svg+xml;base64,…» — офлайн, без сети
$faker->image()->image('/tmp', 640, 480, 'png'); // настоящий PNG на диске, без сети
$faker->html()->randomHtmlFragment(1, 1);        // фрагмент HTML с экранированием

$faker->regexify('[A-Z]{2}-\d{4}'); // строка по регулярному выражению
$faker->biasedNumberBetween(1, 10);  // число со смещением к максимуму

// Модификаторы: уникальные, необязательные, валидируемые значения
$faker->unique()->value(fn () => $faker->numberBetween(1, 100)); // без повторов
$faker->optional(fn () => $faker->person()->name(), 0.7);         // 70% — имя, иначе null

// Криптостойкий (непредсказуемый, не сидируемый) генератор:
$secure = Faker::createSecure(Locale::English);

Возможности

  • 8 языков (по набору cloud-castle/inflector): ru, en, de, fr, es, pl, bg, ro.
  • Склонение имён по падежам — nameInCase() (уникально среди PHP-генераторов).
  • Даты и дни недели прописью на языке локали — dateInWords(), dayOfWeek().
  • Реальные слова словаря в текстах вместо латинской «рыбы» (для локалей со словарём).
  • Валидные платёжные данные: карты по алгоритму Луна, IBAN по mod-97, BIC, срок действия.
  • Валидные штрихкоды и IMEI: EAN-8/13, ISBN-10/13, IMEI — с корректной контрольной цифрой.
  • Офлайн-изображения: image()->dataUri() строит SVG прямо в data-URI — без сети, в отличие от аналогов, зависящих от внешних сервисов-заглушек.
  • Модификаторы unique() / optional() / valid() — без повторов, с пропусками, с валидацией.
  • Генерация по regexregexify('[A-Z]{2}\d{4}'): классы, \d/\w/\s, группы, кванторы.
  • Правдоподобный текстrealText() строит фразы по марковской цепочке корпуса локали, а не набором несвязанных слов.
  • Смещённые распределенияbiasedNumberBetween() с произвольной функцией плотности.
  • Офлайн-медиа — SVG и PNG собираются локально в файл нужного размера, без сети.
  • Воспроизводимость: сидируемый MT19937 с изолированным состоянием, идентичная последовательность на PHP 8.1–8.5.
  • Строгая типизация, беспристрастная выборка (без modulo-bias), CSPRNG-режим.
  • Зависимости — только cloud-castle/* и нативные расширения; никаких тяжёлых сторонних.

Провайдеры

Первые 17 — полный суперсет категорий FakerPHP (все 156 его форматтеров доступны по тем же именам); далее — предметные домены и провайдеры научно-инженерных сфер.

ПровайдерЧто генерируетМетодов
acousticsПровайдер акустических данных: свойства звука, акустические явления, единицы, приборы и диапазоны частот6
addressПровайдер адресов: улицы, дома, города, регионы, страны, индексы, координаты13
aerospaceПровайдер данных авиастроения: типы летательных аппаратов, узлы планера, производители, силовые установки, манёвры и высота полёта6
agricultureПровайдер сельскохозяйственных данных: культуры, скот, техника, агроприёмы и типы почв5
algebraПровайдер алгебраических данных: типы уравнений, многочлены, матрицы, группы, переменные и алгебраические структуры6
animalПровайдер данных о животных: виды, типы, породы и клички питомцев4
architectureПровайдер архитектурных данных: стили, элементы зданий, типы сооружений, материалы отделки и известные архитекторы5
astronomyПровайдер астрономических данных: небесные тела, созвездия, галактики, спектральные классы звёзд и разделы астрономии6
automotiveПровайдер автомобильных данных: узлы, типы кузова, коробки передач, приводы и типы двигателей6
aviationПровайдер авиационных данных: авиакомпании, коды аэропортов, рейсы, самолёты4
barcodeПровайдер штрихкодов: EAN-8, EAN-13, ISBN-10, ISBN-134
biologyПровайдер биологических данных: таксономические ранги, органеллы, системы органов, биомолекулы и разделы биологии5
blockchainПровайдер данных блокчейна: адреса Bitcoin и Ethereum, хеши транзакций3
bookПровайдер книжных данных: заголовки, издательства, жанры, издания4
calendarПровайдер даты и времени23
chemistryПровайдер химических данных: соединения, функциональные группы, типы реакций, агрегатные состояния, кислоты, основания и разделы химии6
cloudComputingПровайдер данных облачных вычислений: модели услуг, провайдеры, ресурсы, модели развёртывания и регионы5
colorПровайдер цветов: HEX, RGB(A), HSL и именованные CSS-цвета10
commerceПровайдер торговых данных: товары, отделы, материалы, цены, артикулы, промокоды6
companyПровайдер данных о компаниях: названия, организационно-правовые формы, должности и слоганы — на языке локали4
constructionПровайдер строительных данных: материалы, инструменты, конструктивные элементы, техника, специальности и этажность6
cybersecurityПровайдер данных информационной безопасности: угрозы, типы атак, инструменты, шифры и классы уязвимостей5
dataScienceПровайдер данных науки о данных: алгоритмы, метрики качества, задачи машинного обучения и фреймворки4
databaseПровайдер данных баз данных: СУБД, модели данных, операции, типы столбцов, виды индексов и уровни изоляции транзакций6
devOpsПровайдер данных DevOps: инструменты, практики, стадии конвейера, системы мониторинга и оркестрации4
developerПровайдер данных для разработчиков: языки, фреймворки, лицензии, git-хеши и ветки5
educationПровайдер данных об образовании: степени, специальности, вузы, студбилеты4
electronicsПровайдер данных электроники: компоненты, единицы, устройства, разъёмы и логические элементы6
energyПровайдер данных энергетики: источники энергии, единицы, типы электростанций, накопители и виды топлива6
fileПровайдер файловых атрибутов: расширения и MIME-типы4
financeПровайдер финансовых данных: банки и счета, идентификаторы платежей и транзакций, идентификаторы ценных бумаг (ISIN, CUSIP, SEDOL, LEI, FIGI) с корректными контрольными суммами, биржи и индексы, валюты, налоговые номера, ставки и кредитный скоринг31
foodПровайдер кулинарных данных: блюда, ингредиенты, фрукты, овощи, кухни5
geologyПровайдер геологических данных: минералы, горные породы, геологические эпохи, тектонические структуры и шкала твёрдости5
geometryПровайдер геометрических данных: плоские и объёмные фигуры, углы, кривые, теоремы и системы координат6
htmlПровайдер фрагментов и документов HTML2
httpПровайдер HTTP-данных: коды статуса, методы, порты, идентификаторы запросов4
identifierПровайдер идентификаторов (UUID) на базе cloud-castle/uuid2
imageПровайдер изображений-заглушек5
instrumentationПровайдер данных приборостроения: датчики, измерительные приборы, измеряемые величины, типы сигналов и классы точности6
internetПровайдер интернет-данных: домены, e-mail, IP, MAC, логины, пароли17
logisticsПровайдер логистических данных: виды транспорта, складские объекты, товаросопроводительные документы, условия поставки Incoterms и грузовые единицы5
manufacturingПровайдер данных производства: производственные процессы, методологии, оборудование, метрики и типы цехов5
materialsПровайдер данных материаловедения: материалы, сплавы, механические свойства, классы материалов и виды обработки6
mathПровайдер математических данных: константы, операции, системы счисления, числовые множества, простые числа, дроби, проценты и факториалы8
mechanicalEngineeringПровайдер данных машиностроения: детали, механизмы, передачи, процессы обработки и посадки6
medicalПровайдер медицинских данных: группа крови и резус-фактор3
meteorologyПровайдер метеорологических данных: атмосферные явления, приборы, типы облаков, атмосферные фронты и шкала Бофорта5
miscellaneousПровайдер разнородных данных: хеши, версии SemVer, эмодзи, коды стран и языков8
musicПровайдер музыкальных данных: жанры, инструменты, ноты и тональности4
nanotechnologyПровайдер данных нанотехнологий: наноматериалы, наноструктуры, методы синтеза, области применения и приборы характеризации5
nauticalПровайдер морских данных: типы судов, части корабля, морские узлы, судовые роли и стороны/направления5
networkПровайдер сетевых данных: протоколы, топологии, устройства, уровни модели OSI и номера портов5
operatingSystemПровайдер данных операционных систем: названия ОС, архитектуры ядра, алгоритмы планирования, файловые системы и механизмы IPC5
paymentПровайдер платёжных данных: типы и номера карт, валюты, криптовалюты9
personПровайдер персональных данных: имена, фамилии, обращения, суффиксы11
pharmacyПровайдер фармацевтических данных: лекарства, лекарственные формы, пути введения, фармакологические группы и дозировки5
phoneNumberПровайдер телефонных номеров: национальные форматы локали, E4
physicsПровайдер физических данных: физические величины, законы, константы, единицы СИ, разделы физики и элементарные частицы6
roboticsПровайдер данных робототехники: типы роботов, приводы, сенсоры, кинематические пары и степени свободы6
scienceПровайдер научных данных: химические элементы, единицы измерения, планеты4
softwareПровайдер данных разработки ПО: методологии, паттерны проектирования, архитектурные стили, принципы, парадигмы и виды тестирования6
spaceПровайдер данных космонавтики: космические миссии, агентства, аппараты, ракеты-носители и типы орбит5
sportПровайдер спортивных данных: виды спорта, амплуа игроков и инвентарь3
statisticsПровайдер статистических данных: меры центра и разброса, распределения, статистические тесты, коэффициенты корреляции и типы выборок6
telecommunicationsПровайдер телекоммуникационных данных: стандарты связи, технологии доступа, типы модуляции, среды передачи и сетевое оборудование5
textПровайдер текста: слова, предложения и абзацы9
trigonometryПровайдер тригонометрических данных: функции, тождества, характерные углы и единицы измерения углов5
userAgentПровайдер строк User-Agent: Chrome, Firefox, Safari, Opera, Edge14
vehicleПровайдер данных о транспортных средствах: VIN, госномера, марки, модели, топливо6
weatherПровайдер погодных данных: температура, состояние неба, ветер, влажность, давление5
webTechnologyПровайдер данных веб-технологий: фронтенд-фреймворки, языки, протоколы, инструменты сборки и веб-стандарты5

Всего 71 провайдер и 448 методов; перечень собран из кода пакета (composer docs:providers).

Свои провайдеры

Любой пользовательский провайдер регистрируется через фабрику и доступен как обычный метод-аксессор:

use CloudCastle\Faker\Provider\AbstractProvider;

final class Crypto extends AbstractProvider
{
    public function coin(): string
    {
        return $this->randomizer()->element(['BTC', 'ETH', 'SOL']);
    }
}

$faker = Faker::create();
$faker->extend('crypto', Crypto::class);
$faker->crypto()->coin();     // «ETH»

Коротко

Быстрый (в разы быстрее популярных аналогов на генерации данных), безопасный и детерминированный генератор фейковых данных. 71 провайдер покрывает все категории FakerPHP и добавляет 15 новых доменов (авто, финансы, блокчейн, наука, авиация…) плюс уникальное: склонение имён, даты прописью, реальные слова словаря, офлайн-изображения. Функционально перекрывает объединение аналогов; по скорости, памяти и безопасности лидирует. Единственный честный минус — пакет моложе и менее распространён, чем FakerPHP.

Сравнение с аналогами

Все таблицы ниже сгенерированы автоматически из честных сравнительных тестов (benchmarks/compare.php) на ОДИНАКОВОЙ операции для всех аналогов, PHP 8.1.34, без Xdebug.

1. Функциональность

Возможность🏆 CloudCastleFakerPHPfzaninotto (устар.)mbezhanovhi-folksloremipsum
Многоязычные данные (≥ 8 языков)
Склонение имён по падежам
Дата и день недели прописью на языке локали
Реальные слова словаря (не латынь)
Валидные платёжные данные (алгоритм Луна)
Офлайн-изображения (data-URI и файлы, без сети)
Часовой пояс дат без глобального состояния
Правдоподобный текст по марковской цепочке
Воспроизводимость на PHP 8.1–8.5
Строго типизированный API
Только инфраструктурные зависимости
Всего🏆 1133322

2. Безопасность и корректность

Свойство🏆 CloudCastleFakerPHPfzaninotto (устар.)mbezhanovhi-folksloremipsum
Криптостойкий режим (CSPRNG)
Беспристрастная выборка (без modulo-bias)
Изоляция состояния (без глобального mt_rand)
Маскирование ПД из коробки
Строгая типизация (без type juggling)
Всего🏆 500022

3. Производительность

Генерация полного имени «Имя Фамилия», 200 000 раз (минимум из 4).

РешениеВремя (мс)Итог
mt_rand¹25,6базовый уровень (не библиотека)
🏆 CloudCastle635,6быстрейшее среди библиотек
FakerPHP1 398,6аналог
fzaninotto (устар.)замер недоступен: заброшен, требует PHP ≤ 7 — не запускается на PHP 8.1+
mbezhanovзамер недоступен: набор провайдеров поверх FakerPHP — скорость самой генерации идентична FakerPHP
hi-folksзамер недоступен: иная модель API без эквивалентной операции «полное имя»
loremipsumзамер недоступен: узкоспециализирован (только lorem-текст), требует PHP ≥ 8.2

4. Потребление памяти

Фактически занятая память 50 000 удержанных имён (изолированный процесс).

РешениеПиковая память (KB)Итог
mt_rand¹4 021базовый уровень (не библиотека)
🏆 CloudCastle4 203легчайшее среди библиотек
FakerPHP4 321аналог
fzaninotto (устар.)замер недоступен: заброшен, требует PHP ≤ 7 — не запускается на PHP 8.1+
mbezhanovзамер недоступен: набор провайдеров поверх FakerPHP — скорость самой генерации идентична FakerPHP
hi-folksзамер недоступен: иная модель API без эквивалентной операции «полное имя»
loremipsumзамер недоступен: узкоспециализирован (только lorem-текст), требует PHP ≥ 8.2

5. Качество кода

Метрика качества🏆 CloudCastleFakerPHPfzaninotto (устар.)mbezhanovhi-folksloremipsum
PHPStan max + Psalm errorLevel 1
Строгая типизация (declare(strict_types=1))
Покрытие тестами 100 % строк
Мутационное тестирование (Infection MSI 100 %)
PSR-12 + автоформат (PHP CS Fixer)
Контроль слоёв (Deptrac)
Без зависимостей сверх инфраструктуры
Всего🏆 721123

6. Статический анализ по видам проверок

Проверка🏆 CloudCastleFakerPHPfzaninotto (устар.)mbezhanovhi-folksloremipsum
Синтаксис (php-parallel-lint) — ошибок синтаксиса00
PHPStan, уровень max — ошибок типизации и логики05233
PHPMD (тот же ruleset) — нарушений чистоты кода0308
Rector (тот же набор правил) — файлов с устаревшими конструкциями0347
PHPCS, стандарт PSR-12 — нарушений стандарта оформления07242
Рост памяти после 100 000 вызовов, байт00
Мутационное тестирование настроено

Инструменты запущены с настройками гейта пакета по исходникам аналога; меньше находок — лучше. В отличие от замеров времени, эти числа не зависят от загрузки машины. Прочерк — аналог не установлен (заброшен, надстройка над FakerPHP, иная модель API или узкая специализация), проверить фактически нельзя.

¹ Базовый уровень (нативные вызовы/примитивы без полноты решения) показан для контекста и не претендует на победу среди библиотек-аналогов.

Плюсы, минусы и когда применять

Сильные стороны:

  • Функционал = объединение аналогов и сверх того — 71 провайдер: полный суперсет категорий FakerPHP (адреса, компании, телефоны, платежи, штрихкоды, файлы, изображения, HTML, User-Agent, медданные, разное — все 156 форматтеров доступны по тем же именам) плюс 15 новых доменов (авто, финансы, блокчейн, наука, авиация, погода, спорт, музыка…) и уникальное: склонение имён, даты и месяцы прописью, реальные слова, марковский текст, офлайн-изображения файлом.
  • Быстрее популярных генераторов на типовой генерации данных (имя, профиль) — в разы, за счёт прямого доступа к данным без разбора форматных строк.
  • Корректность — карты (Луна), IBAN (mod-97), IMEI, EAN/ISBN проходят проверку контрольной суммы; модификаторы unique/optional/valid из коробки.
  • Безопасность — беспристрастная выборка, криптостойкий режим, изоляция состояния, маскирование ПД, строгая типизация.
  • Память — легче FakerPHP при удержании данных.
  • Детерминизм — воспроизводимые фикстуры на всех версиях PHP 8.1–8.5.

Слабые стороны (честно):

  • Моложе и менее распространён, чем FakerPHP: меньше звёзд, установок и готовых сторонних провайдеров/интеграций.

Набор языков (8) намеренно совпадает с языками cloud-castle/inflector — там, где FakerPHP даёт десятки локалей транслитерацией без словоизменения, здесь каждый из 8 языков снабжён настоящей морфологией (склонение, даты прописью). Это осознанный выбор «качество вместо количества», а не пробел.

Когда применять — по сферам:

  • Финтех и биллинг — карты (Луна), IBAN (mod-97), BIC, ISIN/CUSIP/SEDOL/LEI/FIGI и ABA с настоящими контрольными разрядами: формы валидации проверяются данными, которые проходят те же алгоритмы, что и боевые.
  • Государственные и юридические системы, документооборот — склонение имён по падежам, даты, месяцы и дни недели прописью: шаблоны договоров и уведомлений получают грамматически корректный текст, а не «Иванов И.И. от 5 март».
  • Изолированный CI и закрытый контур — изображения (SVG/PNG), файлы и HTML собираются локально: сеть не нужна ни при генерации, ни при отображении, во внешние сервисы ничего не утекает.
  • Регрессионные и снапшот-тесты — воспроизводимость по зерну на всей матрице PHP 8.1–8.5: одно зерно даёт одинаковые фикстуры на всех версиях.
  • Демо-стенды и вёрстка — реальные слова словаря и марковский текст на языке локали вместо латинской «рыбы»; HTML-фрагменты для проверки шаблонов.
  • Нагрузочные сценарии — генерация в разы быстрее популярных аналогов при меньшем расходе памяти на удержанных данных.

Когда лучше взять другое: если проект уже завязан на экосистему готовых сторонних провайдеров FakerPHP (Doctrine-популяторы, специализированные пакеты провайдеров) — она пока шире; или если нужны десятки локалей «поверхностно», без морфологии, — там FakerPHP покрывает больше языков. Сам набор форматтеров FakerPHP при этом доступен здесь полностью, под теми же именами.

Разработка

composer install
composer check       # линтеры + статический анализ + тесты
composer fix         # автоисправления (Rector, PHP CS Fixer, PHPCBF)
composer ci          # полный CI-пайплайн локально
composer docs:build  # пересобрать сравнительные таблицы

Полный список команд с описаниями: composer run-script --list.

Документация

Лицензия

MIT © CloudCastle (alex-4-17@yandex.ru)

🇷🇺 Русский · 🇬🇧 English · 🇩🇪 Deutsch · 🇫🇷 Français · 🇪🇸 Español · 🇮🇹 Italiano