diff --git a/src/Dibi/dibi.php b/src/Dibi/dibi.php index 56df3004..5c0be8db 100644 --- a/src/Dibi/dibi.php +++ b/src/Dibi/dibi.php @@ -11,6 +11,29 @@ declare(strict_types=1); /** * This class is static container class for creating DB objects and * store connections info. + * + * @method void disconnect() + * @method Dibi\Result|int query(...$args) + * @method Dibi\Result|int nativeQuery(...$args) + * @method bool test(...$args) + * @method Dibi\DataSource dataSource(...$args) + * @method Dibi\Row|null fetch(...$args) + * @method array fetchAll(...$args) + * @method mixed fetchSingle(...$args) + * @method array fetchPairs(...$args) + * @method int getAffectedRows() + * @method int getInsertId(string $sequence = null) + * @method void begin(string $savepoint = null) + * @method void commit(string $savepoint = null) + * @method void rollback(string $savepoint = null) + * @method Dibi\Reflection\Database getDatabaseInfo() + * @method Dibi\Fluent command() + * @method Dibi\Fluent select(...$args) + * @method Dibi\Fluent update(string $table, array $args) + * @method Dibi\Fluent insert(string $table, array $args) + * @method Dibi\Fluent delete(string $table) + * @method Dibi\HashMap getSubstitutes() + * @method int loadFile(string $file) */ class dibi { @@ -73,15 +96,6 @@ class dibi } - /** - * Disconnects from database (doesn't destroy Connection object). - */ - public static function disconnect(): void - { - self::getConnection()->disconnect(); - } - - /** * Returns true when connection was established. */ @@ -126,101 +140,11 @@ class dibi /** - * Generates and executes SQL query - Monostate for Dibi\Connection::query(). - * @param mixed $args - * @return Dibi\Result|int result set or number of affected rows - * @throws Dibi\Exception + * Monostate for Dibi\Connection. */ - public static function query(...$args) + public static function __callStatic($name, $args) { - return self::getConnection()->query($args); - } - - - /** - * Executes the SQL query - Monostate for Dibi\Connection::nativeQuery(). - * @return Dibi\Result|int result set or number of affected rows - */ - public static function nativeQuery(string $sql) - { - return self::getConnection()->nativeQuery($sql); - } - - - /** - * Generates and prints SQL query - Monostate for Dibi\Connection::test(). - * @param mixed $args - */ - public static function test(...$args): bool - { - return self::getConnection()->test($args); - } - - - /** - * Generates and returns SQL query as DataSource - Monostate for Dibi\Connection::test(). - * @param mixed $args - */ - public static function dataSource(...$args): Dibi\DataSource - { - return self::getConnection()->dataSource($args); - } - - - /** - * Executes SQL query and fetch result - Monostate for Dibi\Connection::query() & fetch(). - * @param mixed $args - * @throws Dibi\Exception - */ - public static function fetch(...$args): ?Dibi\Row - { - return self::getConnection()->query($args)->fetch(); - } - - - /** - * Executes SQL query and fetch results - Monostate for Dibi\Connection::query() & fetchAll(). - * @param mixed $args - * @return Dibi\Row[] - * @throws Dibi\Exception - */ - public static function fetchAll(...$args): array - { - return self::getConnection()->query($args)->fetchAll(); - } - - - /** - * Executes SQL query and fetch first column - Monostate for Dibi\Connection::query() & fetchSingle(). - * @param mixed $args - * @return mixed - * @throws Dibi\Exception - */ - public static function fetchSingle(...$args) - { - return self::getConnection()->query($args)->fetchSingle(); - } - - - /** - * Executes SQL query and fetch pairs - Monostate for Dibi\Connection::query() & fetchPairs(). - * @param mixed $args - * @throws Dibi\Exception - */ - public static function fetchPairs(...$args): array - { - return self::getConnection()->query($args)->fetchPairs(); - } - - - /** - * Gets the number of affected rows. - * Monostate for Dibi\Connection::getAffectedRows() - * @throws Dibi\Exception - */ - public static function getAffectedRows(): int - { - return self::getConnection()->getAffectedRows(); + return self::getConnection()->$name(...$args); } @@ -234,17 +158,6 @@ class dibi } - /** - * Retrieves the ID generated for an AUTO_INCREMENT column by the previous INSERT query. - * Monostate for Dibi\Connection::getInsertId() - * @throws Dibi\Exception - */ - public static function getInsertId(string $sequence = null): int - { - return self::getConnection()->getInsertId($sequence); - } - - /** * @deprecated */ @@ -255,100 +168,6 @@ class dibi } - /** - * Begins a transaction - Monostate for Dibi\Connection::begin(). - * @throws Dibi\Exception - */ - public static function begin(string $savepoint = null): void - { - self::getConnection()->begin($savepoint); - } - - - /** - * Commits statements in a transaction - Monostate for Dibi\Connection::commit($savepoint = null). - * @throws Dibi\Exception - */ - public static function commit(string $savepoint = null): void - { - self::getConnection()->commit($savepoint); - } - - - /** - * Rollback changes in a transaction - Monostate for Dibi\Connection::rollback(). - * @throws Dibi\Exception - */ - public static function rollback(string $savepoint = null): void - { - self::getConnection()->rollback($savepoint); - } - - - /** - * Gets a information about the current database - Monostate for Dibi\Connection::getDatabaseInfo(). - */ - public static function getDatabaseInfo(): Dibi\Reflection\Database - { - return self::getConnection()->getDatabaseInfo(); - } - - - /** - * Import SQL dump from file - extreme fast! - * @return int count of sql commands - */ - public static function loadFile(string $file): int - { - return Dibi\Helpers::loadFromFile(self::getConnection(), $file); - } - - - /********************* fluent SQL builders ****************d*g**/ - - - public static function command(): Dibi\Fluent - { - return self::getConnection()->command(); - } - - - public static function select(...$args): Dibi\Fluent - { - return self::getConnection()->select(...$args); - } - - - public static function update(string $table, array $args): Dibi\Fluent - { - return self::getConnection()->update($table, $args); - } - - - public static function insert(string $table, array $args): Dibi\Fluent - { - return self::getConnection()->insert($table, $args); - } - - - public static function delete(string $table): Dibi\Fluent - { - return self::getConnection()->delete($table); - } - - - /********************* substitutions ****************d*g**/ - - - /** - * Returns substitution hashmap - Monostate for Dibi\Connection::getSubstitutes(). - */ - public static function getSubstitutes(): Dibi\HashMap - { - return self::getConnection()->getSubstitutes(); - } - - /********************* misc tools ****************d*g**/ diff --git a/tests/dibi/dibi.phpt b/tests/dibi/dibi.phpt new file mode 100644 index 00000000..4902f2aa --- /dev/null +++ b/tests/dibi/dibi.phpt @@ -0,0 +1,18 @@ + 'Test product', +]); +Assert::same(1, dibi::getAffectedRows());