Documentation

CMenuController extends CBaseController

This class handles the input requests that are delegated to the respective classes and provides the output.

Implementation the basic Controller for all Modules.

Table of Contents

Properties

$model  : mixed
$all_db_modules  : array<string|int, mixed>|null
$all_modules  : array<string|int, mixed>
$all_tables  : array<string|int, mixed>
$cache  : ICache|null
$connection_manager  : IConnectionManager|null
$dbms  : IDBMS
$dbms_type  : string
$http_method  : string
$last_id  : int
$logger  : ILogger
$module_name  : string
$request  : CRequest
$response  : CResponse
$static_connection_manager  : IConnectionManager|null
$table  : string
$user  : CUser

Methods

__construct()  : mixed
Constructor
__destruct()  : mixed
Destructor
AddItemRequired()  : void
For POST, PUT, PATCH methods add some limitations as min or max value or a specific rule with regular expression
BeginTransaction()  : void
Starts a DB transaction.
Commit()  : void
Commits the current transaction.
Connect()  : IConnectionManager
Static method to connect to database
ConnectionManager()  : IConnectionManager
Gets the connection manager instance.
ConvertDBType2BindType()  : string
Converts a generic DB data type into a driver-specific bind type.
Decrypt()  : string
Returns the DB instruction to decrypt a value.
DeleteRecord()  : bool
Delete records from a DB table
Disconnect()  : void
Releases the resource to connect to the DB
DisconnectAll()  : void
Releases all the resources of the previously opened DBs
Encrypt()  : string
Returns the DB instruction to encrypt a value.
Exec()  : string
Call the appropriate method (GET,POST,PUT,PATCH,DELETE,...) e return the results
ExecDELETE()  : array<string|int, mixed>
Manager of HTTP Method DELETE
ExecGET()  : array<string|int, mixed>|null
Manager of HTTP Method GET (Read data)
ExecHEAD()  : array<string|int, mixed>
Manager of HTTP Method HEAD (as GET but without body)
ExecOPTIONS()  : array<string|int, mixed>
Manager of HTTP Method OPTIONS
ExecPATCH()  : array<string|int, mixed>
Manager of HTTP Method PATCH (update without full data required) Update of one or more records of the table
ExecPUT()  : array<string|int, mixed>
Manager of HTTP Method PUT (update with full data required) Update of one or more records of the table
Execute()  : void
Executes a previously prepared statement.
ExistsTable()  : bool
Checks if a table exists in the database.
ExistsTableColumns()  : bool
Checks if a list of columns exists in a table.
GetAffectedRows()  : int
Returns how many rows were affected by the last operation performed.
GetAllModules()  : array<string|int, mixed>
Returns a list of all modules, using cache.
GetAllTables()  : array<string|int, mixed>
Returns a list of all tables, using cache.
GetArrayByName()  : array<string|int, mixed>|null
Fetches a result set into a key-value array, using array_column for optimization.
GetArrayItemOfElements()  : array<string|int, mixed>|null
Given an array of records, returns a new array containing only the values of a specific field.
GetAttributesFromType()  : bool
Gets field attributes based on a DB data type.
GetCache()  : ICache|null
Returns the cache object
GetCachedArrayByName()  : array<string|int, mixed>|null
Fetches a result set into a key-value array, using cache.
GetCachedDataTable()  : void
Fetches a full result set into an array, using cache.
GetCachedDataValue()  : string|null
Fetches a single data value from a query, using cache.
GetCachedFetchAssoc()  : array<string|int, mixed>|null
Fetches an associative array from a query, using cache.
GetCachedFetchRow()  : array<string|int, mixed>|null
Fetches an associative array from a query, using cache.
GetCachedIDsArray()  : array<string|int, mixed>
Fetches a single column from a result set into an array, using cache.
GetColumnNames()  : array<string|int, string>|null
Returns an array containing the names of all columns for the last query executed.
GetConnectionManager()  : IConnectionManager|null
GetConnectionManager( )
GetControllerName()  : string
Include the Controller class more appropriated and return the fullname
GetCurrentDate()  : string
Returns the current date.
GetCurrentDateTime()  : string
Returns the current date and time.
GetCurrentModel()  : mixed
Get the current Model Object (CBaseModel or sons)
GetDataTable()  : int|null
Fetches the entire result set of a query into an array.
GetDataValue()  : string|null
Returns a single value from a query result.
GetDbmsType()  : string
Get the name of DBMS used
GetDBResultAssoc()  : int
Returns the driver-specific value for an associative array fetch type.
GetDBResultBoth()  : int
Returns the driver-specific value for a fetch type that includes both associative and numeric arrays.
GetDBResultNum()  : int
Returns the driver-specific value for a numeric array fetch type.
GetDBTable()  : string
Returns the name of the current main table
GetFetchArray()  : array<string|int, mixed>|null
Fetches a result row as an array (both numeric and associative).
GetFetchAssoc()  : array<string|int, mixed>|null
Fetches a result row as an associative array.
GetFetchRow()  : array<string|int, mixed>|null
Fetches a result row as a numeric array.
GetIDsArray()  : array<string|int, mixed>
Fetches a single column from the last query result into an array.
GetLastDBErrorNumber()  : int
Gets any error number issued by the DB.
GetLastDBErrorString()  : string
Gets any error string issued by the DB.
GetLastID()  : int|null
Returns the ID of the last inserted item
GetModelName()  : string
Include the Model class more appropriated and return the fullname
GetModuleElement()  : string
Return the fullname of the class more appropriated
GetNextID()  : int|null
Returns the next ID from a sequence or similar.
GetQueryDataTable()  : int|null
Queries the DB and returns the result in a two-dimensional array.
GetQueryDataValue()  : string|null
Executes a query and fetches a single value.
GetQueryFetchAssoc()  : array<string|int, mixed>|null
Executes a query and fetches a single row as an associative array.
GetQueryFetchRow()  : array<string|int, mixed>|null
Executes a query and fetches a single row as an numeric index array.
GetTableColumnNames()  : array<string|int, string>
Returns an array containing the names of all columns of a table.
GetTotalColumns()  : int|bool
Returns the number of columns of a previously executed query.
GetTotalRows()  : int|bool
Reads the total number of rows from a previously executed query.
InitController()  : void
Useful method for inheritors to inject constructor code after all its views
InsertRecord()  : bool
Make an entry in the DB
InsertRecordBatch()  : bool
Insert multiple records in a single batch operation
LoadAllTables()  : void
Loads the schema of all tables into an array.
Prepare()  : void
Prepares an SQL statement for execution.
Query()  : bool
Executes a query on the DB.
Rollback()  : void
Rolls back the current transaction.
SetAllModules()  : void
Returns a list of all modules, using cache.
SetAllTables()  : array<string|int, mixed>
Returns a list of all tables, using cache.
SetAutoCommit()  : void
Sets the autocommit mode.
SetDBColumns()  : void
Loads the schema of a table's columns into an array.
SetDBTable()  : void
Sets the name of the reference table for the instance.
SetRequiredItems()  : void
For POST, PUT, PATCH methods add some limitations as min or max value or a specific rule with regular expression
SetUser()  : void
Set a user manager object (CUser or childs)
UpdateRecord()  : bool
Make an update in the DB
ChangeResult()  : mixed
Change data and/or execute code before send data You can use: $this->http_method for distinguish the method used $this->request->SetMethod(string $method) for change the html output file $this->request->getAttributes() for know other specific values from url
Delete()  : array<string|int, mixed>
Delete a record into a DB table
DoAfterDelete()  : void
After an Delay derived classes can use this method to perform additional operations
DoAfterInsert()  : void
After an Insert derived classes can use this method to perform additional operations
DoAfterModify()  : void
After an Modify derived classes can use this method to perform additional operations
DoAfterOperation()  : void
After an Insert, Modify or Delete, derived classes can use this method to perform additional operations
ExecPOST()  : array<string|int, mixed>
Manager of HTTP Method POST (insert)
GetCachedData()  : mixed
Retrieves data from the cache.
GetCacheKey()  : string
Generates a unique cache key from a string.
GetPicklist()  : array<string|int, mixed>
Get picklist data for the current module's table (used for dropdowns) URL format: /module/picklist Respects user permissions (_module::tablefilter, _acl::only_owner)
GetRelatedlist()  : array<string|int, mixed>
Get related data for the current module's table (used for related table views) URL format: /module/relatedlist Respects user permissions (_module::tablefilter, _acl::only_owner)
Insert()  : array<string|int, mixed>
Insert a new record into a DB table
InvalidateRelatedCache()  : void
Invalidates the cache for a given table and its related tables.
Modify()  : array<string|int, mixed>
Modify a record into a DB table
SetAutoRedirect()  : void
set the redirect by method and message on results
SetCachedData()  : void
Stores data in the cache.

Properties

$model

public mixed $model

The model instance (CBaseModel or derived class)

$all_db_modules

protected array<string|int, mixed>|null $all_db_modules = []

List of all database modules

$all_modules

protected array<string|int, mixed> $all_modules = []

list of all modules with column_list list

$all_tables

protected array<string|int, mixed> $all_tables = []

list of all tables of current DB with column_list list

$cache

protected ICache|null $cache = null

The cache instance

$connection_manager

protected IConnectionManager|null $connection_manager = null

The connection manager instance

$dbms

protected IDBMS $dbms

The actual DB driver instance

$dbms_type

protected string $dbms_type = ''

name of DBMS for this connection (mysql, oracle, postgresql)

$http_method

protected string $http_method = 'GET'

HTTP method (GET, PUT, PATCH, POST, OPTIONS, HEAD, DELETE)

$last_id

protected int $last_id = 0

The last inserted ID

$module_name

protected string $module_name = ''

Name of the current module

$static_connection_manager

protected static IConnectionManager|null $static_connection_manager = null

Static connection manager for backward compatibility

$table

protected string $table = ''

The default table name for operations

Methods

__construct()

Constructor

public __construct(CRequest $request, CResponse $response, CUser $user, ILogger $logger[, ICache|null $cache = null ][, IConnectionManager|null $connection_manager = null ]) : mixed
Parameters
$request : CRequest

the input object

$response : CResponse

the output object

$user : CUser

name of the default db table (it can be emtpy)

$logger : ILogger

the logger object for errors, warning, info, ...

$cache : ICache|null = null

Optional cache instance for dependency injection

$connection_manager : IConnectionManager|null = null

Optional connection manager for dependency injection

Tags
throws
Exception

if the method (GET,POST) or the table/module is not authorized for the user

__destruct()

Destructor

public __destruct() : mixed

AddItemRequired()

For POST, PUT, PATCH methods add some limitations as min or max value or a specific rule with regular expression

public AddItemRequired(string $name, array<string|int, mixed> $options[, string|null $table = null ]) : void
Parameters
$name : string

name of item to add

$options : array<string|int, mixed>

array contains min,max,rule values

$table : string|null = null

table of DB or Controller (if the value is null or not declared, the table name is the table request)

Tags
see
SetItemsRequired()
example

$controller = CBaseController::getControllerName(); $rest = new $controller( ); $rest->AddItemRequired( 'freq', ['rule'=>'/[daily|weekly|monthly]/'],'page' ); $rest->AddItemRequired( 'age', ['min'=>16, 'max'=35], 'student' );

BeginTransaction()

Starts a DB transaction.

public BeginTransaction() : void

Commit()

Commits the current transaction.

public Commit() : void

Connect()

Static method to connect to database

public static Connect(string $dbname, string $username, string $pwd[, string|null $type = null ][, string|null $hostname = null ][, int|string|null $port = null ]) : IConnectionManager
Parameters
$dbname : string

name of the database

$username : string

database username

$pwd : string

database password

$type : string|null = null

DBMS type

$hostname : string|null = null

server hostname

$port : int|string|null = null

communication port

Tags
throws
CConnectionException

If invalid database type

Return values
IConnectionManager —

The connection manager instance

ConvertDBType2BindType()

Converts a generic DB data type into a driver-specific bind type.

public ConvertDBType2BindType(string|null $db_type) : string
Parameters
$db_type : string|null

The DB data type.

Return values
string —

The corresponding variable type for parameter binding.

Decrypt()

Returns the DB instruction to decrypt a value.

public Decrypt(string $val[, string $name = '' ]) : string
Parameters
$val : string

value or field name to decrypt

$name : string = ''

alias for the returned field

Return values
string —

DB instruction to decrypt $val

DeleteRecord()

Delete records from a DB table

public DeleteRecord(string|null $table, string $conditions, array<string|int, mixed> $conditions_values, array<string|int, mixed> $types) : bool
Parameters
$table : string|null

name of the table

$conditions : string

of the where clause

$conditions_values : array<string|int, mixed>

values present in the WHERE condition

$types : array<string|int, mixed>

of DB table fields

Return values
bool —

result of the operation, true if successful

Disconnect()

Releases the resource to connect to the DB

public static Disconnect([string|null $dbkey = null ]) : void
Parameters
$dbkey : string|null = null

key of db to disconnect (optional)

DisconnectAll()

Releases all the resources of the previously opened DBs

public static DisconnectAll() : void

Encrypt()

Returns the DB instruction to encrypt a value.

public Encrypt(string $val[, string $name = '' ]) : string
Parameters
$val : string

value or field name to be encrypted

$name : string = ''

alias for the returned field

Return values
string —

DB instruction to encrypt $val

Exec()

Call the appropriate method (GET,POST,PUT,PATCH,DELETE,...) e return the results

public Exec() : string
Tags
throws
Exception

for Access denied or a invalid method used

Return values
string —

all data results

ExecDELETE()

Manager of HTTP Method DELETE

public ExecDELETE() : array<string|int, mixed>
Tags
throws
Exception

if no records were found

Return values
array<string|int, mixed> —

message result of delete operation

ExecGET()

Manager of HTTP Method GET (Read data)

public ExecGET() : array<string|int, mixed>|null
Tags
throws
Exception

if is not set a valid module or if the element not exist

Return values
array<string|int, mixed>|null —

results of query

ExecHEAD()

Manager of HTTP Method HEAD (as GET but without body)

public ExecHEAD() : array<string|int, mixed>
Tags
throws
Exception

if is not set a valid module or if the element not exist

Return values
array<string|int, mixed> —

result of the operation

ExecOPTIONS()

Manager of HTTP Method OPTIONS

public ExecOPTIONS() : array<string|int, mixed>
Return values
array<string|int, mixed> —

structure for module

ExecPATCH()

Manager of HTTP Method PATCH (update without full data required) Update of one or more records of the table

public ExecPATCH() : array<string|int, mixed>
Tags
throws
Exception

if the element not exist

Return values
array<string|int, mixed> —

message result of update operation

ExecPUT()

Manager of HTTP Method PUT (update with full data required) Update of one or more records of the table

public ExecPUT() : array<string|int, mixed>
Tags
throws
Exception

if the element not exist

Return values
array<string|int, mixed> —

message result of update operation

Execute()

Executes a previously prepared statement.

public Execute([array<string|int, mixed> $bind_param_values = [] ][, array<string|int, mixed> $bind_param_types = [] ]) : void
Parameters
$bind_param_values : array<string|int, mixed> = []
$bind_param_types : array<string|int, mixed> = []

ExistsTable()

Checks if a table exists in the database.

public ExistsTable(string $table) : bool
Parameters
$table : string

name of the table

Return values
bool —

true if it exists, false if it does not

ExistsTableColumns()

Checks if a list of columns exists in a table.

public ExistsTableColumns(string|null $table, array<string|int, mixed> $names) : bool
Parameters
$table : string|null

name of table

$names : array<string|int, mixed>

list of field names to check

Return values
bool —

true if all fields exist

GetAffectedRows()

Returns how many rows were affected by the last operation performed.

public GetAffectedRows() : int
Return values
int —

total of rows affected by the last operation

GetAllModules()

Returns a list of all modules, using cache.

public GetAllModules() : array<string|int, mixed>
Return values
array<string|int, mixed>

GetAllTables()

Returns a list of all tables, using cache.

public GetAllTables() : array<string|int, mixed>
Return values
array<string|int, mixed> —

list of all tables

GetArrayByName()

Fetches a result set into a key-value array, using array_column for optimization.

public GetArrayByName([string|int $name = 'name' ][, string|null $fieldname_value = null ]) : array<string|int, mixed>|null
Parameters
$name : string|int = 'name'

The column to use as the key.

$fieldname_value : string|null = null

The column to use as the value. If null, the rest of the row is used.

Return values
array<string|int, mixed>|null —

The resulting key-value array.

GetArrayItemOfElements()

Given an array of records, returns a new array containing only the values of a specific field.

public GetArrayItemOfElements(array<string|int, mixed> &$elements, string $fieldname) : array<string|int, mixed>|null
Parameters
$elements : array<string|int, mixed>

The source array of records.

$fieldname : string

The field name to extract.

Return values
array<string|int, mixed>|null —

An array containing the extracted values.

GetAttributesFromType()

Gets field attributes based on a DB data type.

public GetAttributesFromType(string $type, array<string|int, mixed> &$values) : bool
Parameters
$type : string

the db type to check (e.g., INT, VARCHAR)

$values : array<string|int, mixed>

container for the attributes

Return values
bool —

true if attributes were found

GetCache()

Returns the cache object

public GetCache() : ICache|null
Return values
ICache|null —

the cache object if exists

GetCachedArrayByName()

Fetches a result set into a key-value array, using cache.

public GetCachedArrayByName(ISqlComposer $sql[, string|int $name = 'name' ][, string|null $fieldname_value = null ]) : array<string|int, mixed>|null
Parameters
$sql : ISqlComposer

The SQL query object.

$name : string|int = 'name'

The column to use as the key.

$fieldname_value : string|null = null

The column to use as the value.

Return values
array<string|int, mixed>|null —

The resulting key-value array.

GetCachedDataTable()

Fetches a full result set into an array, using cache.

public GetCachedDataTable(mixed &$data, ISqlComposer $sql[, int|null $type = null ][, string|null $with_index = null ]) : void
Parameters
$data : mixed

The array to populate.

$sql : ISqlComposer

The SQL query object.

$type : int|null = null

The generic fetch type (IDBMS::DB_ASSOC, etc.).

$with_index : string|null = null

The field to use as an index for the result array.

GetCachedDataValue()

Fetches a single data value from a query, using cache.

public GetCachedDataValue(ISqlComposer $sql[, int|string $name_col = '0' ][, int|null $pos_row = null ]) : string|null
Parameters
$sql : ISqlComposer

The SQL query object.

$name_col : int|string = '0'

The column name or index.

$pos_row : int|null = null

The row number.

Return values
string|null —

The fetched value or null.

GetCachedFetchAssoc()

Fetches an associative array from a query, using cache.

public GetCachedFetchAssoc(ISqlComposer $sql[, int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$sql : ISqlComposer

The SQL query object.

$pos_row : int|null = null

The row number to fetch.

Return values
array<string|int, mixed>|null —

The fetched row or null.

GetCachedFetchRow()

Fetches an associative array from a query, using cache.

public GetCachedFetchRow(ISqlComposer $sql[, int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$sql : ISqlComposer

The SQL query object.

$pos_row : int|null = null

The row number to fetch.

Return values
array<string|int, mixed>|null —

The fetched row or null.

GetCachedIDsArray()

Fetches a single column from a result set into an array, using cache.

public GetCachedIDsArray(ISqlComposer $sql[, int|string $item = 0 ][, int|string|null $idx = null ]) : array<string|int, mixed>
Parameters
$sql : ISqlComposer

The SQL query object.

$item : int|string = 0

The column index or name to fetch.

$idx : int|string|null = null

The column index or name to use as the array key.

Return values
array<string|int, mixed> —

An array of values.

GetColumnNames()

Returns an array containing the names of all columns for the last query executed.

public GetColumnNames() : array<string|int, string>|null
Return values
array<string|int, string>|null —

the associative array of column names

GetControllerName()

Include the Controller class more appropriated and return the fullname

public static GetControllerName() : string
Return values
string —

the fullname of class Controller required

GetCurrentDate()

Returns the current date.

public static GetCurrentDate() : string
Return values
string —

The current date in 'Y-m-d' format.

GetCurrentDateTime()

Returns the current date and time.

public static GetCurrentDateTime() : string
Return values
string —

The current date and time in 'Y-m-d H:i:s' format.

GetCurrentModel()

Get the current Model Object (CBaseModel or sons)

public GetCurrentModel() : mixed
Return values
mixed —

the current model (is a CBaseModel object or an his derived)

GetDataTable()

Fetches the entire result set of a query into an array.

public GetDataTable(array<string|int, mixed> &$data[, int|null $type = null ][, string|null $with_index = null ]) : int|null
Parameters
$data : array<string|int, mixed>

array containing the records found

$type : int|null = null

the fetch type (e.g., IDBMS::DB_ASSOC)

$with_index : string|null = null

field name to use as the index of the main array

Return values
int|null —

the total of records found or null on error

GetDataValue()

Returns a single value from a query result.

public GetDataValue([int|string $name_col = '0' ][, int|null $pos_row = null ]) : string|null
Parameters
$name_col : int|string = '0'

column name or numeric index

$pos_row : int|null = null

position of the row

Return values
string|null —

value of the indicated cell, or null if it does not exist

GetDbmsType()

Get the name of DBMS used

public GetDbmsType() : string
Return values
string —

the name of DBMS used. i.e.: mysql, oracle, postgresql (the convention is all in lowercase)

GetDBResultAssoc()

Returns the driver-specific value for an associative array fetch type.

public GetDBResultAssoc() : int
Return values
int

GetDBResultBoth()

Returns the driver-specific value for a fetch type that includes both associative and numeric arrays.

public GetDBResultBoth() : int
Return values
int

GetDBResultNum()

Returns the driver-specific value for a numeric array fetch type.

public GetDBResultNum() : int
Return values
int

GetDBTable()

Returns the name of the current main table

public GetDBTable() : string
Return values
string —

name of the main reference table

GetFetchArray()

Fetches a result row as an array (both numeric and associative).

public GetFetchArray([int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$pos_row : int|null = null

position of the row to read

Return values
array<string|int, mixed>|null —

the fetched row

GetFetchAssoc()

Fetches a result row as an associative array.

public GetFetchAssoc([int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$pos_row : int|null = null

position of the row to read

Return values
array<string|int, mixed>|null —

the fetched row

GetFetchRow()

Fetches a result row as a numeric array.

public GetFetchRow([int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$pos_row : int|null = null

position of the row to read

Return values
array<string|int, mixed>|null —

the fetched row

GetIDsArray()

Fetches a single column from the last query result into an array.

public GetIDsArray([int|string $item = 0 ][, int|string|null $idx = null ]) : array<string|int, mixed>
Parameters
$item : int|string = 0

The column index or name to fetch.

$idx : int|string|null = null

The column index or name to use as the array key.

Return values
array<string|int, mixed> —

An array of values.

GetLastDBErrorNumber()

Gets any error number issued by the DB.

public static GetLastDBErrorNumber() : int
Return values
int —

integer value containing the error issued by the DB

GetLastDBErrorString()

Gets any error string issued by the DB.

public static GetLastDBErrorString() : string
Return values
string —

containing the error issued by the DB

GetLastID()

Returns the ID of the last inserted item

public GetLastID() : int|null
Return values
int|null —

The ID of the last inserted element, or null on failure.

GetModelName()

Include the Model class more appropriated and return the fullname

public static GetModelName() : string
Return values
string —

the fullname of class Model required

GetModuleElement()

Return the fullname of the class more appropriated

public static GetModuleElement(string $class_type) : string
Parameters
$class_type : string

class type (normally 'Controller' or 'Model')

Return values
string —

the fullname of class required

GetNextID()

Returns the next ID from a sequence or similar.

public GetNextID([string $table = '' ]) : int|null
Parameters
$table : string = ''

the name of counter associated to SEQUENCE

Return values
int|null —

the next ID of the table

GetQueryDataTable()

Queries the DB and returns the result in a two-dimensional array.

public GetQueryDataTable(array<string|int, mixed> &$data, CSqlComposer $sql[, int|null $type = null ][, string|null $with_index = null ]) : int|null
Parameters
$data : array<string|int, mixed>

array containing the records found

$sql : CSqlComposer

the query to execute

$type : int|null = null

fetch type using generic constants (IDBMS::DB_ASSOC, etc.)

$with_index : string|null = null

field name to use as the index of the main array

Return values
int|null —

the total of records found or null on error

GetQueryDataValue()

Executes a query and fetches a single value.

public GetQueryDataValue(CSqlComposer $sql[, string $name_col = '0' ][, int|null $pos_row = null ]) : string|null
Parameters
$sql : CSqlComposer

The SQL query string.

$name_col : string = '0'

The column name or index.

$pos_row : int|null = null

The row number.

Return values
string|null —

The fetched value or null.

GetQueryFetchAssoc()

Executes a query and fetches a single row as an associative array.

public GetQueryFetchAssoc(CSqlComposer $sql[, int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$sql : CSqlComposer

The SQL query string.

$pos_row : int|null = null

The row number to fetch.

Return values
array<string|int, mixed>|null —

The fetched row or null.

GetQueryFetchRow()

Executes a query and fetches a single row as an numeric index array.

public GetQueryFetchRow(CSqlComposer $sql[, int|null $pos_row = null ]) : array<string|int, mixed>|null
Parameters
$sql : CSqlComposer

The SQL query string.

$pos_row : int|null = null

The row number to fetch.

Return values
array<string|int, mixed>|null —

The fetched row or null.

GetTableColumnNames()

Returns an array containing the names of all columns of a table.

public GetTableColumnNames(string $tablename) : array<string|int, string>
Parameters
$tablename : string

name of table

Return values
array<string|int, string> —

an array with all field names

GetTotalColumns()

Returns the number of columns of a previously executed query.

public GetTotalColumns() : int|bool
Return values
int|bool —

total of the columns or false on error

GetTotalRows()

Reads the total number of rows from a previously executed query.

public GetTotalRows() : int|bool
Return values
int|bool —

total number of rows or false on error

InitController()

Useful method for inheritors to inject constructor code after all its views

public InitController() : void

InsertRecord()

Make an entry in the DB

public InsertRecord(string|null $table, array<string|int, mixed> $items, array<string|int, mixed> $types) : bool
Parameters
$table : string|null

name of the table

$items : array<string|int, mixed>

associative array FIELD_NAME => FIELD_VALUE

$types : array<string|int, mixed>

of DB table fields

Return values
bool —

true if the insertion has been made

InsertRecordBatch()

Insert multiple records in a single batch operation

public InsertRecordBatch(string|null $table, array<string|int, mixed> $items, array<string|int, mixed> $batch_data, array<string|int, mixed> $types) : bool
Parameters
$table : string|null

name of the table (if null uses the default table)

$items : array<string|int, mixed>

associative array with field names as keys for the first record

$batch_data : array<string|int, mixed>

array of arrays, each containing values for one record

$types : array<string|int, mixed>

list of types mapped one to one with fields

Return values
bool —

true if successful, false otherwise

LoadAllTables()

Loads the schema of all tables into an array.

public LoadAllTables(array<string|int, mixed> &$db_tables) : void
Parameters
$db_tables : array<string|int, mixed>

list of tables to be returned

Prepare()

Prepares an SQL statement for execution.

public Prepare(string $sql) : void
Parameters
$sql : string

string containing the query to prepare

Query()

Executes a query on the DB.

public Query(string $sql[, array<string|int, mixed> $bind_param_values = [] ][, array<string|int, mixed> $bind_param_types = [] ]) : bool
Parameters
$sql : string

string containing the query to execute

$bind_param_values : array<string|int, mixed> = []

deferred values for the query

$bind_param_types : array<string|int, mixed> = []

DB data types

Return values
bool —

true if the query was successful

Rollback()

Rolls back the current transaction.

public Rollback() : void

SetAllModules()

Returns a list of all modules, using cache.

public SetAllModules() : void

SetAllTables()

Returns a list of all tables, using cache.

public SetAllTables() : array<string|int, mixed>
Tags
throws
Exception

if no tables are found

Return values
array<string|int, mixed> —

list of all tables

SetAutoCommit()

Sets the autocommit mode.

public SetAutoCommit([bool $bool = true ]) : void
Parameters
$bool : bool = true

if is true the autocommit is running

SetDBColumns()

Loads the schema of a table's columns into an array.

public SetDBColumns(array<string|int, mixed> &$db_cols[, string|null $table = null ]) : void
Parameters
$db_cols : array<string|int, mixed>

the results to be returned

$table : string|null = null

the table to be sampled

SetDBTable()

Sets the name of the reference table for the instance.

public SetDBTable(string $table) : void
Parameters
$table : string

The name of the main table to set.

SetRequiredItems()

For POST, PUT, PATCH methods add some limitations as min or max value or a specific rule with regular expression

public SetRequiredItems(array<string|int, mixed> $list) : void
Parameters
$list : array<string|int, mixed>

array contains per each table the relative limitations of single items

Tags
see
AddItemRequired()

for a single table this is prefered method

example

$controller = CBaseController::GetControllerName(); $rest = new $controller(...); // resource is the table/controller, the internal_code and the name are items with a limitated quantity of characters $rest->SetItemRequired( ['student' => [ ['name'=>'age','min'=>16, 'max'=>35], ['name'=>'vote','min'=>18, 'max'=>30] ['name'=>'periodicy', 'rule'=>'/[daily|weekly|monthly]/'] ]] );

SetUser()

Set a user manager object (CUser or childs)

public SetUser(CUser $user) : void
Parameters
$user : CUser

the user object

UpdateRecord()

Make an update in the DB

public UpdateRecord(string|null $table, string $conditions, array<string|int, mixed> $items, array<string|int, mixed> $conditions_values, array<string|int, mixed> $types) : bool
Parameters
$table : string|null

name of the table

$conditions : string

of the update

$items : array<string|int, mixed>

associative array FIELD_NAME => FIELD_VALUE

$conditions_values : array<string|int, mixed>

values of the conditions

$types : array<string|int, mixed>

of DB table fields

Return values
bool —

true if the update has been made

ChangeResult()

Change data and/or execute code before send data You can use: $this->http_method for distinguish the method used $this->request->SetMethod(string $method) for change the html output file $this->request->getAttributes() for know other specific values from url

protected ChangeResult(array<string|int, mixed> &$result) : mixed
Parameters
$result : array<string|int, mixed>

final data before sending

Delete()

Delete a record into a DB table

protected Delete() : array<string|int, mixed>
Return values
array<string|int, mixed> —

['result'=>true|false] if the operation was successful, false in all other cases

DoAfterDelete()

After an Delay derived classes can use this method to perform additional operations

protected DoAfterDelete(int $id) : void
Parameters
$id : int

id of executed delete operation

DoAfterInsert()

After an Insert derived classes can use this method to perform additional operations

protected DoAfterInsert(int $id) : void
Parameters
$id : int

the new id inserted

DoAfterModify()

After an Modify derived classes can use this method to perform additional operations

protected DoAfterModify(int $id) : void
Parameters
$id : int

id of executed modify operation

DoAfterOperation()

After an Insert, Modify or Delete, derived classes can use this method to perform additional operations

protected DoAfterOperation(string $operation, int $id) : void
Parameters
$operation : string

type of operation ('insert', 'modify' or 'delete')

$id : int

id of executed operation

ExecPOST()

Manager of HTTP Method POST (insert)

protected ExecPOST() : array<string|int, mixed>
Tags
throws
Exception

if the element can't be inserted

Return values
array<string|int, mixed> —

message result of insert operation

GetCachedData()

Retrieves data from the cache.

protected GetCachedData(string $cache_key[, string|null $table = null ][, bool $is_global = false ]) : mixed
Parameters
$cache_key : string

The key for the cache entry.

$table : string|null = null

The cache area (usually the table name).

$is_global : bool = false

Whether the cache is global or user-specific.

Return values
mixed —

The cached data or null if not found.

GetCacheKey()

Generates a unique cache key from a string.

protected GetCacheKey(string $key) : string
Parameters
$key : string

The input string.

Return values
string —

The hashed cache key.

GetPicklist()

Get picklist data for the current module's table (used for dropdowns) URL format: /module/picklist Respects user permissions (_module::tablefilter, _acl::only_owner)

protected GetPicklist() : array<string|int, mixed>
Return values
array<string|int, mixed> —

list of items [{id, name}, ...]

GetRelatedlist()

Get related data for the current module's table (used for related table views) URL format: /module/relatedlist Respects user permissions (_module::tablefilter, _acl::only_owner)

protected GetRelatedlist() : array<string|int, mixed>
Return values
array<string|int, mixed> —

list of items [{id, name}, ...]

Insert()

Insert a new record into a DB table

protected Insert() : array<string|int, mixed>
Return values
array<string|int, mixed> —

['result'=>true|false] if the operation was successful, false in all other cases

InvalidateRelatedCache()

Invalidates the cache for a given table and its related tables.

protected InvalidateRelatedCache(string|null $table) : void
Parameters
$table : string|null

The table name to invalidate. Defaults to the current table.

Modify()

Modify a record into a DB table

protected Modify([bool $all_params_required = true ]) : array<string|int, mixed>
Parameters
$all_params_required : bool = true

to update the data it is necessary that all the parameters of the table are present and valid

Return values
array<string|int, mixed> —

['result'=>true|false] if the operation was successful, false in all other cases

SetAutoRedirect()

set the redirect by method and message on results

protected SetAutoRedirect(string $http_method) : void
Parameters
$http_method : string

type of method (GET,POST,PUT,PATCH,DELETE,...)

SetCachedData()

Stores data in the cache.

protected SetCachedData(string $cache_key, mixed $data[, string|null $table = null ][, bool $is_global = false ]) : void
Parameters
$cache_key : string

The key for the cache entry.

$data : mixed

The data to store.

$table : string|null = null

The cache area (usually the table name).

$is_global : bool = false

Whether the cache is global or user-specific.


        
On this page

Search results