ApiOpenStudio PHPDoc

VarFile extends ProcessorEntity

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.

$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.

$meta

Metadata for the processor.

protected array<string|int, mixed> $meta

$request

All the request details.

protected Request $request

Request.

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>

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
throws
ApiException

Invalid key or data.

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
throws
ApiException

Exception.

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
throws
ApiException

Exception.

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
throws
ApiException

Invalid data type.

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
throws
ApiException

Invalid value.

Return values
void

Search results