PormObject
extends Database
in package
Uses
TableLevelQueryTrait, AggregateTrait
This should not be worked with directly, use the Porm class instead.
Table of Contents
Properties
- $database : Core|null
- This is the Core object to use
- $logging : bool
- This is the logging option to use
- $options : array<string|int, mixed>
- This is the Medoo Object to pass along
- $pormVersion : string
- $using : string|null
- This is the Database connection to use, default is db
- $alias : string|null
- $allowFilterOnly : bool
- $columns : string|array<string|int, mixed>|null
- $pdo : PDO|null
- This is the PDO object you can pass along
- $preventHas : bool
- $preventRaw : true
- $resultSet : mixed
- $table : mixed
- The Database table to use
- $where : array<string|int, mixed>
Methods
- __construct() : mixed
- __destruct() : mixed
- asJson() : bool|string
- asObject() : mixed
- avg() : string|null
- clean() : string
- columns() : PormObject
- This defines the table column names to return from the Database
- count() : int|null
- createTable() : PDOStatement
- deleteAll() : PDOStatement|null
- This deletes all items that match the where clause
- deleteById() : PDOStatement|null
- This is under the hood similar to deleteOne but it is more explicit
- drop() : PDOStatement|null
- filter() : Builder
- This switches the query to filter mode. It is useful for conditional querying.
- first() : object|array<string|int, mixed>|null
- This grabs the first [n] items from the Database based on the pkField given
- from() : Porm
- This sets the table to use
- get() : object|array<string|int, mixed>|null
- Fetches a single item from the Database.
- getDatabase() : Core|null
- has() : bool
- This checks if the table has a record that matches the where clause
- info() : array<string|int, mixed>
- Returns the details of the current db connection
- inTransaction() : void
- Using transactions. This is a wrapper for the action method in the Core class.
- join() : object|null
- Opens the portal to the joins builder. Once you call this, you can call the join methods
- last() : object|array<string|int, mixed>|null
- Grab the last item from the Database based on the pkField clause
- lastId() : string|null
- Returns the id of the last inserted row
- logs() : mixed
- max() : string|null
- min() : string|null
- pdo() : PDO
- Returns the underlying pdo object From this, you can do anything you want with the pdo object
- query() : PDOStatement
- Gives you access to the underlying medoo object and pdo object
- random() : array<string|int, mixed>|mixed|object
- Fetches random n items from the table, default to 1
- raw() : Raw
- rawQuery() : mixed
- This assists to perform raw sql queries
- save() : object
- Saves and returns the saved item as an object
- sum() : string|null
- table() : Porm
- This is for running queries. Should be called first
- update() : PDOStatement|null
- use() : Database
- This is a static method to use a Database connection. It will return a new Database instance with the connection passed.
- using() : static
- This sets the connection to the Database to use for the current query.
- builder() : Core
- _resolve() : void
- Resolves the Database connection to use. If the connection is passed, it will use that connection. If the options are passed, it will use those options. If the pdo is passed, it will use that pdo.
- checkFilterMode() : void
- This prevents the use of non-filtering methods in filter mode.
- reboot() : Core
- This sets up the Database connection to use internally. It is called when the Porm class is being set up.
Properties
$database
This is the Core object to use
public
Core|null
$database
= null
$logging
This is the logging option to use
public
bool
$logging
= false
$options
This is the Medoo Object to pass along
public
array<string|int, mixed>
$options
= []
$pormVersion
public
static string
$pormVersion
= "1.0.7"
$using
This is the Database connection to use, default is db
public
string|null
$using
= 'db'
$alias
private
string|null
$alias
The alias to use, will defualt to the table name provided.
$allowFilterOnly
private
bool
$allowFilterOnly
= false
Lock out the use of any other method other than filter
$columns
private
string|array<string|int, mixed>|null
$columns
= '*'
The columns to select
$pdo
This is the PDO object you can pass along
private
PDO|null
$pdo
= null
$preventHas
private
bool
$preventHas
= false
Lock out the use of filter
$preventRaw
private
true
$preventRaw
= false
Lock out the use of raw queries
$resultSet
private
mixed
$resultSet
The result set to call asObject and asJson on.
$table
The Database table to use
private
mixed
$table
$where
private
array<string|int, mixed>
$where
= []
Methods
__construct()
public
__construct(mixed $table[, string|null $alias = null ][, string|null $using = null ]) : mixed
Parameters
- $table : mixed
- $alias : string|null = null
- $using : string|null = null
__destruct()
public
__destruct() : mixed
asJson()
public
asJson() : bool|string
Tags
Return values
bool|stringasObject()
public
asObject() : mixed
Tags
avg()
public
avg(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullclean()
public
clean(string $value) : string
Parameters
- $value : string
Tags
Return values
stringcolumns()
This defines the table column names to return from the Database
public
columns([string|array<string|int, mixed> $columns = "*" ]) : PormObject
If you're in join mode, then all ambigous columns should define the table as an alias
Parameters
- $columns : string|array<string|int, mixed> = "*"
-
The columns to select defaults to * for all.
Tags
Return values
PormObject —The current Porm object
count()
public
count([string|null $column = null ][, array<string|int, mixed>|null $where = null ]) : int|null
Parameters
- $column : string|null = null
- $where : array<string|int, mixed>|null = null
Tags
Return values
int|nullcreateTable()
public
createTable(string $table_name, array<string|int, mixed> $columns, array<string|int, mixed> $options) : PDOStatement
Parameters
- $table_name : string
- $columns : array<string|int, mixed>
- $options : array<string|int, mixed>
Tags
Return values
PDOStatementdeleteAll()
This deletes all items that match the where clause
public
deleteAll(array<string|int, mixed> $where) : PDOStatement|null
Parameters
- $where : array<string|int, mixed>
Tags
Return values
PDOStatement|nulldeleteById()
This is under the hood similar to deleteOne but it is more explicit
public
deleteById(string|int $id[, string|null $idField = 'id' ]) : PDOStatement|null
Parameters
- $id : string|int
- $idField : string|null = 'id'
Tags
Return values
PDOStatement|nulldrop()
public
drop(string $table_name) : PDOStatement|null
Parameters
- $table_name : string
Tags
Return values
PDOStatement|nullfilter()
This switches the query to filter mode. It is useful for conditional querying.
public
filter([array<string|int, mixed>|null $where = [] ]) : Builder
Parameters
- $where : array<string|int, mixed>|null = []
-
The where clause to use
Tags
Return values
Builderfirst()
This grabs the first [n] items from the Database based on the pkField given
public
first([int|null $size = 1 ][, array<string|int, mixed>|null $where = [] ][, string $pkField = 'id' ]) : object|array<string|int, mixed>|null
Parameters
- $size : int|null = 1
-
The number of items to fetch
- $where : array<string|int, mixed>|null = []
-
The where clause to use
- $pkField : string = 'id'
-
The primary key field to use
Tags
Return values
object|array<string|int, mixed>|nullfrom()
This sets the table to use
public
static from(string $table[, string|null $alias = null ][, string|null $using = null ]) : Porm
Parameters
- $table : string
-
The table to use
- $alias : string|null = null
-
The alias to use
- $using : string|null = null
-
The connection to use
Tags
Return values
Pormget()
Fetches a single item from the Database.
public
get([int|array<string|int, mixed>|string|null $where = null ][, string|null $idField = 'id' ]) : object|array<string|int, mixed>|null
If the where clause is not passed, it fetches the last item in the table. If the where clause is an integer, it fetches the item with the id. If the where clause is an array, it fetches the item that matches the where clause. If the where clause is null, it fetches the last item in the table.
Parameters
- $where : int|array<string|int, mixed>|string|null = null
- $idField : string|null = 'id'
-
defaults to id, pass this if you want to use a different field as the id other than id
Tags
Return values
object|array<string|int, mixed>|nullgetDatabase()
public
getDatabase() : Core|null
Return values
Core|nullhas()
This checks if the table has a record that matches the where clause
public
has(string|array<string|int, mixed>|int|null $where[, string|null $pkField = 'id' ]) : bool
Parameters
- $where : string|array<string|int, mixed>|int|null
- $pkField : string|null = 'id'
Tags
Return values
boolinfo()
Returns the details of the current db connection
public
info() : array<string|int, mixed>
Return values
array<string|int, mixed>inTransaction()
Using transactions. This is a wrapper for the action method in the Core class.
public
inTransaction(callable $callback) : void
To access data outside the transaction, Create a result variable and refer to the transaction callback with the keyword use, and you can get data back after when you assign it from inside.
Parameters
- $callback : callable
-
The callback to run. It should return a void.
Tags
join()
Opens the portal to the joins builder. Once you call this, you can call the join methods
public
join([array<string|int, mixed>|null $where = null ]) : object|null
Parameters
- $where : array<string|int, mixed>|null = null
Tags
Return values
object|nulllast()
Grab the last item from the Database based on the pkField clause
public
last([int|null $size = 1 ][, array<string|int, mixed>|null $where = [] ][, string $pkField = 'id' ]) : object|array<string|int, mixed>|null
Parameters
- $size : int|null = 1
-
The number of items to fetch
- $where : array<string|int, mixed>|null = []
-
The where clause to use
- $pkField : string = 'id'
-
The primary key field to use
Tags
Return values
object|array<string|int, mixed>|nulllastId()
Returns the id of the last inserted row
public
lastId() : string|null
Return values
string|nulllogs()
public
logs() : mixed
max()
public
max(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullmin()
public
min(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nullpdo()
Returns the underlying pdo object From this, you can do anything you want with the pdo object
public
pdo() : PDO
Tags
Return values
PDOquery()
Gives you access to the underlying medoo object and pdo object
public
query(string $query[, array<string|int, mixed> $map = [] ]) : PDOStatement
Parameters
- $query : string
- $map : array<string|int, mixed> = []
Tags
Return values
PDOStatementrandom()
Fetches random n items from the table, default to 1
public
random([int|null $limit = 1 ][, array<string|int, mixed>|null $where = null ]) : array<string|int, mixed>|mixed|object
Parameters
- $limit : int|null = 1
- $where : array<string|int, mixed>|null = null
Tags
Return values
array<string|int, mixed>|mixed|objectraw()
public
raw(string $query, array<string|int, mixed> $params) : Raw
Parameters
- $query : string
-
The query to run
- $params : array<string|int, mixed>
-
The parameters to pass prepare along with the query
Tags
Return values
RawrawQuery()
This assists to perform raw sql queries
public
static rawQuery(string $query[, array<string|int, mixed>|null $params = [] ][, string|null $using = 'db' ]) : mixed
Parameters
- $query : string
- $params : array<string|int, mixed>|null = []
- $using : string|null = 'db'
Tags
save()
Saves and returns the saved item as an object
public
save(array<string|int, mixed> $data) : object
Parameters
- $data : array<string|int, mixed>
-
The data to save. Must be an associative array
Tags
Return values
object —The saved object
sum()
public
sum(string $column, array<string|int, mixed>|null $where) : string|null
Parameters
- $column : string
- $where : array<string|int, mixed>|null
Tags
Return values
string|nulltable()
This is for running queries. Should be called first
public
static table(string $table[, string|null $alias = null ][, string|null $using = null ]) : Porm
Parameters
- $table : string
- $alias : string|null = null
- $using : string|null = null
Tags
Return values
Pormupdate()
public
update(array<string|int, mixed> $data, array<string|int, mixed>|int|string $where[, string|null $idField = 'id' ]) : PDOStatement|null
Parameters
- $data : array<string|int, mixed>
- $where : array<string|int, mixed>|int|string
- $idField : string|null = 'id'
Tags
Return values
PDOStatement|nulluse()
This is a static method to use a Database connection. It will return a new Database instance with the connection passed.
public
static use([string|null $databaseConnection = 'db' ]) : Database
Parameters
- $databaseConnection : string|null = 'db'
Tags
Return values
Databaseusing()
This sets the connection to the Database to use for the current query.
public
using([string $connection = 'db' ]) : static
It can be used to switch between Database connections.
Parameters
- $connection : string = 'db'
-
The connection to use, defaults to 'db'
Tags
Return values
staticbuilder()
protected
static builder([string|null $databaseConnection = null ][, mixed $options = null ][, PDO|null $pdo = null ]) : Core
Parameters
- $databaseConnection : string|null = null
- $options : mixed = null
- $pdo : PDO|null = null
Tags
Return values
Core_resolve()
Resolves the Database connection to use. If the connection is passed, it will use that connection. If the options are passed, it will use those options. If the pdo is passed, it will use that pdo.
private
_resolve([mixed $connection = null ][, mixed $options = null ][, mixed $pdo = null ]) : void
If all are passed, it will use the pdo connection and ignore the rest. If none are passed, it will use the default connection which is 'db'.
If extra options are passed, they will take precedence over the settings.ini file.
Parameters
- $connection : mixed = null
- $options : mixed = null
- $pdo : mixed = null
Tags
checkFilterMode()
This prevents the use of non-filtering methods in filter mode.
private
checkFilterMode([string $msg = 'Query is in filter mode, you cannot use this method in filter mode' ]) : void
Case here is like calling get() on join() yet join() return no resultset yet.
Parameters
- $msg : string = 'Query is in filter mode, you cannot use this method in filter mode'
-
The message to throw
This is primarily used internally for the purpose.
$this->checkFilterMode("You cannot delete at this point in the query, check the usage of the `delete()` method in the query builder for ".$this->table);
Tags
reboot()
This sets up the Database connection to use internally. It is called when the Porm class is being set up.
private
reboot() : Core