/
var
/
www
/
vhosts
/
ihelp.ro
/
_OLD
/
vendor
/
cakephp
/
cakephp
/
src
/
Database
/
/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Database
mkdir
upload
Name
Size
Mode
Actions
Driver/
-
0755
rm
Exception/
-
0755
rm
Expression/
-
0755
rm
Log/
-
0755
rm
Retry/
-
0755
rm
Schema/
-
0755
rm
Statement/
-
0755
rm
Type/
-
0755
rm
composer.json
1096
0644
edit
dl
rm
Connection.php
27819
0644
edit
dl
rm
ConstraintsInterface.php
1810
0644
edit
dl
rm
Driver.php
11802
0644
edit
dl
rm
DriverInterface.php
8058
0644
edit
dl
rm
Exception.php
786
0644
edit
dl
rm
ExpressionInterface.php
1382
0644
edit
dl
rm
FieldTypeConverter.php
4366
0644
edit
dl
rm
FunctionsBuilder.php
14659
0644
edit
dl
rm
IdentifierQuoter.php
7811
0644
edit
dl
rm
LICENSE.txt
1204
0644
edit
dl
rm
PostgresCompiler.php
2812
0644
edit
dl
rm
Query.php
78113
0644
edit
dl
rm
QueryCompiler.php
16655
0644
edit
dl
rm
README.md
10719
0644
edit
dl
rm
SchemaCache.php
3386
0644
edit
dl
rm
SqlDialectTrait.php
171
0644
edit
dl
rm
SqliteCompiler.php
937
0644
edit
dl
rm
SqlserverCompiler.php
5167
0644
edit
dl
rm
StatementInterface.php
6777
0644
edit
dl
rm
Type.php
165
0644
edit
dl
rm
TypeConverterTrait.php
2197
0644
edit
dl
rm
TypedResultInterface.php
1093
0644
edit
dl
rm
TypedResultTrait.php
1356
0644
edit
dl
rm
TypeFactory.php
5382
0644
edit
dl
rm
TypeInterface.php
3334
0644
edit
dl
rm
TypeMap.php
4606
0644
edit
dl
rm
TypeMapTrait.php
2344
0644
edit
dl
rm
ValueBinder.php
4533
0644
edit
dl
rm
Edit:
/var/www/vhosts/ihelp.ro/_OLD/vendor/cakephp/cakephp/src/Database/Driver.php
(11802B)
<?php declare(strict_types=1); /** * 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.0.0 * @license https://opensource.org/licenses/mit-license.php MIT License */ namespace Cake\Database; use Cake\Core\App; use Cake\Database\Exception\MissingConnectionException; use Cake\Database\Schema\SchemaDialect; use Cake\Database\Schema\TableSchema; use Cake\Database\Statement\PDOStatement; use Closure; use InvalidArgumentException; use PDO; use PDOException; /** * Represents a database driver containing all specificities for * a database engine including its SQL dialect. */ abstract class Driver implements DriverInterface { /** * @var int|null Maximum alias length or null if no limit */ protected const MAX_ALIAS_LENGTH = null; /** * Instance of PDO. * * @var \PDO */ protected $_connection; /** * Configuration data. * * @var array */ protected $_config; /** * Base configuration that is merged into the user * supplied configuration data. * * @var array */ protected $_baseConfig = []; /** * Indicates whether or not the driver is doing automatic identifier quoting * for all queries * * @var bool */ protected $_autoQuoting = false; /** * Whether or not the server supports common table expressions. * * @var bool|null */ protected $supportsCTEs = null; /** * The server version * * @var string|null */ protected $_version; /** * Constructor * * @param array $config The configuration for the driver. * @throws \InvalidArgumentException */ public function __construct(array $config = []) { if (empty($config['username']) && !empty($config['login'])) { throw new InvalidArgumentException( 'Please pass "username" instead of "login" for connecting to the database' ); } $config += $this->_baseConfig; $this->_config = $config; if (!empty($config['quoteIdentifiers'])) { $this->enableAutoQuoting(); } } /** * Establishes a connection to the database server * * @param string $dsn A Driver-specific PDO-DSN * @param array $config configuration to be used for creating connection * @return bool true on success */ protected function _connect(string $dsn, array $config): bool { try { $connection = new PDO( $dsn, $config['username'] ?: null, $config['password'] ?: null, $config['flags'] ); } catch (PDOException $e) { throw new MissingConnectionException( [ 'driver' => App::shortName(static::class, 'Database/Driver'), 'reason' => $e->getMessage(), ], null, $e ); } $this->setConnection($connection); return true; } /** * @inheritDoc */ abstract public function connect(): bool; /** * @inheritDoc */ public function disconnect(): void { /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ $this->_connection = null; $this->_version = null; } /** * Returns connected server version. * * @return string */ public function version(): string { if ($this->_version === null) { $this->connect(); $this->_version = (string)$this->_connection->getAttribute(PDO::ATTR_SERVER_VERSION); } return $this->_version; } /** * Get the internal PDO connection instance. * * @return \PDO */ public function getConnection() { if ($this->_connection === null) { throw new MissingConnectionException([ 'driver' => App::shortName(static::class, 'Database/Driver'), 'reason' => 'Unknown', ]); } return $this->_connection; } /** * Set the internal PDO connection instance. * * @param \PDO $connection PDO instance. * @return $this * @psalm-suppress MoreSpecificImplementedParamType */ public function setConnection($connection) { $this->_connection = $connection; return $this; } /** * @inheritDoc */ abstract public function enabled(): bool; /** * @inheritDoc */ public function prepare($query): StatementInterface { $this->connect(); $statement = $this->_connection->prepare($query instanceof Query ? $query->sql() : $query); return new PDOStatement($statement, $this); } /** * @inheritDoc */ public function beginTransaction(): bool { $this->connect(); if ($this->_connection->inTransaction()) { return true; } return $this->_connection->beginTransaction(); } /** * @inheritDoc */ public function commitTransaction(): bool { $this->connect(); if (!$this->_connection->inTransaction()) { return false; } return $this->_connection->commit(); } /** * @inheritDoc */ public function rollbackTransaction(): bool { $this->connect(); if (!$this->_connection->inTransaction()) { return false; } return $this->_connection->rollBack(); } /** * @inheritDoc */ abstract public function releaseSavePointSQL($name): string; /** * @inheritDoc */ abstract public function savePointSQL($name): string; /** * @inheritDoc */ abstract public function rollbackSavePointSQL($name): string; /** * @inheritDoc */ abstract public function disableForeignKeySQL(): string; /** * @inheritDoc */ abstract public function enableForeignKeySQL(): string; /** * @inheritDoc */ abstract public function supportsDynamicConstraints(): bool; /** * @inheritDoc */ public function supportsSavePoints(): bool { return true; } /** * Returns true if the server supports common table expressions. * * @return bool */ public function supportsCTEs(): bool { return $this->supportsCTEs === true; } /** * {@inheritDoc} * * @param mixed $value The value to quote. * @param int $type Type to be used for determining kind of quoting to perform. * @return string */ public function quote($value, $type = PDO::PARAM_STR): string { $this->connect(); return $this->_connection->quote($value, $type); } /** * Checks if the driver supports quoting, as PDO_ODBC does not support it. * * @return bool */ public function supportsQuoting(): bool { $this->connect(); return $this->_connection->getAttribute(PDO::ATTR_DRIVER_NAME) !== 'odbc'; } /** * @inheritDoc */ abstract public function queryTranslator(string $type): Closure; /** * @inheritDoc */ abstract public function schemaDialect(): SchemaDialect; /** * @inheritDoc */ abstract public function quoteIdentifier(string $identifier): string; /** * @inheritDoc */ public function schemaValue($value): string { if ($value === null) { return 'NULL'; } if ($value === false) { return 'FALSE'; } if ($value === true) { return 'TRUE'; } if (is_float($value)) { return str_replace(',', '.', (string)$value); } /** @psalm-suppress InvalidArgument */ if ( ( is_int($value) || $value === '0' ) || ( is_numeric($value) && strpos($value, ',') === false && substr($value, 0, 1) !== '0' && strpos($value, 'e') === false ) ) { return (string)$value; } return $this->_connection->quote($value, PDO::PARAM_STR); } /** * @inheritDoc */ public function schema(): string { return $this->_config['schema']; } /** * @inheritDoc */ public function lastInsertId(?string $table = null, ?string $column = null) { $this->connect(); if ($this->_connection instanceof PDO) { return $this->_connection->lastInsertId($table); } return $this->_connection->lastInsertId($table, $column); } /** * @inheritDoc */ public function isConnected(): bool { if ($this->_connection === null) { $connected = false; } else { try { $connected = (bool)$this->_connection->query('SELECT 1'); } catch (PDOException $e) { $connected = false; } } return $connected; } /** * @inheritDoc */ public function enableAutoQuoting(bool $enable = true) { $this->_autoQuoting = $enable; return $this; } /** * @inheritDoc */ public function disableAutoQuoting() { $this->_autoQuoting = false; return $this; } /** * @inheritDoc */ public function isAutoQuotingEnabled(): bool { return $this->_autoQuoting; } /** * @inheritDoc */ public function compileQuery(Query $query, ValueBinder $generator): array { $processor = $this->newCompiler(); $translator = $this->queryTranslator($query->type()); $query = $translator($query); return [$query, $processor->compile($query, $generator)]; } /** * @inheritDoc */ public function newCompiler(): QueryCompiler { return new QueryCompiler(); } /** * @inheritDoc */ public function newTableSchema(string $table, array $columns = []): TableSchema { $className = TableSchema::class; if (isset($this->_config['tableSchema'])) { /** @var class-string<\Cake\Database\Schema\TableSchema> $className */ $className = $this->_config['tableSchema']; } return new $className($table, $columns); } /** * Returns the maximum alias length allowed. * This can be different than the maximum identifier length for columns. * * @return int|null Maximum alias length or null if no limit */ public function getMaxAliasLength(): ?int { return static::MAX_ALIAS_LENGTH; } /** * Destructor */ public function __destruct() { /** @psalm-suppress PossiblyNullPropertyAssignmentValue */ $this->_connection = null; } /** * Returns an array that can be used to describe the internal state of this * object. * * @return array */ public function __debugInfo(): array { return [ 'connected' => $this->_connection !== null, ]; } }
Save
cmd:
run