APPPATH
public
mixed
APPPATH
= realpath(rtrim($paths->appDirectory, '\/ ')) . DIRECTORY_SEPARATOR
public
mixed
APPPATH
= realpath(rtrim($paths->appDirectory, '\/ ')) . DIRECTORY_SEPARATOR
public
mixed
APPPATH
= \realpath(\rtrim($paths->appDirectory, '\/ ')) . \DIRECTORY_SEPARATOR
public
mixed
CURL_HTTP_VERSION_3
= 30
public
mixed
ENVIRONMENT
= $env
public
mixed
ENVIRONMENT
= env('CI_ENVIRONMENT', 'production')
public
mixed
ENVIRONMENT
= 'testing'
public
mixed
ROOTPATH
= realpath(APPPATH . '../') . DIRECTORY_SEPARATOR
public
mixed
ROOTPATH
= \realpath(\APPPATH . '../') . \DIRECTORY_SEPARATOR
public
mixed
STDOUT
= 'php://output'
public
mixed
SYSTEMPATH
= realpath(rtrim($paths->systemDirectory, '\/ ')) . DIRECTORY_SEPARATOR
public
mixed
SYSTEMPATH
= \realpath(\rtrim($paths->systemDirectory, '\/ ')) . \DIRECTORY_SEPARATOR
public
mixed
TESTPATH
= realpath(rtrim($paths->testsDirectory, '\/ ')) . DIRECTORY_SEPARATOR
public
mixed
TESTPATH
= \realpath(\rtrim($paths->testsDirectory, '\/ ')) . \DIRECTORY_SEPARATOR
public
mixed
VENDORPATH
= dirname(COMPOSER_PATH) . DIRECTORY_SEPARATOR
public
mixed
WRITEPATH
= $writePath . DIRECTORY_SEPARATOR
public
mixed
WRITEPATH
= \realpath(\rtrim($paths->writableDirectory, '\/ ')) . \DIRECTORY_SEPARATOR
Returns the timezone the application has been set to display dates in. This might be different than the timezone set at the server level, as you often want to stores dates in UTC and convert them on the fly for the user.
app_timezone() : string
A convenience method that provides access to the Cache object. If no parameter is provided, will return the object, otherwise, will attempt to return the cached value.
cache([string|null $key = null ]) : array<string|int, mixed>|bool|CacheInterface|float|int|object|string|null
Examples: cache()->save('foo', 'bar'); $foo = cache('bar');
A convenience method to clean paths for a nicer looking output. Useful for exception handling, error logging, etc.
clean_path(string $path) : string
Runs a single command.
command(string $command) : false|string
Input expected in a single string as would be used on the command line itself:
command('migrate:create SomeMigration');
More simple way of getting config instances from Factories
config(ConfigTemplate>|string $name[, bool $getShared = true ]) : ConfigTemplate|null
Simpler way to create a new Cookie instance.
cookie(string $name[, string $value = '' ][, array<string|int, mixed> $options = [] ]) : Cookie
Name of the cookie
Value of the cookie
Array of options to be passed to the cookie
Fetches the global `CookieStore` instance held by `Response`.
cookies([array<int, Cookie> $cookies = [] ][, bool $getGlobal = true ]) : CookieStore
If getGlobal
is false, this is passed to CookieStore's constructor
If false, creates a new instance of CookieStore
Returns the CSRF token name.
csrf_token() : string
Can be used in Views when building hidden inputs manually, or used in javascript vars when using APIs.
Returns the CSRF header name.
csrf_header() : string
Can be used in Views by adding it to the meta tag or used in javascript to define a header name when using APIs.
Returns the current hash value for the CSRF protection.
csrf_hash() : string
Can be used in Views when building hidden inputs manually, or used in javascript vars for API usage.
Generates a hidden input field for use within manually generated forms.
csrf_field([non-empty-string|null $id = null ]) : string
Generates a meta tag for use within javascript calls.
csrf_meta([non-empty-string|null $id = null ]) : string
Generates a nonce attribute for style tag.
csp_style_nonce() : string
Generates a nonce attribute for script tag.
csp_script_nonce() : string
Grabs a database connection and returns it to the user.
db_connect([array<string|int, mixed>|ConnectionInterface|string|null $db = null ][, bool $getShared = true ]) : BaseConnection
This is a convenience wrapper for \Config\Database::connect() and supports the same parameters. Namely:
When passing in $db, you may pass any of the following to connect:
If $getShared === false then a new connection instance will be provided, otherwise it will all calls will return the same instance.
Allows user to retrieve values from the environment variables that have been set. Especially useful for retrieving values set from the .env file for use in config files.
env(string $key[, array<int|string, mixed>|bool|float|int|object|string|null $default = null ]) : array<int|string, mixed>|bool|float|int|object|string|null
Performs simple auto-escaping of data for security reasons.
esc(array<string|int, mixed>|string $data[, string $context = 'html' ][, string|null $encoding = null ]) : array<string|int, mixed>|string
Might consider making this more complex at a later date.
If $data is a string, then it simply escapes and returns it. If $data is an array, then it loops over it, escaping each 'value' of the key/value pairs.
Current encoding for escaping. If not UTF-8, we convert strings from this encoding pre-escaping and back to this encoding post-escaping.
Used to force a page to be accessed in via HTTPS.
force_https([int $duration = 31536000 ][, RequestInterface|null $request = null ][, ResponseInterface|null $response = null ]) : void
Uses a standard redirect, plus will set the HSTS header for modern browsers that support, which gives best protection against man-in-the-middle attacks.
How long should the SSL header be set for? (in seconds) Defaults to 1 year.
Function usable
function_usable(string $functionName) : bool
Executes a function_exists() check, and if the Suhosin PHP extension is loaded - checks whether the function that is checked might be disabled in there as well.
This is useful as function_exists() will return FALSE for functions disabled via the disable_functions php.ini setting, but not for suhosin.executor.func.blacklist and suhosin.executor.disable_eval. These settings will just terminate script execution if a disabled function is executed.
The above described behavior turned out to be a bug in Suhosin, but even though a fix was committed for 0.9.34 on 2012-02-12, that version is yet to be released. This function will therefore be just temporary, but would probably be kept for a few years.
Function to check for
TRUE if the function exists and is safe to call, FALSE otherwise.
Loads a helper file into memory. Supports namespaced helpers, both in and out of the 'Helpers' directory of a namespaced directory.
helper(array<string|int, mixed>|string $filenames) : void
Will load ALL helpers of the matching name, in the following order:
Check if PHP was invoked from the command line.
is_cli() : bool
Tests for file writability
is_really_writable(string $file) : bool
is_writable() returns TRUE on Windows servers when you really can't write to the file, based on the read-only attribute. is_writable() is also unreliable on Unix servers if safe_mode is on.
Detect if platform is running in Windows.
is_windows([bool|null $mock = null ]) : bool
A convenience method to translate a string or array of them and format the result with the intl extension's MessageFormatter.
lang(string $line[, array<string|int, mixed> $args = [] ][, string|null $locale = null ]) : array<int, string>|string
A convenience/compatibility method for logging events through the Log system.
log_message(string $level, string $message[, array<string|int, mixed> $context = [] ]) : void
Allowed log levels are:
More simple way of getting model instances from Factories
model(ModelTemplate>|string $name[, bool $getShared = true ][, ConnectionInterface|null &$conn = null ]) : ModelTemplate|null
Provides access to "old input" that was set in the session during a redirect()->withInput().
old(string $key[, string|null $default = null ][, false|string $escape = 'html' ]) : array<string|int, mixed>|string|null
Convenience method that works with the current global $request and $router instances to redirect using named/reverse-routed routes to determine the URL to go to.
redirect([non-empty-string|null $route = null ]) : RedirectResponse
If more control is needed, you must use $response->redirect explicitly.
Route name or Controller::method
Remove Invisible Characters
remove_invisible_characters(string $str[, bool $urlEncoded = true ]) : string
This prevents sandwiching null characters between ascii characters, like Java\0script.
Returns the shared Request.
request() : CLIRequest|IncomingRequest
Returns the shared Response.
response() : ResponseInterface
Given a route name or controller/method string and any params, will attempt to build the relative URL to the matching route.
route_to(string $method, int|string ...$params) : false|string
NOTE: This requires the controller/method to have a route defined in the routes Config file.
Route name or Controller::method
One or more parameters to be passed to the route. The last parameter allows you to set the locale.
The route (URI path relative to baseURL) or false if not found.
A convenience method for accessing the session instance, or an item that has been set in the session.
session([string|null $val = null ]) : array<string|int, mixed>|bool|float|int|object|Session|string|null
Examples: session()->set('foo', 'bar'); $foo = session('bar');
Allows cleaner access to the Services Config file.
service(string $name, array<string|int, mixed>|bool|float|int|object|string|null ...$params) : object|null
Always returns a SHARED instance of the class, so calling the function multiple times should always return the same instance.
These are equal:
Always returns a new instance of the class.
single_service(string $name, array<string|int, mixed>|bool|float|int|object|string|null ...$params) : object|null
Fetch a config file item with slash appended (if not empty)
slash_item(string $item) : string|null
Config item name
The configuration item or NULL if the item doesn't exist
Stringify attributes for use in HTML tags.
stringify_attributes(array<string|int, mixed>|object|string $attributes[, bool $js = false ]) : string
Helper function used to convert a string, array, or object of attributes to a string.
string, array, object that can be cast to array
A convenience method for working with the timer.
timer([non-empty-string|null $name = null ][, callable(): mixed|null $callable = null ]) : mixed|Timer
If no parameter is passed, it will return the timer instance. If callable is passed, it measures time of callable and returns its return value if any. Otherwise will start or stop the timer intelligently.
Grabs the current RendererInterface-compatible class and tells it to render the specified view. Simply provides a convenience method that can be used in Controllers, libraries, and routed closures.
view(string $name[, array<string|int, mixed> $data = [] ][, array<string|int, mixed> $options = [] ]) : string
NOTE: Does not provide any escaping of the data, so that must all be handled manually by the developer.
Options for saveData or third-party extensions.
View cells are used within views to insert HTML chunks that are managed by other classes.
view_cell(string $library[, array<string|int, mixed>|string|null $params = null ][, int $ttl = 0 ][, string|null $cacheName = null ]) : string
Get the class "basename" of the given object / class.
class_basename(object|string $class) : string
Returns all traits used by a class, its parent classes and trait of their traits.
class_uses_recursive(object|string $class) : array<string|int, mixed>
Returns all traits used by a trait and its traits.
trait_uses_recursive(string $trait) : array<string|int, mixed>
Searches an array through dot syntax. Supports wildcard searches, like foo.*.bar
dot_array_search(string $index, array<string|int, mixed> $array) : array<string|int, mixed>|bool|int|object|string|null
Returns the value of an element at a key in an array of uncertain depth.
array_deep_search(int|string $key, array<string|int, mixed> $array) : array<string|int, mixed>|bool|float|int|object|string|null
Sorts a multidimensional array by its elements values. The array columns to be used for sorting are passed as an associative array of key names and sorting flags.
array_sort_by_multiple_keys(array<string|int, mixed> &$array, array<string|int, mixed> $sortColumns) : bool
Both arrays of objects and arrays of array can be sorted.
Example: array_sort_by_multiple_keys($players, [ 'team.hierarchy' => SORT_ASC, 'position' => SORT_ASC, 'name' => SORT_STRING, ]);
The '.' dot operator in the column name indicates a deeper array or object level. In principle, any number of sublevels could be used, as long as the level and column exist in every array element.
For information on multi-level array sorting, refer to Example #3 here: https://www.php.net/manual/de/function.array-multisort.php
the reference of the array to be sorted
an associative array of columns to sort after and their sorting flags
Flatten a multidimensional array using dots as separators.
array_flatten_with_dots(iterable<string|int, mixed> $array[, string $id = '' ]) : array<string|int, mixed>
The multi-dimensional array
Something to initially prepend to the flattened keys
The flattened array
Groups all rows by their index values. Result's depth equals number of indexes
array_group_by(array<string|int, mixed> $array, array<string|int, mixed> $indexes[, bool $includeEmpty = false ]) : array<string|int, mixed>
Data array (i.e. from query result)
Indexes to group by. Dot syntax used. Returns $array if empty
If true, null and '' are also added as valid keys to group
Result array where rows are grouped together by indexes values.
Set cookie
set_cookie(array<string|int, mixed>|Cookie|string $name[, string $value = '' ][, int $expire = 0 ][, string $domain = '' ][, string $path = '/' ][, string $prefix = '' ][, bool|null $secure = null ][, bool|null $httpOnly = null ][, string|null $sameSite = null ]) : void
Accepts seven parameters, or you can submit an associative array in the first parameter containing all the values.
Cookie name / array containing binds / Cookie object
The value of the cookie
The number of seconds until expiration
For site-wide cookie. Usually: .yourdomain.com
The cookie path
The cookie prefix ('': the default prefix)
True makes the cookie secure
True makes the cookie accessible via http(s) only (no javascript)
The cookie SameSite value
Fetch an item from the $_COOKIE array
get_cookie(string $index[, bool $xssClean = false ][, string|null $prefix = '' ]) : array<string|int, mixed>|string|null
Cookie name prefix. '': the prefix in Config\Cookie null: no prefix
Delete a cookie
delete_cookie(string $name[, string $domain = '' ][, string $path = '/' ][, string $prefix = '' ]) : void
the cookie domain. Usually: .yourdomain.com
the cookie path
the cookie prefix
Checks if a cookie exists by name.
has_cookie(string $name[, string|null $value = null ][, string $prefix = '' ]) : bool
Get "now" time
now([non-empty-string|null $timezone = null ]) : int
Returns Time::now()->getTimestamp() based on the timezone parameter or on the app_timezone() setting
Generates a select field of all available timezones
timezone_select([string $class = '' ][, string $default = '' ][, int $what = DateTimeZone::ALL ][, string $country = null ]) : string
Returns a string with the formatted HTML
Optional class to apply to the select field
Default value for initial selection
One of the DateTimeZone class constants (for listIdentifiers)
A two-letter ISO 3166-1 compatible country code (for listIdentifiers)
Create a Directory Map
directory_map(string $sourceDir[, int $directoryDepth = 0 ][, bool $hidden = false ]) : array<string|int, mixed>
Reads the specified directory and builds an array representation of it. Sub-folders contained with the directory will be mapped as well.
Path to source
Depth of directories to traverse (0 = fully recursive, 1 = current dir, etc)
Whether to show hidden files
Recursively copies the files and directories of the origin directory into the target directory, i.e. "mirror" its contents.
directory_mirror(string $originDir, string $targetDir[, bool $overwrite = true ]) : void
Whether individual files overwrite on collision
Write File
write_file(string $path, string $data[, string $mode = 'wb' ]) : bool
Writes data to the file specified in the path. Creates a new file if non-existent.
File path
Data to write
fopen() mode (default: 'wb')
Delete Files
delete_files(string $path[, bool $delDir = false ][, bool $htdocs = false ][, bool $hidden = false ]) : bool
Deletes all files contained in the supplied directory path. Files must be writable or owned by the system in order to be deleted. If the second parameter is set to true, any directories contained within the supplied base directory will be nuked as well.
File path
Whether to delete any directories found in the path
Whether to skip deleting .htaccess and index page files
Whether to include hidden files (files beginning with a period)
Get Filenames
get_filenames(string $sourceDir[, bool|null $includePath = false ][, bool $hidden = false ][, bool $includeDir = true ]) : array<string|int, mixed>
Reads the specified directory and builds an array containing the filenames. Any sub-folders contained within the specified path are read as well.
Path to source
Whether to include the path as part of the filename; false for no path, null for a relative path, true for full path
Whether to include hidden files (files beginning with a period)
Whether to include directories
Get Directory File Information
get_dir_file_info(string $sourceDir[, bool $topLevelOnly = true ][, bool $recursion = false ]) : array<string|int, mixed>
Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions
Any sub-folders contained within the specified path are read as well.
Path to source
Look only at the top level directory specified?
Internal variable to determine recursion status - do not use in calls
Get File Info
get_file_info(string $file[, array<string|int, mixed>|string $returnedValues = ['name', 'server_path', 'size', 'date'] ]) : array<string|int, mixed>|null
Given a file and path, returns the name, path, size, date modified Second parameter allows you to explicitly declare what information you want returned Options are: name, server_path, size, date, readable, writable, executable, fileperms Returns false if the file cannot be found.
Path to file
Array or comma separated string of information returned
Symbolic Permissions
symbolic_permissions(int $perms) : string
Takes a numeric value representing a file's permissions and returns standard symbolic notation representing that value
Permissions
Octal Permissions
octal_permissions(int $perms) : string
Takes a numeric value representing a file's permissions and returns a three character string representing the file's octal permissions
Permissions
Checks if two files both exist and have identical hashes
same_file(string $file1, string $file2) : bool
Same or not
Set Realpath
set_realpath(string $path[, bool $checkExistence = false ]) : string
Checks to see if the path exists
Form Declaration
form_open([string $action = '' ][, array<string|int, mixed>|string $attributes = [] ][, array<string|int, mixed> $hidden = [] ]) : string
Creates the opening portion of the form.
the URI segments of the form destination
a key/value pair of attributes, or string representation
a key/value pair hidden data
Form Declaration - Multipart type
form_open_multipart([string $action = '' ][, array<string|int, mixed>|string $attributes = [] ][, array<string|int, mixed> $hidden = [] ]) : string
Creates the opening portion of the form, but with "multipart/form-data".
The URI segments of the form destination
A key/value pair of attributes, or the same as a string
A key/value pair hidden data
Hidden Input Field
form_hidden(array<string|int, mixed>|string $name[, array<string|int, mixed>|string $value = '' ][, bool $recursing = false ]) : string
Generates hidden fields. You can pass a simple key/value string or an associative array with multiple values.
Field name or associative array to create multiple fields
Field value
Text Input Field. If 'type' is passed in the $type field, it will be used as the input type, for making 'email', 'phone', etc input fields.
form_input([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ][, string $type = 'text' ]) : string
string, array, object that can be cast to array
Password Field
form_password([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
Identical to the input function but adds the "password" type
string, array, object that can be cast to array
Upload Field
form_upload([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
Identical to the input function but adds the "file" type
string, array, object that can be cast to array
Textarea field
form_textarea([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Multi-select menu
form_multiselect([array<string|int, mixed>|string $name = '' ][, array<string|int, mixed> $options = [] ][, array<string|int, mixed> $selected = [] ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Drop-down Menu
form_dropdown([array<string|int, mixed>|string $data = '' ][, array<string|int, mixed>|string $options = [] ][, array<string|int, mixed>|string $selected = [] ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Checkbox Field
form_checkbox([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, bool $checked = false ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Radio Button
form_radio([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, bool $checked = false ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Submit Button
form_submit([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Reset Button
form_reset([array<string|int, mixed>|string $data = '' ][, string $value = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Form Button
form_button([array<string|int, mixed>|string $data = '' ][, string $content = '' ][, array<string|int, mixed>|object|string $extra = '' ]) : string
string, array, object that can be cast to array
Form Label Tag
form_label([string $labelText = '' ][, string $id = '' ][, array<string|int, mixed> $attributes = [] ]) : string
The text to appear onscreen
The id the label applies to
Additional attributes
Datalist
form_datalist(string $name, string $value, array<string|int, mixed> $options) : string
The
Fieldset Tag
form_fieldset([string $legendText = '' ][, array<string|int, mixed> $attributes = [] ]) : string
Used to produce
The legend text
Additional attributes
Fieldset Close Tag
form_fieldset_close([string $extra = '' ]) : string
Form Close Tag
form_close([string $extra = '' ]) : string
Form Value
set_value(string $field[, array<int, string>|string $default = '' ][, bool $htmlEscape = true ]) : array<int, string>|string
Grabs a value from the POST array for the specified field so you can re-populate an input field or textarea
Field name
Default value
Whether to escape HTML special characters or not
Set Select
set_select(string $field[, string $value = '' ][, bool $default = false ]) : string
Let's you set the selected value of a