VarFile
extends ProcessorEntity
in package
Class VarFile
Processor class to hold a file variable.
Table of Contents
- $id : mixed
- Processor ID.
- $db : ADOConnection|null
- DB connections.
- $details : array<string|int, mixed>
- {@inheritDoc}
- $logger : MonologWrapper
- Logger object.
- $meta : array<string|int, mixed>
- Metadata for the processor.
- $request : Request
- All the request details.
- $settings : Config
- Config object.
- __construct() : mixed
- details() : array<string|int, mixed>
- Return details for processor.
- process() : DataContainer
- {@inheritDoc}
- val() : mixed|DataContainer
- Process a variable into a final result for the processor.
- generateParams() : array<string|int, mixed>
- Generate the params array for the sql search.
- isDataContainer() : bool
- Validate if a set of data is wrapped in a DataContainer object.
- getFileFiles() : DataContainer
- Get a file from $_FILES.
- getFileRemote() : DataContainer
- Get a file from a remote location.
- validateAllowedTypes() : void
- Validate an input for allowed variable types
- validateAllowedValues() : void
- Validate an input for allowed values.
- validateFilesError() : void
- Validate file in $_FILES.
Properties
$id
Processor ID.
public
mixed
$id
= ''
Processor ID.
$db
DB connections.
protected
ADOConnection|null
$db
$details
{@inheritDoc}
protected
array<string|int, mixed>
$details
= ['name' => 'File (NOT FULLY IMPLEMENTED YET)', 'machineName' => 'var_file', 'description' => 'NOTE: This is not fully implemented yet. Return the contents of a file or the file path.', 'menu' => 'Primitive', 'input' => ['location' => [
// phpcs:ignore
'description' => 'The location of the file. This can be a remote server address or "_FILES" to receive from a POST.',
'cardinality' => [1, 1],
'literalAllowed' => true,
'limitProcessors' => [],
'limitTypes' => ['text'],
'limitValues' => [],
'default' => null,
], 'filename' => [
// phpcs:ignore
'description' => 'The name of the file. This is the name of the file field in the post or the remote server filename.',
'cardinality' => [1, 1],
'literalAllowed' => true,
'limitProcessors' => [],
'limitTypes' => ['text'],
'limitValues' => [],
'default' => null,
], 'nullable' => ['description' => 'Allow the processing to continue if the file does not exist.', 'cardinality' => [0, 1], 'literalAllowed' => true, 'limitProcessors' => [], 'limitTypes' => ['boolean'], 'limitValues' => [], 'default' => false], 'get_contents' => [
// phpcs:ignore
'description' => 'Return the contents of the file. If false, then the file path will be returned, this is used for large files to prevent out of memory errors.',
'cardinality' => [0, 1],
'literalAllowed' => true,
'limitProcessors' => [],
'limitTypes' => ['boolean'],
'limitValues' => [],
'default' => true,
]]]
Details of the processor.
$logger
Logger object.
protected
MonologWrapper
$logger
$meta
Metadata for the processor.
protected
array<string|int, mixed>
$meta
$request
All the request details.
protected
Request
$request
Request.
$settings
Config object.
private
Config
$settings
Methods
__construct()
public
__construct(array<string|int, mixed> &$meta, Request &$request, ADOConnection|null $db, MonologWrapper|null $logger) : mixed
Parameters
- $meta : array<string|int, mixed>
-
Metadata for the processor.
- $request : Request
-
The full request object.
- $db : ADOConnection|null
-
The DB connection object.
- $logger : MonologWrapper|null
-
The logger.
Return values
mixed —details()
Return details for processor.
public
details() : array<string|int, mixed>
Return values
array<string|int, mixed> —process()
{@inheritDoc}
public
process() : DataContainer
Tags
Return values
DataContainer —Result of the processor.
val()
Process a variable into a final result for the processor.
public
val(string $key[, bool|null $rawData = false ]) : mixed|DataContainer
This method can be used to process a value in its meta to return a final result that it can use. If the object is a processor, then it will process that down to a final return value, or if the obj is a simple value, then it will return that. Anything else will return an error object.
Setting $realValue to true will force the value to be the actual value, rather than a potential dataContainer.
Parameters
- $key : string
-
The key for the input variable in the meta.
- $rawData : bool|null = false
-
Return the raw data or a DataContainer.
Tags
Return values
mixed|DataContainer —generateParams()
Generate the params array for the sql search.
protected
generateParams(string|null $keyword, array<string|int, mixed>|null $keywordCols, string|null $orderBy, string|null $direction) : array<string|int, mixed>
Parameters
- $keyword : string|null
-
Search keyword.
- $keywordCols : array<string|int, mixed>|null
-
Columns to search for the keyword.
- $orderBy : string|null
-
Order by column.
- $direction : string|null
-
Order direction.
Return values
array<string|int, mixed> —isDataContainer()
Validate if a set of data is wrapped in a DataContainer object.
protected
isDataContainer(mixed $data) : bool
Parameters
- $data : mixed
-
DataContainer or raw data.
Return values
bool —getFileFiles()
Get a file from $_FILES.
private
getFileFiles(string $filename, bool $getContents, bool $nullable) : DataContainer
Parameters
- $filename : string
-
The filename in the post.
- $getContents : bool
-
Return the contents or the filepath.
- $nullable : bool
-
Thrown an error if empty.
Tags
Return values
DataContainer —getFileRemote()
Get a file from a remote location.
private
getFileRemote(string $location, string $filename, bool $getContents, bool $nullable) : DataContainer
Parameters
- $location : string
-
Remote server URL and directory structure.
- $filename : string
-
The file to fetch.
- $getContents : bool
-
Return file contents of path to locally stored file.
- $nullable : bool
-
Thrown an exception if the file contents are empty.
Tags
Return values
DataContainer —validateAllowedTypes()
Validate an input for allowed variable types
private
validateAllowedTypes(string $type, array<string|int, mixed> $limitTypes, int $min, string $key) : void
Parameters
- $type : string
-
Input value type.
- $limitTypes : array<string|int, mixed>
-
List of limit on variable types.
- $min : int
-
Minimum number of values.
- $key : string
-
The key of the input being validated.
Tags
Return values
void —validateAllowedValues()
Validate an input for allowed values.
private
validateAllowedValues(mixed $val, array<string|int, mixed> $limitValues, int $min, string $key) : void
Parameters
- $val : mixed
-
Input value.
- $limitValues : array<string|int, mixed>
-
List of allowed values.
- $min : int
-
Minimum number of values.
- $key : string
-
The key of the input being validated.
Tags
Return values
void —validateFilesError()
Validate file in $_FILES.
private
validateFilesError(string $filename, bool $nullable) : void
Parameters
- $filename : string
-
The filename.
- $nullable : bool
-
Empty file allowed.
Tags
Return values
void —Valid file received.