Getting Started
- What is Flextype?
- Requirements
- Installation
- Configuration
- Folder Structure
- API Reference
- Code of Conduct
- Getting Help
- License
Core Concepts
Console
Rest API
Flextype allows you to configure your project in any way you can dream up, and it’s thanks to the powerful and flexible configuration options that make this possible.
All Flextype configuration files are written in YAML syntax with a .yaml
file extension. YAML is very intuitive which makes it very easy to both read and write.
You can update and create project configuration by editing file project/config/settings.yaml
[icon name="file-text" set="bootstrap"] project/config/flextype/settings.yaml
# Set the timezone to be used on the project.
# For a list of valid timezone settings, see:
# http://php.net/manual/en/timezones.php
timezone: UTC
# Charset
#
# Set internal character encoding.
#
# Currently the following names are supported:
# http://php.net/manual/en/function.mb-regex-encoding.php#121645
charset: UTF-8
# The locale that'll be used by the Flextype.
#
# Available locales to use: src/flextype/locales.yaml
locale: en_US
# Application Base url
#
# Define application base url (without trailing slash)
base_url: ''
# Application Base Path
#
# Define application base path (without trailing and without starting slash) if application located in subdirectory
base_path: ''
# Valid date format
#
# Date format variants:
#
# d-m-Y H:i" - 02-02-2020 09:41
# Y-m-d H:i" - 2020-02-02 09:41
# m/d/Y h:i a - 02/02/2020 09:41 pm
# H:i d-m-Y - 09:41 02-02-2020
# h:i a m/d/Y - 09:41 pm 02/02/2020
date_format: 'd-m-Y H:i'
# Valid date format to display
#
# d-m-Y H:i" - 02-02-2020 09:41
# Y-m-d H:i" - 2020-02-02 09:41
# m/d/Y h:i a - 02/02/2020 09:41 pm
# H:i d-m-Y - 09:41 02-02-2020
# h:i a m/d/Y - 09:41 pm 02/02/2020
date_display_format: 'd-m-Y H:i'
# Display errors
#
# Please make sure to set false for error `display` in production!
#
# Displaying PHP errors on a public server can be a serious security risk:
#
# - Error messages are displayed with detailed information about the code structure (e.g. file path, class, method)
# - With Whoops enabled, there will be even more detailed information about the code structure
# - Detailed error messages for login failures could leak information to attackers
#
# In a production environment, always log errors to your PHP error logs.
errors:
# Set true to display errors.
display: false
# Editor (emacs, idea, macvim, phpstorm, sublime, textmate, xdebug, vscode, atom, espresso)
editor: atom
# Error page title
page_title: Error!
# Handler (pretty, plain, json, xml)
handler: pretty
# Entries
entries:
directory: 'entries'
cache:
string: ""
directives:
expressions:
enabled: true
enabled_globally: true
path: "src/flextype/core/Entries/Directives/ExpressionsDirective.php"
shortcodes:
enabled: true
enabled_globally: true
path: "src/flextype/core/Entries/Directives/ShortcodesDirective.php"
markdown:
enabled: true
enabled_globally: false
path: "src/flextype/core/Entries/Directives/MarkdownDirective.php"
textile:
enabled: true
enabled_globally: false
path: "src/flextype/core/Entries/Directives/TextileDirective.php"
php:
enabled: false
enabled_globally: false
path: "src/flextype/core/Entries/Directives/PhpDirective.php"
types:
enabled: true
path: "src/flextype/core/Entries/Directives/TypesDirective.php"
macros:
debug: false
php:
enabled: false
path: "src/flextype/core/Entries/Macros/PhpMacros.php"
registry:
enabled: true
path: "src/flextype/core/Entries/Macros/RegistryMacros.php"
get:
enabled: true
entries:
enabled: true
path: "src/flextype/core/Entries/Macros/EntriesMacros.php"
fetch:
enabled: true
type: array
collections:
default:
filename: entry
extension: md
serializer: frontmatter
fields:
slug:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/SlugField.php"
published_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/PublishedAtField.php"
published_by:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/PublishedByField.php"
modified_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/ModifiedAtField.php"
created_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedAtField.php"
created_by:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedByField.php"
routable:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/RoutableField.php"
visibility:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/VisibilityField.php"
uuid:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/UuidField.php"
id:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/IdField.php"
tokens:
pattern: tokens
filename: token
extension: yaml
serializer: yaml
fields:
modified_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/ModifiedAtField.php"
created_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedAtField.php"
created_by:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedByField.php"
uuid:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/UuidField.php"
id:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/IdField.php"
tokens_item:
pattern: tokens/([a-zA-Z0-9_-]+)
filename: token
extension: yaml
serializer: yaml
fields:
modified_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/ModifiedAtField.php"
created_at:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedAtField.php"
created_by:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/CreatedByField.php"
uuid:
enabled: true
path: "src/flextype/core/Entries/Fields/Default/UuidField.php"
id:
enabled: true
path: "src/flextype/core/Entries/Fields/Tokens/Items/IdField.php"
calls:
enabled: true
path: "src/flextype/core/Entries/Fields/Tokens/Items/CallsField.php"
limit_calls:
enabled: true
path: "src/flextype/core/Entries/Fields/Tokens/Items/LimitCallsField.php"
state:
enabled: true
path: "src/flextype/core/Entries/Fields/Tokens/Items/StateField.php"
# Cache
#
# - enabled: Set to true to enable caching
#
# - prefix: Cache prefix string (prevents cache conflicts)
#
# - driver: Available drivers: auto (will get one from installed cache drivers), apcu,
# apc, array, wincache, xcache, memcache, memcached, redis, file.
#
# - drivers.files.path: The path where the written cache files belong to (system temp directory by default).
#
# - drivers.files.secure_file_manipulation: This option enforces a strict I/O manipulation policy by adding more integrity checks.
# This option may slow down the write operations, therefore you must use it with caution.
#
# - drivers.files.htaccess: Option designed to (dis)allow the auto-generation of .htaccess.
#
# - drivers.files.security_key: A security key that define the subdirectory name. 'auto' value will be the HTTP_HOST value.
#
# - drivers.files.cache_file_extension: This allows you to setup a custom (but safe) cache file extension. ('txt|cache|db|pfc')
#
# - drivers.files.item_detailed_dates: This option will define if the Items will make use of detailed dates such as Creation/modification date.
# Trying to access to these date without being explicitly enabled will throw a LogicException
#
# - drivers.files.auto_tmp_fallback: Option designed to automatically attempt to fallback to temporary directory if the cache fails to write on the specified directory.
#
# - drivers.files.default_ttl: This option define a default ttl (time-to-live, in seconds) for item that has no specified expiration date/ttl.
#
# - drivers.files.default_key_hash_function: This option will allow you to define a custom hash function for the $item->getEncodedKey() method.
# Callable objects are not allowed, but static method such as \Absolute\Namespace\ToStatic::method are allowed.
#
# - drivers.files.default_file_name_hash_function: This option will allow you to define a custom hash function for every I/O method that ends up to write an hashed filename on the disk.
#
# - drivers.files.default_chmod: This option will define the chmod used to write driver cache files.
#
# - drivers.files.limited_memory_by_object:
#
# - drivers.files.compress_data:
#
# - drivers.files.prevent_cache_slams: This option will allow you to prevent cache slams when making use of heavy cache items.
#
# - drivers.files.cache_slams_timeout: This option defines the cache slams timeout in seconds.
cache:
enabled: true
driver: auto
drivers:
apcu: {}
cassandra:
host: '127.0.0.1'
port: 9042
timeout: 2
username: ''
password: ''
ssl_enabled: false
ssl_verify: false
default_ttl: 900
couchdb:
database: 'flextype'
path: '/'
host: '127.0.0.1'
port: 8091
username: ''
password: ''
bucket_name: default
ssl: false
timeout: 10
default_ttl: 900
devnull: {}
phparray:
path: '/data'
security_key: 'auto'
secure_file_manipulation: false
default_ttl: 900
files:
path: '/data'
security_key: 'auto'
secure_file_manipulation: false
cache_file_extension: txt
default_ttl: 900
leveldb:
path: '/data'
security_key: 'auto'
default_ttl: 900
memcache:
host: '127.0.0.1'
port: 11211
sasl_user: ''
sasl_password: ''
path: ''
compress_data: false
servers: {}
default_ttl: 900
memcached:
host: '127.0.0.1'
port: 11211
sasl_user: ''
sasl_password: ''
path: ''
compress_data: false
servers: {}
default_ttl: 900
memstatic: {}
mongodb:
host: '127.0.0.1'
port: 27017
username: ''
password: ''
timeout: 3
servers: {}
collection_name: 'Cache'
default_ttl: 900
predis:
host: '127.0.0.1'
port: 6379
password: ''
timeout: 5
database: 0
opt_prefix: ''
persistent: false
default_ttl: 900
redis:
host: '127.0.0.1'
port: 6379
password: ''
timeout: 5
database: 0
opt_prefix: ''
default_ttl: 900
sqlite:
path: '/data'
security_key: auto
default_ttl: 900
ssdb:
host: 127.0.0.1
port: 8888
password: ''
timeout: 5
wincache: {}
xcache: {}
zenddisk: {}
zendshm: {}
# When true, Flextype will add a Content-Length header to
# the response. If you are using a runtime analytics tool,
# such as New Relic, then this should be disabled.
add_content_length_header: true
# If false, then no output buffering is enabled.
# If 'append' or 'prepend', then any echo or print statements
# are captured and are either appended or prepended to the Response
# returned from the route callable.
output_buffering: append
# Router
router:
# Caching the FastRoute routes for better perfomance.
# Set to true to enable the FastRoute cache system.
cache:
enabled: true
# Set to true to enable the Flextype CLI Application
cli:
enabled: true
# Set to true to enable the Flextype Application
app:
enabled: true
# View
view:
extension: 'php'
# Slugify
slugify:
# Set true to enable slugify.
enabled: true
# By default Slugify will use dashes as separators.
# If you want to use a different default separator,
# you can set the separator option.
separator: "-"
# By default Slugify will convert the slug to lowercase.
# If you want to preserve the case of the string you can set the
# lowercase option to false.
lowercase: true
# By default Slugify will remove leading and trailing separators before
# returning the slug. If you do not want the slug to be trimmed you can
# set the trim option to false.
trim: true
# You can also change the regular expression that is used to replace
# characters with the separator.
regexp: "/[^A-Za-z0-9]+/"
# Lowercasing is done before using the regular expression.
# If you want to keep the lowercasing behavior but your
# regular expression needs to match uppercase letters,
# you can set the lowercase_after_regexp option to true.
lowercase_after_regexp: false
# Adds in an option to go through strip_tags() in case the string contains HTML etc.
strip_tags: false
# Serializers
#
# json.decode.cache: Cache result data or no. Default is true.
# json.decode.assoc: Decode assoc. When TRUE, returned objects will be converted into associative arrays.
# json.decode.depth: Decode Depth. Set the maximum depth. Must be greater than zero.
# json.decode.flags: Bitmask consisting of decode options.
# json.encode.options: Bitmask consisting of encode options
# json.encode.depth: Encode Depth. Set the maximum depth. Must be greater than zero.
#
# yaml.decode.cache: Cache result data or no. Default is true.
# yaml.decode.native: Use native php pecl parser or symfony parser.
# yaml.decode.flags: A bit field of DUMP_* constants to customize the dumped YAML string.
# yaml.encode.inline: The level where you switch to inline YAML.
# yaml.encode.indent: The amount of spaces to use for indentation of nested nodes.
# yaml.encode.flags: A bit field of DUMP_* constants to customize the dumped YAML string.
#
# frontmatter.decode.cache: Cache result data or no. Default is true.
# frontmatter.decode.header_serializer: Header serializer.
# frontmatter.encode.header_serializer: Header serializer.
#
# neon.decode.cache: Cache result data or no. Default is true.
# neon.encode.flags: The flag can be 1, which will create multiline output.
#
# phparray.decode.cache: Cache result data or no. Default is true.
serializers:
json:
decode:
cache:
enabled: true
string: ""
assoc: true
depth: 512
flags: 0
encode:
options: 0
depth: 512
json5:
decode:
cache:
enabled: true
string: ""
assoc: true
depth: 512
flags: 0
encode:
options: 0
depth: 512
yaml:
decode:
cache:
enabled: true
string: ""
native: true
flags: 0
encode:
inline: 10
indent: 2
flags: 0
frontmatter:
decode:
cache:
enabled: true
string: ""
cache_id_string: ""
header:
serializer: yaml
allowed: ['yaml', 'json', 'json5', 'neon']
encode:
header:
serializer: yaml
allowed: ['yaml', 'json', 'json5', 'neon']
neon:
decode:
cache:
enabled: true
string: ""
encode:
blockMode: false
indentation: "\t"
phparray:
decode:
cache:
enabled: true
string: ""
encode:
wrap: true
# Parsers
#
# - markdown.cache: Cache result data or no. Default is true.
#
# - markdown.commonmark.renderer.block_separator: String to use for separating renderer block elements.
#
# - markdown.commonmark.renderer.inner_separator: String to use for separating inner block contents.
#
# - markdown.commonmark.renderer.soft_break: String to use for rendering soft breaks.
#
# - markdown.commonmark.commonmark.enable_em: Disable <em> parsing by setting to false; enable with true (default: true)
#
# - markdown.commonmark.commonmark.enable_strong: Disable <strong> parsing by setting to false; enable with true (default: true)
#
# - markdown.commonmark.commonmark.use_asterisk: Disable parsing of * for emphasis by setting to false; enable with true (default: true)
#
# - markdown.commonmark.commonmark.use_underscore: Disable parsing of _ for emphasis by setting to false; enable with true (default: true)
#
# - markdown.commonmark.commonmark.unordered_list_markers: Array of characters that can be used to indicate a bulleted list.
#
# - markdown.commonmark.html_input: `strip` all HTML (equivalent to 'safe' => true). `allow` all HTML input as-is (default value; equivalent to `‘safe’ => false) `escape` Escape all HTML.
#
# - markdown.commonmark.allow_unsafe_links: Remove risky link and image URLs by setting this to false (default: true).
#
# - markdown.commonmark.max_nesting_level: The maximum nesting level for blocks (default: PHP_INT_MAX). Setting this to a positive integer can help protect against long parse times and/or segfaults if blocks are too deeply-nested.
#
# - markdown.commonmark.slug_normalizer.max_length: Limits the size of generated slugs (defaults to 255 characters)
parsers:
markdown:
cache:
enabled: true
string: ""
commonmark:
renderer:
block_separator: "\n"
inner_separator: "\n"
soft_break: "\n"
commonmark:
enable_em: true
enable_strong: true
use_asterisk: true
use_underscore: true
unordered_list_markers: ['-', '*', '+']
html_input: 'allow'
allow_unsafe_links: false
max_nesting_level: 9223372036854775807
slug_normalizer:
max_length: 255
textile:
cache:
enabled: true
string: ""
restricted: false
document_type: 'xhtml'
document_root_directory: ''
lite: false
images: true
link_relation_ship: ''
raw_blocks: false
block_tags: true
line_wrap: true
image_prefix: ''
link_prefix: ''
symbol: []
dimensionless_images: true
shortcodes:
cache:
enabled: true
string: ""
cache_id_string: ""
opening_tag: "("
closing_tag: ")"
closing_tag_marker: "/"
parameter_value_separator: ":"
parameter_value_delimiter: "'"
shortcodes:
entries:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/EntriesShortcode.php"
fetch:
enabled: true
date:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/DateShortcode.php"
php:
enabled: false
path: "src/flextype/core/Parsers/Shortcodes/PhpShortcode.php"
raw:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/RawShortcode.php"
textile:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/TextileShortcode.php"
markdown:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/MarkdownShortcode.php"
registry:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/RegistryShortcode.php"
get:
enabled: true
url:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/UrlShortcode.php"
strings:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/StringsShortcode.php"
filesystem:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/FilesystemShortcode.php"
get:
enabled: true
i18n:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/I18nShortcode.php"
if:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/IfShortcode.php"
when:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/WhenShortcode.php"
unless:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/UnlessShortcode.php"
uuid:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/UuidShortcode.php"
const:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/ConstShortcode.php"
var:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/VarShortcode.php"
field:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/FieldShortcode.php"
fetch:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/FetchShortcode.php"
calc:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/CalcShortcode.php"
eval:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/EvalShortcode.php"
type:
enabled: true
path: "src/flextype/core/Parsers/Shortcodes/TypeShortcode.php"
expressions:
cache:
enabled: true
string: ''
opening_variable_tag: "[["
closing_variable_tag: "]]"
opening_block_tag: "[%"
closing_block_tag: "%]"
opening_comment_tag: "[#"
closing_comment_tag: "#]"
expressions:
math:
enabled: true
class: "Flextype\\Parsers\\Expressions\\MathExpression"
date:
enabled: true
class: "Flextype\\Parsers\\Expressions\\DateExpression"
actions:
enabled: true
class: "Flextype\\Parsers\\Expressions\\ActionsExpression"
registry:
enabled: true
class: "Flextype\\Parsers\\Expressions\\RegistryExpression"
entries:
enabled: true
class: "Flextype\\Parsers\\Expressions\\EntriesExpression"
fetch:
enabled: true
has:
enabled: true
registry:
enabled: true
create:
enabled: false
move:
enabled: false
update:
enabled: false
delete:
enabled: false
fetch:
enabled: true
class: "Flextype\\Parsers\\Expressions\\FetchExpression"
filesystem:
enabled: true
class: "Flextype\\Parsers\\Expressions\\FilesystemExpression"
i18n:
enabled: true
class: "Flextype\\Parsers\\Expressions\\I18nExpression"
serializers:
enabled: true
class: "Flextype\\Parsers\\Expressions\\SerializersExpression"
parsers:
enabled: true
class: "Flextype\\Parsers\\Expressions\\ParsersExpression"
slugify:
enabled: true
class: "Flextype\\Parsers\\Expressions\\SlugifyExpression"
strings:
enabled: true
class: "Flextype\\Parsers\\Expressions\\StringsExpression"
collection:
enabled: true
class: "Flextype\\Parsers\\Expressions\\CollectionExpression"
csrf:
enabled: true
class: "Flextype\\Parsers\\Expressions\\CsrfExpression"
var:
enabled: true
class: "Flextype\\Parsers\\Expressions\\VarExpression"
field:
enabled: true
class: "Flextype\\Parsers\\Expressions\\FieldExpression"
const:
enabled: true
class: "Flextype\\Parsers\\Expressions\\ConstExpression"
url:
enabled: true
class: "Flextype\\Parsers\\Expressions\\UrlExpression"
when:
enabled: true
class: "Flextype\\Parsers\\Expressions\\WhenExpression"
unless:
enabled: true
class: "Flextype\\Parsers\\Expressions\\UnlessExpression"
# CORS
#
# CORS (Cross-origin resource sharing) allows JavaScript web apps to make HTTP requests to other domains.
# This is important for third party web apps using Flextype, as without CORS, a JavaScript app hosted on example.com
# couldn't access our APIs because they're hosted on another.com which is a different domain.
cors:
# Set to true to enable cors
enabled: true
# The Access-Control-Allow-Origin response header indicates whether
# the response can be shared with requesting code from the given origin.
#
# read more: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Origin
origin: "*"
# The Access-Control-Allow-Headers response header is used in response
# to a preflight request which includes the Access-Control-Request-Headers
# to indicate which HTTP headers can be used during the actual request.
#
# read more: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Headers
headers: ["X-Requested-With", "Content-Type", "Accept", "Origin", "Authorization"]
# The Access-Control-Allow-Methods response header specifies the method
# or methods allowed when accessing the resource in response to a preflight request.
#
# read more: https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Access-Control-Allow-Methods
methods: [GET, POST, PUT, DELETE, PATCH, OPTIONS]
# The Access-Control-Expose-Headers response header indicates which headers
# can be exposed as part of the response by listing their names.
#
# read more: https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Access-Control-Expose-Headers
expose: []
# The Access-Control-Allow-Credentials response header tells browsers whether
# to expose the response to frontend JavaScript code when the request's credentials
# mode (Request.credentials) is include.
#
# read more: https://developer.mozilla.org/ru/docs/Web/HTTP/Headers/Access-Control-Allow-Credentials
credentials: false
# Upload
upload:
# Uploads directory
directory: 'uploads'
# Overwrite existing files.
overwrite: true
# Auto-confirm uploads.
autoconfirm: false
# Prefixing uploads.
prefix: ''
# Validation options
validation:
# Allowed file extensions.
allowed_file_extensions: ['gif', 'jpg', 'jpeg', 'png', 'ico', 'webm', 'svg']
# Maximum file size.
max_file_size: '24M'
# Image validation options
image:
# Image maxiumum and minimum width
width:
max: 4920
min: 100
# Image maxiumum and minimum height
height:
max: 3264
min: 100
# Image ratio
#ratio:
# The option can be a number (eg: 1.3) or a ratio-like string (eg: 4:3, 16:9).
# size: 1.3
# The option error_margin specifies how much the image is allowed to
# deviate from the target ratio. Default value is 0.
# error_margin: 0
# Process uploaded files
process:
# Images process settings
image:
# Image quality
quality: 70
# Session
#
# Set session options before you start the session
# Standard PHP session configuration options
# https://secure.php.net/manual/en/session.configuration.php
session:
# Session name
name: Flextype
# Flextype Rest APIs
api:
# Entries API
entries:
# Set to true to enable Entries API
enabled: true
# Registry API
registry:
# Set to true to enable Registry API
enabled: true
# Tokens API
tokens:
# Set to true to enable Tokens API
enabled: true
# Cache API
cache:
# Set to true to enable Cache API
enabled: true
# Query API
query:
# Set to true to enable Query API
enabled: true
PHP constants
You may redefine all these constants in your root index.php
file.
Name | Description |
---|---|
ROOT_DIR | Define the path to the root directory (without trailing slash). |
PROJECT_NAME | Define the project name. |
PATH_PROJECT | Define the PATH to the project (without trailing slash). |
PATH_TMP | Define the PATH to the tmp (without trailing slash). |