The LocalFilesystemProvider
is based on Symfony's Finder component and allows you to load contents from the local file system by attributing a path to a content type.
To use it, specify a provider of type files
:
stenope:
providers:
App\Model\Recipe:
type: 'files'
path: '%kernel.project_dir%/content/recipes'
Since the local file system provider is the default provider, you can ommit it in configuration like this:
stenope:
providers:
App\Model\Recipe: '%kernel.project_dir%/content/recipes'
App\Model\Cook: '%kernel.project_dir%/content/cooks'
Same kind of content can come from different sources, you just have to declare several names providers for this model:
stenope:
providers:
local_recipes:
type: 'files'
class: 'App\Model\Recipe'
distant_recipes:
type: 'my_distant_provider'
class: 'App\Model\Recipe'
Advanced configuration:
stenope:
providers:
App\Model\Recipe:
path: '%kernel.project_dir%/content/recipes'
patterns: '*.md' # Only load .md files
depth: '< 2' # https://symfony.com/doc/current/components/finder.html#directory-depth
App\Model\Cook:
path: '%kernel.project_dir%/content/recipes'
exclude:
- sample.*
- *.php