Как реализовать собственный поставщик Faker в Laravel

Я хочу создать пользовательский поставщик для Faker в Laravel (например, один для случайного имени здания).

Где я могу хранить пользовательский поставщик в своем приложении и как его использовать?

Related of "Как реализовать собственный поставщик Faker в Laravel"

Вы должны использовать php artisan для создания настраиваемого поставщика …

В командной строке перейдите к корню вашего приложения и введите …

 php artisan make:provider FakerServiceProvider 

Это должно создать нового поставщика в папке app/Providers . Вот как выглядит моя функция регистров, например, в примере с файлами faker.

 /** * Register the application services. * * @return void */ public function register() { $this->app->singleton('Faker', function($app) { $faker = \Faker\Factory::create(); $newClass = new class($faker) extends \Faker\Provider\Base { public function title($nbWords = 5) { $sentence = $this->generator->sentence($nbWords); return substr($sentence, 0, strlen($sentence) - 1); } }; $faker->addProvider($newClass); return $faker; }); } 

Здесь я использую анонимный класс. Если у вас есть php <7, вам, скорее всего, нужно будет создать новый файл с новым классом провайдера и передать его. Убедитесь, что вы также добавили этого нового поставщика в ваш массив providers в app/config.php .

Теперь, когда он зарегистрирован, вы можете захватить свой новый класс faker, используя следующие …

 $faker = app('Faker'); echo $faker->title; 

Кроме того, если вы просматриваете документы на https://laravel.com/docs/5.2/facades, вы также можете легко сделать фасад Faker . Весь тяжелый подъем сделан, вам просто нужно создать новый класс фасада, вернуть getFacadeAccessor 'Faker' и добавить его в массив facades в app/config.php .

Тогда вы можете просто использовать его так …

 echo Faker::title;