Search by

yanick-k / images-faker-lorem

Yanick-K

Reliable Lorem.Space image provider for FakerPHP.

v2.0.0 2026-05-15 12:23 UTC

This package is auto-updated.

Last update: 2026-09-15 13:08:02 UTC


README

Reliable Lorem.Space image provider for FakerPHP.

The package adds Faker formatters that generate Lorem.Space URLs or download the generated image into a local directory.

Requirements

  • PHP 8.2 or higher
  • fakerphp/faker
  • cURL extension recommended for downloads. allow_url_fopen is supported as a fallback.

Install

composer require yanick-k/fakerphp-lorem-space-provider

Usage

use Faker\Factory;
use Lorem\Faker\LoremSpaceProvider;

$faker = Factory::create();
$faker->addProvider(new LoremSpaceProvider($faker));

$url = $faker->loremSpaceUrl(LoremSpaceProvider::CATEGORY_FACE);
// https://api.lorem.space/image/face?w=640&h=480

$path = $faker->loremSpace(
    LoremSpaceProvider::CATEGORY_FACE,
    __DIR__ . '/tmp',
    320,
    320
);

API

loremSpaceUrl(string $category, int $width = 640, int $height = 480): string

Returns a Lorem.Space image URL.

Width and height are clamped to Lorem.Space limits:

  • minimum: 8
  • maximum: 2000

loremSpace(string $category, ?string $dir = null, int $width = 640, int $height = 480, bool $fullPath = true): string|false

Downloads the image and returns the saved path.

  • $dir defaults to sys_get_temp_dir()
  • $fullPath = false returns only the generated filename
  • returns false when the remote download fails
  • throws InvalidArgumentException for invalid categories, non HTTP(S) URLs, or unwritable directories

Downloads are written to a temporary .part file first, validated as images, then moved into place.

Categories

Use constants from LoremSpaceProvider instead of hard-coded strings:

LoremSpaceProvider::CATEGORY_MOVIE;
LoremSpaceProvider::CATEGORY_GAME;
LoremSpaceProvider::CATEGORY_ALBUM;
LoremSpaceProvider::CATEGORY_BOOK;
LoremSpaceProvider::CATEGORY_FACE;
LoremSpaceProvider::CATEGORY_FASHION;
LoremSpaceProvider::CATEGORY_AI;
LoremSpaceProvider::CATEGORY_DASHBOARD;
LoremSpaceProvider::CATEGORY_CRM;
LoremSpaceProvider::CATEGORY_FINANCE;
LoremSpaceProvider::CATEGORY_CALENDAR;
LoremSpaceProvider::CATEGORY_MESSENGER;
LoremSpaceProvider::CATEGORY_SHOES;
LoremSpaceProvider::CATEGORY_WATCH;
LoremSpaceProvider::CATEGORY_FURNITURE;
LoremSpaceProvider::CATEGORY_PIZZA;
LoremSpaceProvider::CATEGORY_BURGER;
LoremSpaceProvider::CATEGORY_DRINK;
LoremSpaceProvider::CATEGORY_CAR;
LoremSpaceProvider::CATEGORY_HOUSE;

You can also inspect them dynamically:

$categories = LoremSpaceProvider::categories();

Development

composer install
composer check

Individual checks:

composer cs
composer analyse
composer test

Security and reliability

The downloader only accepts HTTP(S), follows at most three redirects, verifies TLS when cURL is available, applies a 10 second timeout, caps downloads to 20 MB, and validates that the received file is an image before returning it.

License

MIT