peryoudow/vendor/league/plates/docs/engine/folders.md
2020-01-06 14:23:12 +01:00

50 lines
1.5 KiB
Markdown

---
layout: default
permalink: engine/folders/
title: Folders
---
Folders
=======
Folders make it really easy to organize and access your templates. Folders allow you to group your templates under different namespaces, each of which having their own file system path.
## Creating folders
To create folders, use the `addFolder()` method:
~~~ php
// Create new Plates instance
$templates = new League\Plates\Engine();
// Add folders
$templates->addFolder('admin', '/path/to/admin/templates');
$templates->addFolder('emails', '/path/to/email/templates');
~~~
## Using folders
To use the folders you created within your project simply append the folder name with two colons before the template name. For example, to render a welcome email:
~~~ php
$email = $templates->render('emails::welcome');
~~~
This works with template functions as well, such as layouts or nested templates. For example:
~~~ php
<?php $this->layout('shared::template') ?>
~~~
## Folder fallbacks
When enabled, if a folder template is missing, Plates will automatically fallback and look for a template with the **same** name in the default folder. This can be helpful when using folders to manage themes. To enable fallbacks, simply pass `true` as the third parameter in the `addFolders()` method.
~~~ php
// Create new Plates engine
$templates = new \League\Plates\Engine('/path/to/default/theme');
// Add themes
$templates->addFolder('theme1', '/path/to/theme/1', true);
$templates->addFolder('theme2', '/path/to/theme/2', true);
~~~