Installation:
composer require bskton/lorem-ipsum-bundle --dev
For non-Flex projects, enable the bundle in AppKernel.php:
new KnpU\LoremIpsumBundle\KnpULoremIpsumBundle(),
First Use Case: Inject the service into a controller or service:
use KnpU\LoremIpsumBundle\KnpUIpsum;
class DemoController {
public function show(KnpUIpsum $lorem) {
$paragraphs = $lorem->getParagraphs(3); // 3 paragraphs
return response()->json(['fake_text' => $paragraphs]);
}
}
Check Default Config:
Verify config/packages/knpu_lorem_ipsum.yaml exists (create if missing) to override defaults like unicorns_are_real.
Generating Text:
getParagraphs(int $count) for structured content (e.g., blog posts, placeholders).getWords(int $count) for short lists (e.g., tags, metadata).$lorem->getParagraphs(2); // 2 paragraphs
$lorem->getWords(5); // 5 words
Integration with Laravel:
AppServiceProvider:
$this->app->bind('knpu_lorem_ipsum.knpu_ipsum', function ($app) {
return new \KnpU\LoremIpsumBundle\Service\KnpUIpsum();
});
// app/Facades/LoremFacade.php
public static function paragraphs(int $count) {
return app('knpu_lorem_ipsum.knpu_ipsum')->getParagraphs($count);
}
Testing:
$this->mock(KnpUIpsum::class)->shouldReceive('getParagraphs')->andReturn('Mocked text');
Dynamic Placeholders:
// app/Helpers/LoremHelper.php
function lorem_paragraphs(int $count) {
return app('knpu_lorem_ipsum.knpu_ipsum')->getParagraphs($count);
}
{{ lorem_paragraphs(1) }}
Service Not Found:
AppKernel.php for non-Flex projects).knpu_lorem_ipsum.knpu_ipsum) is correct.Configuration Overrides:
knpu_lorem_ipsum.yaml in config/packages/. If missing, defaults apply, but customizations won’t work.knpu_lorem_ipsum:
unicorns_are_real: false
min_sunshine: 0
WordProviderInterface Issues:
# config/services.yaml
services:
App\Services\CustomWordProvider:
tags: ['knpu_lorem_ipsum.word_provider']
\Log::info('Generated text:', ['text' => $lorem->getParagraphs(1)]);
knp-u/lorem-ipsum (Symfony bundle) is installed if the package relies on it.Custom Word Lists:
WordProviderInterface and register it as a service with the knpu_lorem_ipsum.word_provider tag.class TechWordProvider implements WordProviderInterface {
public function getWords(): array {
return ['Laravel', 'Eloquent', 'Blade', 'Queue'];
}
}
Override Defaults:
KnpUIpsum service by creating a decorator:
class CustomKnpUIpsum extends KnpUIpsum {
public function getParagraphs(int $count) {
$text = parent::getParagraphs($count);
return str_replace('unicorn', 'developer', $text); // Custom tweak
}
}
AppServiceProvider:
$this->app->bind('knpu_lorem_ipsum.knpu_ipsum', function ($app) {
return new CustomKnpUIpsum();
});
Localization:
WordProvider implementations and conditionally loading them based on the app’s locale.How can I help you explore Laravel packages today?