LaravelのFaker用のカスタムプロバイダを作成したいとします(たとえば、ランダムな建物名用)。Laravelで独自のFakerプロバイダを実装する方法
アプリケーションにカスタムプロバイダを保存するにはどうすればいいですか?新しいプロバイダを生成する必要があります
LaravelのFaker用のカスタムプロバイダを作成したいとします(たとえば、ランダムな建物名用)。Laravelで独自のFakerプロバイダを実装する方法
アプリケーションにカスタムプロバイダを保存するにはどうすればいいですか?新しいプロバイダを生成する必要があります
あなたのアプリと種類のルートに移動、コマンドラインで...カスタムプロバイダを生成する
を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 <をお持ちの場合は、新しいプロバイダクラスを使用して新しいファイルを作成し、それを渡す必要があります。providers
配列にこの新しいプロバイダを追加してください。app/config.php
。
今それが登録されますことを、あなたは以下を使用して、新しい偽物のクラスをつかむことができます...さらに
$faker = app('Faker');
echo $faker->title;
、あなたがhttps://laravel.com/docs/5.2/facadesでドキュメントを通過する場合にも、非常にFaker
ファサードを作ることができるはずです簡単に。すべての重い持ち上げが完了したら、新しいファサードクラスを作成してに返す'Faker'
を追加し、facades
の配列にapp/config.php
というように追加するだけです。
その後、あなたは単に私が `$出荷時>(APP \ユーザーを定義::クラス、関数(偽物\ジェネレータ$の偽物){...`持っていたので...
echo Faker::title;
のようにそれを使用することができます工場ではバインディングの名前を 'Faker \ Generator'に変更しました –
@ x-yuriあなたのしたことをより正確にすることができますか?私のプロジェクトには同様の要件があります –
@ rap-2-h私はおそらく、答えのコードが 'Faker'クラス(' $ this-> app-> singleton( 'Faker' ... '))にバインドされていることを意味していますが、' 'Faker \ Generator''が' 'データベース/ factories'には、おそらく 'Faker \ Generator'に余分なフォーマッタ(この場合は' title')を使うように頼っていたでしょう –