folklore / laravel-folklore
The shared foundation of Folklore's Laravel sites: entities, repositories, JSON columns with references, and opt-in modules
Requires
- php: ^8.3
- folklore/laravel-json-data: ^1.0.0-alpha.10
- illuminate/console: ^12.69|^13.30
- illuminate/contracts: ^12.69|^13.30
- illuminate/database: ^12.69|^13.30
- illuminate/pagination: ^12.69|^13.30
- illuminate/support: ^12.69|^13.30
Requires (Dev)
- cviebrock/eloquent-sluggable: ^11.0|^12.0|^13.0
- fakerphp/faker: ^1.23
- folklore/laravel-image: ^2.0.0-alpha.1
- folklore/laravel-locale: ^8.1
- folklore/laravel-mediatheque: ^2.0.0-alpha.10
- folklore/laravel-panneau: ^5.0.0-alpha.16
- google/apiclient: ^2.18
- guzzlehttp/guzzle: ^7.15.2|^8.0.1
- larastan/larastan: ^3.0
- laravel/fortify: ^1.13
- laravel/framework: ^12.69|^13.30
- laravel/pint: ^1.18
- mockery/mockery: ^1.6
- orchestra/testbench: ^10.0|^11.0
- parsecsv/php-parsecsv: ^1.3
- phpunit/phpunit: ^11.5|^12.0
- rector/rector: ^2.0
Suggests
- cviebrock/eloquent-sluggable: The pages module.
- folklore/laravel-image: The image sizes of the medias module (^2.0.0-alpha.1).
- folklore/laravel-locale: The pages module (^8.1).
- folklore/laravel-mediatheque: The medias module (^2.0.0-alpha.10), and the pages module, whose models use its HasMedias.
- folklore/laravel-panneau: The panneau module: the Panneau 5 adapter of the repositories, and its standard resources (^5.0.0-alpha.16).
- google/apiclient: Google Places (^2.18), until it moves to Laravel's HTTP client.
- guzzlehttp/guzzle: Downloading media from a URL, Google Places and Customer.io (^7.15.2|^8.0.1).
- laravel/fortify: The auth module (^1.13).
- laravel/framework: The modules use parts of Laravel that a Laravel application has: HTTP, routing, auth, mail, broadcasting, views.
- parsecsv/php-parsecsv: The CSV export of Google Drive (^1.3).
- pubnub/pubnub: The pubnub module: broadcasting events through PubNub.
- ramsey/uuid: Support\ShortUuid, which every Laravel application has.
- rector/rector: The Rector rules of the upgrade from 1.1 (Folklore\Rector\FolkloreSetList::UPGRADE_2_0).
Provides
None
Conflicts
- folklore/laravel-mediatheque: <2.0.0-alpha.10
- folklore/laravel-panneau: >=5.0.0-alpha.1,<5.0.0-alpha.16
Replaces
None
- v2.x-dev
- v2.0.0-alpha.15
- v2.0.0-alpha.14
- v2.0.0-alpha.13
- v2.0.0-alpha.12
- v2.0.0-alpha.11
- v2.0.0-alpha.10
- v2.0.0-alpha.9
- v2.0.0-alpha.8
- v2.0.0-alpha.7
- v2.0.0-alpha.6
- v2.0.0-alpha.5
- v2.0.0-alpha.4
- v2.0.0-alpha.3
- v2.0.0-alpha.2
- v2.0.0-alpha.1
- v1.x-dev
- v1.1.x-dev
- v1.1.9
- v1.1.8
- v1.1.7
- v1.1.6
- v1.1.5
- v1.1.4
- v1.1.3
- v1.1.2
- v1.1.1
- v1.1.0
- v0.2.2
- v0.2.1
- v0.2.0
- v0.1.3
- v0.0.2
- v0.0.1
- dev-feature/158-pages-schemas
This package is auto-updated.
Last update: 2026-11-11 20:20:56 UTC
README
The shared foundation of the Laravel sites built by Folklore: entities and repositories over Eloquent models, JSON columns with references to other models (through folklore/laravel-json-data), and opt-in modules for medias, pages, auth and third-party services.
Versions
| Version | Branch | Status | Requires |
|---|---|---|---|
| 2.x | v2.x (default) |
In development, released as alphas | PHP 8.3+, Laravel 12 or 13 |
| 1.x | v1.1 |
Maintained: fixes and security | PHP 8.3+, Laravel 11 to 13 |
Installation
2.x, during its pre-releases:
composer require folklore/laravel-folklore:^2.0@alpha folklore/laravel-json-data:^1.0@alpha
folklore/laravel-json-data is required by the core. Require it too while it has no stable release: a stability flag doesn't apply to the dependencies of a required package.
The modules are off by default and are turned on in config/site.php; each one suggests the packages it needs. See the architecture.
With the panneau module, a site's admin starts from the standard resources: pages with their blocks, users and the media library, which the site's own classes extend (the architecture):
namespace App\Panneau\Resources; class Pages extends \Folklore\Panneau\Resources\Pages {}
folklore:install writes these classes, with the site's contracts, entities, models, repositories and block types, and wires them in config/site.php and App\Providers\PanneauServiceProvider. It skips the files that exist, so it can run again to add a resource:
php artisan folklore:install # pages, users and medias php artisan folklore:install --only=medias # one resource php artisan folklore:install --dry-run # what it would write
--force overwrites the classes that exist. php artisan vendor:publish --tag=folklore-stubs publishes its stubs, and those of the make:* commands, to change them.
1.x:
composer require folklore/laravel-folklore:^1.1
Documentation
- docs/: architecture, decisions, the plan of 2.0 (roadmap) and the upgrade guide from 1.1.
- CHANGELOG
- AGENTS.md: how to work on this repository.
License
MIT