Skip to content

Instantly share code, notes, and snippets.

@blood72
Last active May 21, 2020 16:14
Show Gist options
  • Select an option

  • Save blood72/ac843bcc89b3ea999f4dab7a4656190b to your computer and use it in GitHub Desktop.

Select an option

Save blood72/ac843bcc89b3ea999f4dab7a4656190b to your computer and use it in GitHub Desktop.
Add randomBody method in Faker\Generator class
<?php
namespace App\Packages;
use Faker\Generator;
/**
* @method string randomBody($maxDepth = 4, $maxWidth = 4)
*/
class FakerGenerator extends Generator
{
/**
* FakerGenerator constructor.
*
* @return void
*/
public function __construct()
{
$this->addProvider(new class ($this) extends \Faker\Provider\HtmlLorem {
/**
* @param int $maxDepth
* @param int $maxWidth
*
* @return string
*/
public function randomBody($maxDepth = 4, $maxWidth = 4)
{
$bodyTags = [
'div', 'p', 'a', 'span', 'ul', 'li', 'h', 'b', 'i',
'table', 'thead', 'tbody', 'tr', 'td', 'th',
];
return strip_tags($this->randomHtml($maxDepth, $maxWidth), $bodyTags);
}
});
}
}
<?php
namespace App\Providers;
use Illuminate\Support\ServiceProvider;
class FakerServiceProvider extends ServiceProvider
{
/**
* Register any application services.
*
* @return void
*/
public function register()
{
$this->app->singleton(\Faker\Generator::class, function ($app) {
$faker = (new class extends \Faker\Factory {
/**
* @param string $locale
* @return \App\Packages\FakerGenerator|\Faker\Generator
*/
public static function create($locale = parent::DEFAULT_LOCALE)
{
$generator = new \App\Packages\FakerGenerator();
foreach (parent::$defaultProviders as $provider) {
$providerClassName = parent::getProviderClassname($provider, $locale);
$generator->addProvider(new $providerClassName($generator));
}
return $generator;
}
})->create();
return $faker;
});
}
}
@blood72

blood72 commented May 21, 2020

Copy link
Copy Markdown
Author

Tinker output

>>> app(\Faker\Generator::class)->randomBody()
=> "In modi repellat doloremque enim est officia tempora beatae.dolorescorporis<div class="sit">Aperiam totam.</div><div id="40922"><span>Explicabo id facilis a voluptatem velit omnis et na
m.</span>Deserunt unde inventore minima amet expedita.</div><div class="exercitationem"><div class="esse"></div><div id="83302"></div><div class="ut"><i>Sint fugiat quia et exercitationem c
um.</i><p>Distinctio pariatur dolor quo et et.</p>Et quam exercitationem ipsa accusantium quia modi et deleniti dignissimos.</div></div><div id="57818"><a href="example.com">Nostrum nostrum
 sit quam unde qui iure.</a><ul><li>Doloribus nulla.</li><li>Quae.</li><li>Dolor minus dolorum quia pariatur.</li><li>In aliquam corporis.</li><li>Voluptas voluptatem.</li><li>Voluptatem se
qui.</li><li>Non at libero enim harum.</li><li>Quasi.</li><li>Fuga nostrum quia quae sit.</li><li>Maxime natus.</li><li>Odit consequatur eius.</li></ul>Qui esse dolorum.<ul><li>Illum.</li><
li>Aliquid quia mollitia aut.</li><li>Quos est quod placeat a.</li><li>Sunt voluptatem ea est quia.</li><li>Sint rerum.</li></ul></div>\n"

Purpose: generate dummy data to be inserted into the post or comment content

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment