rasmus-bertell / faker
Faker is a PHP library that generates fake data for you.
Requires
- php: ^8.1
- psr/container: ^1.0 || ^2.0
- symfony/deprecation-contracts: ^2.2 || ^3.5
Requires (Dev)
- ext-intl: *
- bamarni/composer-bin-plugin: ^1.8.2
- phpunit/phpunit: ^9.6.22
- symfony/phpunit-bridge: ^5.4.48
Suggests
- ext-curl: Required by Faker\Provider\Image to download images.
- ext-dom: Required by Faker\Provider\HtmlLorem for generating random HTML.
- ext-iconv: Required by Faker\Provider\ru_RU\Text::realText() for generating real Russian text.
- ext-mbstring: Required for multibyte Unicode string functionality.
Conflicts
README
Faker
Faker is a PHP library that generates fake data for you. Whether you need to bootstrap your database, create good-looking XML documents, fill-in your persistence to stress test it, or anonymize data taken from a production service, Faker is for you.
It's heavily inspired by Perl's Data::Faker, and by Ruby's Faker.
This fork of (FakerPHP)[https://github.com/FakerPHP/Faker] aims to have more rapid development and utilizes newer PHP features at the cost of dropping the strict backwards compatibility constraint and support for older PHP versions.
Getting Started
Installation
Faker requires PHP >= 8.1.
composer require rasmus-bertell/faker
Documentation
Full documentation can be found over on fakerphp.github.io.
Basic Usage
Use Faker\Factory::create()
to create and initialize a Faker generator, which
can generate data by accessing methods named after the type of data you want.
<?php declare(strict_types=1); require_once 'vendor/autoload.php'; // use the factory to create a Faker\Generator instance $faker = Faker\Factory::create(); // generate data by calling methods echo $faker->name(); // 'Vince Sporer' echo $faker->email(); // 'walter.sophia@hotmail.com' echo $faker->text(); // 'Numquam ut mollitia at consequuntur inventore dolorem.'
Each call to $faker->name()
yields a different (random) result. This is
because Faker uses __call()
magic, and forwards Faker\Generator->$method()
calls to Faker\Generator->format($method, $attributes)
.
<?php declare(strict_types=1); for ($i = 0; $i < 3; $i++) { echo $faker->name() . "\n"; } // 'Cyrus Boyle' // 'Alena Cummerata' // 'Orlo Bergstrom'
Automated refactoring
If you already used this library with its properties, they are now deprecated and needs to be replaced by their equivalent methods.
You can use the provided Rector config file to automate the work.
Run
composer require --dev rector/rector
to install rector/rector
.
Run
vendor/bin/rector process src/ --config vendor/rasmus-bertell/faker/rector-migrate.php
to run rector/rector
.
Note: do not forget to replace src/
with the path to your source directory.
Alternatively, import the configuration in your rector.php
file:
<?php declare(strict_types=1); use Rector\Config; return static function (Config\RectorConfig $rectorConfig): void { $rectorConfig->import('vendor/rasmus-bertell/faker/rector-migrate.php'); };
License
Faker is released under the MIT License. See LICENSE
for details.
PHP Version Support Policy
The maintainers of this package add support for a PHP version following its initial release and drop support for a PHP version one year after it has reached its end of security support.
Backward compatibility promise
Faker is using Semver. This means that versions are tagged with MAJOR.MINOR.PATCH. Only a new major version will be allowed to break backward compatibility.
Classes marked as @experimental
or @internal
are not included in our
backward compatibility promise. You are also not guaranteed that the value
returned from a method stays the same always the same between releases, even
with the same seed. You are guaranteed that the returned data type will not
change.
PHP 8 introduced named arguments, which increased the cost and reduces flexibility for package maintainers. The names of the arguments for methods in Faker is not included in the backwards compatibility promise.