Installation Add via Composer:
composer require joshtronic/php-loremipsum
No configuration or service provider needed—just autoload.
First Usage Generate a single paragraph:
use Joshtronic\LoremIpsum\LoremIpsum;
$lorem = new LoremIpsum();
echo $lorem->paragraph(); // Outputs: "Lorem ipsum dolor sit amet..."
Quick Use Case Seed a database with placeholder text:
$faker = new LoremIpsum();
foreach (range(1, 10) as $i) {
DB::table('posts')->insert([
'title' => $faker->sentence(),
'body' => $faker->paragraphs(3),
]);
}
Joshtronic\LoremIpsum\LoremIpsum (no external docs, but methods are self-documenting).sentence() → Single sentence.paragraph() → 1–3 sentences.paragraphs(int $count) → Array of paragraphs.words(int $count) → Array of words.Dynamic Placeholder Generation Use in Laravel Blade templates:
@php
$lorem = new \Joshtronic\LoremIpsum\LoremIpsum();
@endphp
<div>{{ $lorem->paragraph() }}</div>
Testing Data Factories Replace Faker for lightweight tests:
public function test_placeholder_generation()
{
$lorem = new LoremIpsum();
$this->assertStringContainsString('lorem', $lorem->sentence());
}
API Mocking Generate fake responses for API contracts:
$response = [
'data' => [
'title' => $lorem->sentence(),
'content' => $lorem->paragraphs(5),
],
];
Laravel Service Container Bind the class for dependency injection:
$this->app->singleton(LoremIpsum::class, function () {
return new LoremIpsum();
});
Then inject via constructor:
public function __construct(private LoremIpsum $lorem) {}
Custom Word Lists Extend the generator by subclassing:
class CustomLorem extends LoremIpsum {
protected function getWords(): array {
return array_merge(parent::getWords(), ['laravel', 'eloquent']);
}
}
Seeding
Use in DatabaseSeeder:
public function run()
{
$lorem = new LoremIpsum();
Post::factory()->count(10)->create([
'body' => $lorem->paragraphs(rand(1, 5)),
]);
}
Archived Package
Predictable Output
$lorem = new LoremIpsum();
$lorem->setSeed(time()); // Avoid repeats in loops.
No HTML/Markdown
spatie/array-to-xml) for structured formats.Word Length
$lorem->paragraph(500); // Max ~500 chars.
Check Word List If output seems off, inspect the default words:
$lorem = new LoremIpsum();
print_r($lorem->getWords());
Override Methods Debug by extending:
class DebugLorem extends LoremIpsum {
public function sentence() {
$result = parent::sentence();
Log::debug("Generated: $result");
return $result;
}
}
Custom Dictionaries
Replace getWords() to inject domain-specific terms:
class TechLorem extends LoremIpsum {
protected function getWords(): array {
return [
'laravel', 'eloquent', 'queue', 'artisan',
// ... merge with parent words
];
}
}
HTML Entities Escape output for Blade:
echo e($lorem->paragraph());
Performance
$lorem = app(LoremIpsum::class); // Reuses singleton.
setSeed()).config/loremipsum.php—just instantiate directly.How can I help you explore Laravel packages today?