Last active
April 13, 2023 14:42
-
-
Save agungsugiarto/4714d62ceedb1b21e424a16fadbe9864 to your computer and use it in GitHub Desktop.
Easy connection to connect database for CodeIgniter 4 application, this class like facade pattern to easy call method with static.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
namespace App\Facades; | |
use Config\Database; | |
/** | |
* @method static void initialize() | |
* @method static void close() | |
* @method static mixed persistentConnect() | |
* @method static false|object|resource getConnection(string|null $alias = null) | |
* @method static string getDatabase() | |
* @method static string setPrefix(string $prefix = '') | |
* @method static string getPrefix() | |
* @method static string getPlatform() | |
* @method static \CodeIgniter\Database\BaseConnection setAliasedTables(array $aliases) | |
* @method static \CodeIgniter\Database\BaseConnection addTableAlias(string $table) | |
* @method static \CodeIgniter\Database\BaseResult|bool|\CodeIgniter\Database\Query query(string $sql, mixed $binds = null, bool $setEscapeFlags = true, string $queryClass = '') | |
* @method static false|object|resource simpleQuery(string $sql) | |
* @method static void transOff() | |
* @method static \CodeIgniter\Database\BaseConnection transStrict(bool $mode = true) | |
* @method static bool transStart(bool $testMode = false) | |
* @method static \CodeIgniter\Database\BaseConnection transException(bool $transExcetion) | |
* @method static bool transComplete() | |
* @method static bool transStatus() | |
* @method static bool transBegin(bool $testMode = false) | |
* @method static bool transCommit() | |
* @method static bool transRollback() | |
* @method static \CodeIgniter\Database\BaseBuilder table(array|string $tableName) | |
* @method static \CodeIgniter\Database\BaseBuilder newQuery() | |
* @method static \CodeIgniter\Database\BasePreparedQuery|null prepare(\Closure $func, array $options = []) | |
* @method static \CodeIgniter\Database\Query getLastQuery() | |
* @method static string showLastQuery() | |
* @method static float|null getConnectStart() | |
* @method static string getConnectDuration(int $decimals = 6) | |
* @method static array|string protectIdentifiers(array|string $item, bool $prefixSingle = false, bool $protectIdentifiers = null, bool $fieldExists = true) | |
* @method static array|string escapeIdentifiers(array|string $item) | |
* @method static string prefixTable(string $table = '') | |
* @method static int affectedRows() | |
* @method static array|float|int|string escape(array|bool|float|int|object|string|null $str) | |
* @method static string|string[] escapeString(string|string[] $str, bool $like = false) | |
* @method static string|string[] escapeLikeString(string|string[] $str) | |
* @method static bool callFunction(string $functionName, array ...$params) | |
* @method static array|false listTables(bool $constrainByPrefix = false) | |
* @method static bool tableExists(string $tableName, bool $cached = true) | |
* @method static array|false getFieldNames(string $table) | |
* @method static bool fieldExists(string $fieldName, string $tableName) | |
* @method static stdClass[] getFieldData(string $table) | |
* @method static array getIndexData(string $table) | |
* @method static array getForeignKeyData(string $table) | |
* @method static bool disableForeignKeyChecks() | |
* @method static bool enableForeignKeyChecks() | |
* @method static \CodeIgniter\Database\BaseConnection pretend(bool $pretend = true) | |
* @method static \CodeIgniter\Database\BaseConnection resetDataCache() | |
* @method static bool isWriteType(string $sql) | |
* @method static array error() | |
* @method static int|string insertID() | |
* @method static false|object|resource connect(bool $persistent = false) | |
* @method static void reconnect() | |
* @method static mixed setDatabase(string $databaseName) | |
* @method static string getVersion() | |
* @method static \CodeIgniter\Database\BaseConnection|\CodeIgniter\Database\ConnectionInterface db() | |
* @method static \CodeIgniter\Database\BaseBuilder testMode(bool $mode = true) | |
* @method static string getTable() | |
* @method static array getBinds() | |
* @method static \CodeIgniter\Database\BaseBuilder ignore(bool $ignore = true) | |
* @method static \CodeIgniter\Database\BaseBuilder select(array|\CodeIgniter\Database\RawSql|string $select = '*', bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder selectMax(string $select = '', string $alias = '') | |
* @method static \CodeIgniter\Database\BaseBuilder selectMin(string $select = '', string $alias = '') | |
* @method static \CodeIgniter\Database\BaseBuilder selectAvg(string $select = '', string $alias = '') | |
* @method static \CodeIgniter\Database\BaseBuilder selectSum(string $select = '', string $alias = '') | |
* @method static \CodeIgniter\Database\BaseBuilder selectCount(string $select = '', string $alias = '') | |
* @method static \self selectSubquery(\CodeIgniter\Database\BaseBuilder $subquery, string $as) | |
* @method static \CodeIgniter\Database\BaseBuilder distinct(bool $val = true) | |
* @method static \CodeIgniter\Database\BaseBuilder from(array|string $from, bool $overwrite = false) | |
* @method static \CodeIgniter\Database\BaseBuilder fromSubquery(\CodeIgniter\Database\BaseBuilder $from, string $alias) | |
* @method static \CodeIgniter\Database\BaseBuilder join(string $table, \CodeIgniter\Database\RawSql|string $cond, string $type = '', bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder where(array|\CodeIgniter\Database\RawSql|string $key, mixed $value = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orWhere(array|\CodeIgniter\Database\RawSql|string $key, mixed $value = null, bool $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder whereIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orWhereIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder whereNotIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orWhereNotIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder havingIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orHavingIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder havingNotIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orHavingNotIn(string|null $key = null, array|\CodeIgniter\Database\BaseBuilder|Closure|string $values = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder like(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder notLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder orLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder orNotLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder havingLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder notHavingLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder orHavingLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder orNotHavingLike(array|\CodeIgniter\Database\RawSql|string $field, string $match = '', string $side = 'both', bool|null $escape = null, bool $insensitiveSearch = false) | |
* @method static \CodeIgniter\Database\BaseBuilder union(\CodeIgniter\Database\BaseBuilder|Closure $union) | |
* @method static \CodeIgniter\Database\BaseBuilder unionAll(\CodeIgniter\Database\BaseBuilder|Closure $union) | |
* @method static \CodeIgniter\Database\BaseBuilder groupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder orGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder notGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder orNotGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder groupEnd() | |
* @method static \CodeIgniter\Database\BaseBuilder havingGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder orHavingGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder notHavingGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder orNotHavingGroupStart() | |
* @method static \CodeIgniter\Database\BaseBuilder havingGroupEnd() | |
* @method static \CodeIgniter\Database\BaseBuilder groupBy(array|string $by, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder having(array|\CodeIgniter\Database\RawSql|string $key, mixed $value = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orHaving(array|\CodeIgniter\Database\RawSql|string $key, mixed $value = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder orderBy(string $orderBy, string $direction = '', bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseBuilder limit(int|null $value = null, int|null $offset = 0) | |
* @method static \CodeIgniter\Database\BaseBuilder offset(int $offset) | |
* @method static \CodeIgniter\Database\BaseBuilder set(array|object|string $key, mixed $value = '', bool|null $escape = null) | |
* @method static array getSetData(bool $clean = false) | |
* @method static string getCompiledSelect(bool $reset = true) | |
* @method static false|\CodeIgniter\Database\ResultInterface get(int|null $limit = null, int $offset = 0, bool $reset = true) | |
* @method static int|string countAll(bool $reset = true) | |
* @method static int|string countAllResults(bool $reset = true) | |
* @method static array getCompiledQBWhere() | |
* @method static \CodeIgniter\Database\ResultInterface getWhere(array|string $where = null, int|null $limit = null, int|null $offset = 0, bool $reset = true) | |
* @method static \CodeIgniter\Database\BaseBuilder|null setData(array|object $set, bool|null $escape = null, string $alias = '') | |
* @method static string getCompiledUpsert() | |
* @method static false|int|string[] upsert(array|object|null $set = null, bool|null $escape = null) | |
* @method static false|int|string[] upsertBatch(array|object|null $set = null, bool|null $escape = null, int $batchSize = 100) | |
* @method static \CodeIgniter\Database\BaseBuilder updateFields(\CodeIgniter\Database\RawSql[]|string|string[] $set, bool $addToDefault = false, array|null $ignore = null) | |
* @method static \CodeIgniter\Database\BaseBuilder onConstraint(array|\CodeIgniter\Database\RawSql|string $set) | |
* @method static \CodeIgniter\Database\BaseBuilder setQueryAsData(\CodeIgniter\Database\BaseBuilder|\CodeIgniter\Database\RawSql $query, string|null $alias = null, array|string|null $columns = null) | |
* @method static false|int|string[] insertBatch(array|object|null $set = null, bool|null $escape = null, int $batchSize = 100) | |
* @method static bool|string getCompiledInsert(bool $reset = true) | |
* @method static bool insert(array|object|null $set = null, bool|null $escape = null) | |
* @method static \CodeIgniter\Database\BaseResult|false|\CodeIgniter\Database\Query|string replace(array|null $set = null) | |
* @method static bool|string getCompiledUpdate(bool $reset = true) | |
* @method static bool update(array|object|null $set = null, array|\CodeIgniter\Database\RawSql|string|null $where = null, int|null $limit = null) | |
* @method static false|int|string[] updateBatch(array|object|null $set = null, array|\CodeIgniter\Database\RawSql|string|null $constraints = null, int $batchSize = 100) | |
* @method static bool|string emptyTable() | |
* @method static bool|string truncate() | |
* @method static string getCompiledDelete(bool $reset = true) | |
* @method static bool|string delete(mixed $where = '', int|null $limit = null, bool $resetData = true) | |
* @method static false|int|string[] deleteBatch(array|object|null $set = null, array|\CodeIgniter\Database\RawSql|null $constraints = null, int $batchSize = 100) | |
* @method static bool increment(string $column, int $value = 1) | |
* @method static bool decrement(string $column, int $value = 1) | |
* @method static \CodeIgniter\Database\BaseBuilder resetQuery() | |
* @method static \CodeIgniter\Database\BaseBuilder when(array|bool|float|int|object|resource|string|null $condition, callable $callback, callable|null $defaultCallback = null) | |
* @method static \CodeIgniter\Database\BaseBuilder whenNot(array|bool|float|int|object|resource|string|null $condition, callable $callback, callable|null $defaultCallback = null) | |
* | |
* @see \CodeIgniter\Database\BaseConnection | |
* @see \CodeIgniter\Database\BaseBuilder | |
*/ | |
class DB | |
{ | |
/** | |
* Get a connection instance from the global manager. | |
* | |
* @param string|null $connection | |
* @return \CodeIgniter\Database\BaseConnection | |
*/ | |
public static function connection($connection = null) | |
{ | |
return Database::connect($connection); | |
} | |
/** | |
* Call static base connection instance. | |
* | |
* @param $method | |
* @param $arguments | |
* @return BaseConnection|BaseBuilder | |
*/ | |
public static function __callStatic($method, $arguments) | |
{ | |
return static::connection()->{$method}(...$arguments); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
How to use in controller
First save
DB.php
to theApp\Models
and now you're ready to use. Example see the below: