123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259 |
- <?php
- /**
- * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
- * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- *
- * Licensed under The MIT License
- * For full copyright and license information, please see the LICENSE.txt
- * Redistributions of files must retain the above copyright notice.
- *
- * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
- * @link https://cakephp.org CakePHP(tm) Project
- * @since 3.6.0
- * @license https://opensource.org/licenses/mit-license.php MIT License
- */
- namespace Cake\Database;
- use Cake\Database\Query;
- /**
- * Interface for database driver.
- *
- * @method $this disableAutoQuoting()
- */
- interface DriverInterface
- {
- /**
- * Establishes a connection to the database server.
- *
- * @return bool True on success, false on failure.
- */
- public function connect();
- /**
- * Disconnects from database server.
- *
- * @return void
- */
- public function disconnect();
- /**
- * Returns correct connection resource or object that is internally used.
- *
- * @return object Connection object used internally.
- */
- public function getConnection();
- /**
- * Set the internal connection object.
- *
- * @param object $connection The connection instance.
- * @return $this
- */
- public function setConnection($connection);
- /**
- * Returns whether php is able to use this driver for connecting to database.
- *
- * @return bool True if it is valid to use this driver.
- */
- public function enabled();
- /**
- * Prepares a sql statement to be executed.
- *
- * @param string|\Cake\Database\Query $query The query to turn into a prepared statement.
- * @return \Cake\Database\StatementInterface
- */
- public function prepare($query);
- /**
- * Starts a transaction.
- *
- * @return bool True on success, false otherwise.
- */
- public function beginTransaction();
- /**
- * Commits a transaction.
- *
- * @return bool True on success, false otherwise.
- */
- public function commitTransaction();
- /**
- * Rollbacks a transaction.
- *
- * @return bool True on success, false otherwise.
- */
- public function rollbackTransaction();
- /**
- * Get the SQL for releasing a save point.
- *
- * @param string $name The table name.
- * @return string
- */
- public function releaseSavePointSQL($name);
- /**
- * Get the SQL for creating a save point.
- *
- * @param string $name The table name.
- * @return string
- */
- public function savePointSQL($name);
- /**
- * Get the SQL for rollingback a save point.
- *
- * @param string $name The table name.
- * @return string
- */
- public function rollbackSavePointSQL($name);
- /**
- * Get the SQL for disabling foreign keys.
- *
- * @return string
- */
- public function disableForeignKeySQL();
- /**
- * Get the SQL for enabling foreign keys.
- *
- * @return string
- */
- public function enableForeignKeySQL();
- /**
- * Returns whether the driver supports adding or dropping constraints
- * to already created tables.
- *
- * @return bool true if driver supports dynamic constraints.
- */
- public function supportsDynamicConstraints();
- /**
- * Returns whether this driver supports save points for nested transactions.
- *
- * @return bool True if save points are supported, false otherwise.
- */
- public function supportsSavePoints();
- /**
- * Returns a value in a safe representation to be used in a query string
- *
- * @param mixed $value The value to quote.
- * @param string $type Type to be used for determining kind of quoting to perform.
- * @return string
- */
- public function quote($value, $type);
- /**
- * Checks if the driver supports quoting.
- *
- * @return bool
- */
- public function supportsQuoting();
- /**
- * Returns a callable function that will be used to transform a passed Query object.
- * This function, in turn, will return an instance of a Query object that has been
- * transformed to accommodate any specificities of the SQL dialect in use.
- *
- * @param string $type The type of query to be transformed
- * (select, insert, update, delete).
- * @return callable
- */
- public function queryTranslator($type);
- /**
- * Get the schema dialect.
- *
- * Used by Cake\Database\Schema package to reflect schema and
- * generate schema.
- *
- * If all the tables that use this Driver specify their
- * own schemas, then this may return null.
- *
- * @return \Cake\Database\Schema\BaseSchema
- */
- public function schemaDialect();
- /**
- * Quotes a database identifier (a column name, table name, etc..) to
- * be used safely in queries without the risk of using reserved words.
- *
- * @param string $identifier The identifier expression to quote.
- * @return string
- */
- public function quoteIdentifier($identifier);
- /**
- * Escapes values for use in schema definitions.
- *
- * @param mixed $value The value to escape.
- * @return string String for use in schema definitions.
- */
- public function schemaValue($value);
- /**
- * Returns the schema name that's being used.
- *
- * @return string
- */
- public function schema();
- /**
- * Returns last id generated for a table or sequence in database.
- *
- * @param string|null $table table name or sequence to get last insert value from.
- * @param string|null $column the name of the column representing the primary key.
- * @return string|int
- */
- public function lastInsertId($table = null, $column = null);
- /**
- * Checks whether or not the driver is connected.
- *
- * @return bool
- */
- public function isConnected();
- /**
- * Sets whether or not this driver should automatically quote identifiers
- * in queries.
- *
- * @param bool $enable Whether to enable auto quoting
- * @return $this
- */
- public function enableAutoQuoting($enable = true);
- /**
- * Returns whether or not this driver should automatically quote identifiers
- * in queries.
- *
- * @return bool
- */
- public function isAutoQuotingEnabled();
- /**
- * Transforms the passed query to this Driver's dialect and returns an instance
- * of the transformed query and the full compiled SQL string.
- *
- * @param \Cake\Database\Query $query The query to compile.
- * @param \Cake\Database\ValueBinder $generator The value binder to use.
- * @return array containing 2 entries. The first entity is the transformed query
- * and the second one the compiled SQL.
- */
- public function compileQuery(Query $query, ValueBinder $generator);
- /**
- * Returns an instance of a QueryCompiler.
- *
- * @return \Cake\Database\QueryCompiler
- */
- public function newCompiler();
- }
|