tracking stuff
This commit is contained in:
1
vendor/bin/doctrine-dbal
vendored
Symbolic link
1
vendor/bin/doctrine-dbal
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../doctrine/dbal/bin/doctrine-dbal
|
||||
1
vendor/bin/uaparser
vendored
Symbolic link
1
vendor/bin/uaparser
vendored
Symbolic link
@@ -0,0 +1 @@
|
||||
../ua-parser/uap-php/bin/uaparser
|
||||
460
vendor/composer/autoload_classmap.php
vendored
460
vendor/composer/autoload_classmap.php
vendored
@@ -146,6 +146,9 @@ return array(
|
||||
'BeyondCode\\DumpServer\\DumpServerServiceProvider' => $vendorDir . '/beyondcode/laravel-dump-server/src/DumpServerServiceProvider.php',
|
||||
'BeyondCode\\DumpServer\\Dumper' => $vendorDir . '/beyondcode/laravel-dump-server/src/Dumper.php',
|
||||
'BeyondCode\\DumpServer\\RequestContextProvider' => $vendorDir . '/beyondcode/laravel-dump-server/src/RequestContextProvider.php',
|
||||
'Bllim\\Datatables\\Datatables' => $vendorDir . '/pragmarx/datatables/src/Bllim/Datatables/Datatables.php',
|
||||
'Bllim\\Datatables\\DatatablesServiceProvider' => $vendorDir . '/pragmarx/datatables/src/Bllim/Datatables/DatatablesServiceProvider.php',
|
||||
'Bllim\\Datatables\\Facade\\Datatables' => $vendorDir . '/pragmarx/datatables/src/Bllim/Datatables/Facade/Datatables.php',
|
||||
'Cake\\Chronos\\Chronos' => $vendorDir . '/cakephp/chronos/src/Chronos.php',
|
||||
'Cake\\Chronos\\ChronosInterface' => $vendorDir . '/cakephp/chronos/src/ChronosInterface.php',
|
||||
'Cake\\Chronos\\ChronosInterval' => $vendorDir . '/cakephp/chronos/src/ChronosInterval.php',
|
||||
@@ -207,6 +210,7 @@ return array(
|
||||
'Collective\\Html\\HtmlBuilder' => $vendorDir . '/laravelcollective/html/src/HtmlBuilder.php',
|
||||
'Collective\\Html\\HtmlFacade' => $vendorDir . '/laravelcollective/html/src/HtmlFacade.php',
|
||||
'Collective\\Html\\HtmlServiceProvider' => $vendorDir . '/laravelcollective/html/src/HtmlServiceProvider.php',
|
||||
'Composer\\CaBundle\\CaBundle' => $vendorDir . '/composer/ca-bundle/src/CaBundle.php',
|
||||
'ConfigTableSeeder' => $baseDir . '/database/seeds/ConfigTableSeeder.php',
|
||||
'ConsoleTVs\\Charts\\ChartsServiceProvider' => $vendorDir . '/consoletvs/charts/src/ChartsServiceProvider.php',
|
||||
'ConsoleTVs\\Charts\\Classes\\BaseChart' => $vendorDir . '/consoletvs/charts/src/Classes/BaseChart.php',
|
||||
@@ -269,8 +273,295 @@ return array(
|
||||
'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',
|
||||
'DeepCopy\\TypeFilter\\TypeFilter' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',
|
||||
'DeepCopy\\TypeMatcher\\TypeMatcher' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',
|
||||
'Detection\\MobileDetect' => $vendorDir . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php',
|
||||
'Doctrine\\Common\\Cache\\ApcCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php',
|
||||
'Doctrine\\Common\\Cache\\ApcuCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php',
|
||||
'Doctrine\\Common\\Cache\\ArrayCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php',
|
||||
'Doctrine\\Common\\Cache\\Cache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php',
|
||||
'Doctrine\\Common\\Cache\\CacheProvider' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php',
|
||||
'Doctrine\\Common\\Cache\\ChainCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php',
|
||||
'Doctrine\\Common\\Cache\\ClearableCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php',
|
||||
'Doctrine\\Common\\Cache\\CouchbaseBucketCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php',
|
||||
'Doctrine\\Common\\Cache\\CouchbaseCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php',
|
||||
'Doctrine\\Common\\Cache\\ExtMongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\FileCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php',
|
||||
'Doctrine\\Common\\Cache\\FilesystemCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php',
|
||||
'Doctrine\\Common\\Cache\\FlushableCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php',
|
||||
'Doctrine\\Common\\Cache\\InvalidCacheId' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/InvalidCacheId.php',
|
||||
'Doctrine\\Common\\Cache\\LegacyMongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\MemcacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\MemcachedCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php',
|
||||
'Doctrine\\Common\\Cache\\MongoDBCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiDeleteCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiGetCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiOperationCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiPutCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php',
|
||||
'Doctrine\\Common\\Cache\\PhpFileCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php',
|
||||
'Doctrine\\Common\\Cache\\PredisCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php',
|
||||
'Doctrine\\Common\\Cache\\RedisCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php',
|
||||
'Doctrine\\Common\\Cache\\SQLite3Cache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php',
|
||||
'Doctrine\\Common\\Cache\\Version' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/Version.php',
|
||||
'Doctrine\\Common\\Cache\\VoidCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php',
|
||||
'Doctrine\\Common\\Cache\\WinCacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\XcacheCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\ZendDataCache' => $vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php',
|
||||
'Doctrine\\Common\\EventArgs' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventArgs.php',
|
||||
'Doctrine\\Common\\EventManager' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventManager.php',
|
||||
'Doctrine\\Common\\EventSubscriber' => $vendorDir . '/doctrine/event-manager/lib/Doctrine/Common/EventSubscriber.php',
|
||||
'Doctrine\\Common\\Inflector\\Inflector' => $vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',
|
||||
'Doctrine\\Common\\Lexer\\AbstractLexer' => $vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',
|
||||
'Doctrine\\DBAL\\Cache\\ArrayStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php',
|
||||
'Doctrine\\DBAL\\Cache\\CacheException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php',
|
||||
'Doctrine\\DBAL\\Cache\\QueryCacheProfile' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php',
|
||||
'Doctrine\\DBAL\\Cache\\ResultCacheStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php',
|
||||
'Doctrine\\DBAL\\ColumnCase' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php',
|
||||
'Doctrine\\DBAL\\Configuration' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php',
|
||||
'Doctrine\\DBAL\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Connection.php',
|
||||
'Doctrine\\DBAL\\ConnectionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php',
|
||||
'Doctrine\\DBAL\\Connections\\MasterSlaveConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php',
|
||||
'Doctrine\\DBAL\\DBALException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php',
|
||||
'Doctrine\\DBAL\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver.php',
|
||||
'Doctrine\\DBAL\\DriverManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractDB2Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractDriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractMySQLDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractOracleDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractOracleDriver\\EasyConnectString' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractPostgreSQLDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLAnywhereDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLServerDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLiteDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\DriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php',
|
||||
'Doctrine\\DBAL\\Driver\\DrizzlePDOMySql\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\DrizzlePDOMySql\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\ExceptionConverterDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Exception' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Exception' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOIbm\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOOracle\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOPgSql\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PingableConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PingableConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\ResultStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereException.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\Driver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\LastInsertId' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/LastInsertId.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvStatement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\StatementIterator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/StatementIterator.php',
|
||||
'Doctrine\\DBAL\\Event\\ConnectionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/ConnectionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\MysqlSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/MysqlSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\OracleSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/OracleSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\SQLSessionInit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/SQLSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableAddColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableAddColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableChangeColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableChangeColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableRemoveColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRemoveColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableRenameColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRenameColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaColumnDefinitionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaColumnDefinitionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaCreateTableColumnEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaCreateTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaDropTableEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaDropTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaIndexDefinitionEventArgs' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaIndexDefinitionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Events' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Events.php',
|
||||
'Doctrine\\DBAL\\Exception\\ConnectionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConnectionException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DatabaseObjectExistsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectExistsException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DatabaseObjectNotFoundException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectNotFoundException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DeadlockException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DeadlockException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DriverException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DriverException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ForeignKeyConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ForeignKeyConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\InvalidArgumentException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidArgumentException.php',
|
||||
'Doctrine\\DBAL\\Exception\\InvalidFieldNameException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidFieldNameException.php',
|
||||
'Doctrine\\DBAL\\Exception\\LockWaitTimeoutException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/LockWaitTimeoutException.php',
|
||||
'Doctrine\\DBAL\\Exception\\NonUniqueFieldNameException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NonUniqueFieldNameException.php',
|
||||
'Doctrine\\DBAL\\Exception\\NotNullConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NotNullConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ReadOnlyException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ReadOnlyException.php',
|
||||
'Doctrine\\DBAL\\Exception\\RetryableException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/RetryableException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ServerException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ServerException.php',
|
||||
'Doctrine\\DBAL\\Exception\\SyntaxErrorException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/SyntaxErrorException.php',
|
||||
'Doctrine\\DBAL\\Exception\\TableExistsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableExistsException.php',
|
||||
'Doctrine\\DBAL\\Exception\\TableNotFoundException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableNotFoundException.php',
|
||||
'Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/UniqueConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\FetchMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php',
|
||||
'Doctrine\\DBAL\\Id\\TableGenerator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGenerator.php',
|
||||
'Doctrine\\DBAL\\Id\\TableGeneratorSchemaVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGeneratorSchemaVisitor.php',
|
||||
'Doctrine\\DBAL\\LockMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/LockMode.php',
|
||||
'Doctrine\\DBAL\\Logging\\DebugStack' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/DebugStack.php',
|
||||
'Doctrine\\DBAL\\Logging\\EchoSQLLogger' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php',
|
||||
'Doctrine\\DBAL\\Logging\\LoggerChain' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/LoggerChain.php',
|
||||
'Doctrine\\DBAL\\Logging\\SQLLogger' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/SQLLogger.php',
|
||||
'Doctrine\\DBAL\\ParameterType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php',
|
||||
'Doctrine\\DBAL\\Platforms\\AbstractPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DB2Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DB2Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DateIntervalUnit' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DateIntervalUnit.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DrizzlePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DrizzlePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\DB2Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DB2Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\DrizzleKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DrizzleKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\KeywordList' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb102Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MariaDb102Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MsSQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MsSQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL57Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL57Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL80Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL80Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\OracleKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/OracleKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL100Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL100Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL91Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL91Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL92Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL92Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL94Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL94Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQLKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\ReservedKeywordsValidator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/ReservedKeywordsValidator.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere11Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere11Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere12Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere12Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere16Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere16Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhereKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhereKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2005Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2005Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2008Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2008Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2012Keywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2012Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServerKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServerKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLiteKeywords' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLiteKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MariaDb1027Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MariaDb1027Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySQL57Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL57Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySQL80Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL80Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySqlPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\OraclePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/OraclePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL100Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL100Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL91Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL91Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL92Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL92Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL94Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL94Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSqlPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere11Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere11Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere12Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere12Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere16Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere16Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywherePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywherePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAzurePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAzurePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2005Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2005Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2008Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2008Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2012Platform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2012Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServerPlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServerPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SqlitePlatform' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\TrimMode' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/TrimMode.php',
|
||||
'Doctrine\\DBAL\\Portability\\Connection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Connection.php',
|
||||
'Doctrine\\DBAL\\Portability\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Statement.php',
|
||||
'Doctrine\\DBAL\\Query\\Expression\\CompositeExpression' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/CompositeExpression.php',
|
||||
'Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php',
|
||||
'Doctrine\\DBAL\\Query\\QueryBuilder' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php',
|
||||
'Doctrine\\DBAL\\Query\\QueryException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php',
|
||||
'Doctrine\\DBAL\\SQLParserUtils' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php',
|
||||
'Doctrine\\DBAL\\SQLParserUtilsException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php',
|
||||
'Doctrine\\DBAL\\Schema\\AbstractAsset' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php',
|
||||
'Doctrine\\DBAL\\Schema\\AbstractSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Column' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php',
|
||||
'Doctrine\\DBAL\\Schema\\ColumnDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ColumnDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\Comparator' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php',
|
||||
'Doctrine\\DBAL\\Schema\\Constraint' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php',
|
||||
'Doctrine\\DBAL\\Schema\\DB2SchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DB2SchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\DrizzleSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DrizzleSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\ForeignKeyConstraint' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php',
|
||||
'Doctrine\\DBAL\\Schema\\Identifier' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php',
|
||||
'Doctrine\\DBAL\\Schema\\Index' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php',
|
||||
'Doctrine\\DBAL\\Schema\\MySqlSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\OracleSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/OracleSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\PostgreSqlSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\SQLAnywhereSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLAnywhereSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\SQLServerSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Schema' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Schema.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaConfig' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaConfig.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php',
|
||||
'Doctrine\\DBAL\\Schema\\Sequence' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Sequence.php',
|
||||
'Doctrine\\DBAL\\Schema\\SqliteSchemaManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\AbstractSchemaSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/AbstractSchemaSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\SchemaSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SchemaSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\SingleDatabaseSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SingleDatabaseSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Table' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php',
|
||||
'Doctrine\\DBAL\\Schema\\TableDiff' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\View' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/View.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\AbstractVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/AbstractVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\CreateSchemaSqlCollector' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/CreateSchemaSqlCollector.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\DropSchemaSqlCollector' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/DropSchemaSqlCollector.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\Graphviz' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Graphviz.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\NamespaceVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/NamespaceVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\RemoveNamespacedAssets' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/RemoveNamespacedAssets.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\SchemaDiffVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/SchemaDiffVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\Visitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Visitor.php',
|
||||
'Doctrine\\DBAL\\Sharding\\PoolingShardConnection' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardConnection.php',
|
||||
'Doctrine\\DBAL\\Sharding\\PoolingShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\SQLAzureFederationsSynchronizer' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureFederationsSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\SQLAzureShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\Schema\\MultiTenantVisitor' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/Schema/MultiTenantVisitor.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardChoser\\MultiTenantShardChoser' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/MultiTenantShardChoser.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardChoser\\ShardChoser' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/ShardChoser.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardManager' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardingException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardingException.php',
|
||||
'Doctrine\\DBAL\\Statement' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Statement.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\ImportCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\ReservedWordsCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\ConsoleRunner' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/ConsoleRunner.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Helper\\ConnectionHelper' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php',
|
||||
'Doctrine\\DBAL\\Tools\\Dumper' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Dumper.php',
|
||||
'Doctrine\\DBAL\\TransactionIsolationLevel' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php',
|
||||
'Doctrine\\DBAL\\Types\\ArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\BigIntType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php',
|
||||
'Doctrine\\DBAL\\Types\\BinaryType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php',
|
||||
'Doctrine\\DBAL\\Types\\BlobType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php',
|
||||
'Doctrine\\DBAL\\Types\\BooleanType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php',
|
||||
'Doctrine\\DBAL\\Types\\ConversionException' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php',
|
||||
'Doctrine\\DBAL\\Types\\DateImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateIntervalType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateIntervalType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeTzImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeTzType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php',
|
||||
'Doctrine\\DBAL\\Types\\DecimalType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php',
|
||||
'Doctrine\\DBAL\\Types\\FloatType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php',
|
||||
'Doctrine\\DBAL\\Types\\GuidType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php',
|
||||
'Doctrine\\DBAL\\Types\\IntegerType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php',
|
||||
'Doctrine\\DBAL\\Types\\JsonArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\JsonType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonType.php',
|
||||
'Doctrine\\DBAL\\Types\\ObjectType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php',
|
||||
'Doctrine\\DBAL\\Types\\PhpDateTimeMappingType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpDateTimeMappingType.php',
|
||||
'Doctrine\\DBAL\\Types\\PhpIntegerMappingType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpIntegerMappingType.php',
|
||||
'Doctrine\\DBAL\\Types\\SimpleArrayType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\SmallIntType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php',
|
||||
'Doctrine\\DBAL\\Types\\StringType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php',
|
||||
'Doctrine\\DBAL\\Types\\TextType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php',
|
||||
'Doctrine\\DBAL\\Types\\TimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\TimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php',
|
||||
'Doctrine\\DBAL\\Types\\Type' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php',
|
||||
'Doctrine\\DBAL\\Types\\TypeRegistry' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TypeRegistry.php',
|
||||
'Doctrine\\DBAL\\Types\\Types' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Types.php',
|
||||
'Doctrine\\DBAL\\Types\\VarDateTimeImmutableType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\VarDateTimeType' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeType.php',
|
||||
'Doctrine\\DBAL\\Version' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/Version.php',
|
||||
'Doctrine\\DBAL\\VersionAwarePlatformDriver' => $vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php',
|
||||
'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',
|
||||
'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php',
|
||||
'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => $vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php',
|
||||
@@ -1787,6 +2078,14 @@ return array(
|
||||
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => $vendorDir . '/jakub-onderka/php-console-color/src/ConsoleColor.php',
|
||||
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => $vendorDir . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',
|
||||
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => $vendorDir . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',
|
||||
'Jaybizzle\\CrawlerDetect\\CrawlerDetect' => $vendorDir . '/jaybizzle/crawler-detect/src/CrawlerDetect.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\AbstractProvider' => $vendorDir . '/jaybizzle/crawler-detect/src/Fixtures/AbstractProvider.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Crawlers' => $vendorDir . '/jaybizzle/crawler-detect/src/Fixtures/Crawlers.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Exclusions' => $vendorDir . '/jaybizzle/crawler-detect/src/Fixtures/Exclusions.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Headers' => $vendorDir . '/jaybizzle/crawler-detect/src/Fixtures/Headers.php',
|
||||
'Jenssegers\\Agent\\Agent' => $vendorDir . '/jenssegers/agent/src/Agent.php',
|
||||
'Jenssegers\\Agent\\AgentServiceProvider' => $vendorDir . '/jenssegers/agent/src/AgentServiceProvider.php',
|
||||
'Jenssegers\\Agent\\Facades\\Agent' => $vendorDir . '/jenssegers/agent/src/Facades/Agent.php',
|
||||
'JsonException' => $vendorDir . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
|
||||
'Khill\\Lavacharts\\Builders\\ChartBuilder' => $vendorDir . '/khill/lavacharts/src/Builders/ChartBuilder.php',
|
||||
'Khill\\Lavacharts\\Builders\\DashboardBuilder' => $vendorDir . '/khill/lavacharts/src/Builders/DashboardBuilder.php',
|
||||
@@ -2139,6 +2438,7 @@ return array(
|
||||
'League\\OAuth1\\Client\\Signature\\PlainTextSignature' => $vendorDir . '/league/oauth1-client/src/Client/Signature/PlainTextSignature.php',
|
||||
'League\\OAuth1\\Client\\Signature\\Signature' => $vendorDir . '/league/oauth1-client/src/Client/Signature/Signature.php',
|
||||
'League\\OAuth1\\Client\\Signature\\SignatureInterface' => $vendorDir . '/league/oauth1-client/src/Client/Signature/SignatureInterface.php',
|
||||
'Mobile_Detect' => $vendorDir . '/mobiledetect/mobiledetectlib/Mobile_Detect.php',
|
||||
'Mockery' => $vendorDir . '/mockery/mockery/library/Mockery.php',
|
||||
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV5' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',
|
||||
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV6' => $vendorDir . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',
|
||||
@@ -3020,6 +3320,131 @@ return array(
|
||||
'PhpParser\\Parser\\Tokens' => $vendorDir . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',
|
||||
'PhpParser\\PrettyPrinterAbstract' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',
|
||||
'PhpParser\\PrettyPrinter\\Standard' => $vendorDir . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',
|
||||
'PragmaRX\\Support\\CacheManager' => $vendorDir . '/pragmarx/support/src/CacheManager.php',
|
||||
'PragmaRX\\Support\\Config' => $vendorDir . '/pragmarx/support/src/Config.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\Cnpj' => $vendorDir . '/pragmarx/support/src/CpfCnpj/Cnpj.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\Cpf' => $vendorDir . '/pragmarx/support/src/CpfCnpj/Cpf.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\CpfCnpj' => $vendorDir . '/pragmarx/support/src/CpfCnpj/CpfCnpj.php',
|
||||
'PragmaRX\\Support\\DateTime' => $vendorDir . '/pragmarx/support/src/DateTime.php',
|
||||
'PragmaRX\\Support\\Debug\\Dumper' => $vendorDir . '/pragmarx/support/src/Debug/Dumper.php',
|
||||
'PragmaRX\\Support\\Debug\\HtmlDumper' => $vendorDir . '/pragmarx/support/src/Debug/HtmlDumper.php',
|
||||
'PragmaRX\\Support\\Environment' => $vendorDir . '/pragmarx/support/src/Environment.php',
|
||||
'PragmaRX\\Support\\Exceptions\\EnvironmentVariableNotSet' => $vendorDir . '/pragmarx/support/src/Exceptions/EnvironmentVariableNotSet.php',
|
||||
'PragmaRX\\Support\\Exceptions\\Exception' => $vendorDir . '/pragmarx/support/src/Exceptions/Exception.php',
|
||||
'PragmaRX\\Support\\Filesystem' => $vendorDir . '/pragmarx/support/src/Filesystem.php',
|
||||
'PragmaRX\\Support\\Finder' => $vendorDir . '/pragmarx/support/src/Finder.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp' => $vendorDir . '/pragmarx/support/src/GeoIp/GeoIp.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp1' => $vendorDir . '/pragmarx/support/src/GeoIp/GeoIp1.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp2' => $vendorDir . '/pragmarx/support/src/GeoIp/GeoIp2.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIpAbstract' => $vendorDir . '/pragmarx/support/src/GeoIp/GeoIpAbstract.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIpContract' => $vendorDir . '/pragmarx/support/src/GeoIp/GeoIpContract.php',
|
||||
'PragmaRX\\Support\\GeoIp\\Updater' => $vendorDir . '/pragmarx/support/src/GeoIp/Updater.php',
|
||||
'PragmaRX\\Support\\ImporterExporter\\ImporterExporter' => $vendorDir . '/pragmarx/support/src/ImporterExporter/ImporterExporter.php',
|
||||
'PragmaRX\\Support\\Inflectors\\En' => $vendorDir . '/pragmarx/support/src/Inflectors/En.php',
|
||||
'PragmaRX\\Support\\Inflectors\\Inflector' => $vendorDir . '/pragmarx/support/src/Inflectors/Inflector.php',
|
||||
'PragmaRX\\Support\\Inflectors\\InflectorInterface' => $vendorDir . '/pragmarx/support/src/Inflectors/InflectorInterface.php',
|
||||
'PragmaRX\\Support\\Inflectors\\PtBr' => $vendorDir . '/pragmarx/support/src/Inflectors/PtBr.php',
|
||||
'PragmaRX\\Support\\IpAddress' => $vendorDir . '/pragmarx/support/src/IpAddress.php',
|
||||
'PragmaRX\\Support\\Migration' => $vendorDir . '/pragmarx/support/src/Migration.php',
|
||||
'PragmaRX\\Support\\PhpSession' => $vendorDir . '/pragmarx/support/src/PhpSession.php',
|
||||
'PragmaRX\\Support\\Response' => $vendorDir . '/pragmarx/support/src/Response.php',
|
||||
'PragmaRX\\Support\\ServiceProvider' => $vendorDir . '/pragmarx/support/src/ServiceProvider.php',
|
||||
'PragmaRX\\Support\\Timer' => $vendorDir . '/pragmarx/support/src/Timer.php',
|
||||
'PragmaRX\\Support\\YamlConfig' => $vendorDir . '/pragmarx/support/src/YamlConfig.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Agent' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Agent.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Connection' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Connection.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Cookie' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Cookie.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Device' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Device.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Domain' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Domain.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Error' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Error.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Event' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Event.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\EventLog' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/EventLog.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\GeoIp' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/GeoIp.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Language' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Language.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Log' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Log.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Path' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Path.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Query' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Query.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\QueryArgument' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/QueryArgument.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Referer' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Referer.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Repository' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Repository.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RepositoryInterface' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/RepositoryInterface.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Route' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Route.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RoutePath' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/RoutePath.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RoutePathParameter' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/RoutePathParameter.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Session' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/Session.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQuery' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/SqlQuery.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryBinding' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/SqlQueryBinding.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryBindingParameter' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/SqlQueryBindingParameter.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryLog' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/SqlQueryLog.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SystemClass' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/SystemClass.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\User' => $vendorDir . '/pragmarx/tracker/src/Data/Repositories/User.php',
|
||||
'PragmaRX\\Tracker\\Data\\RepositoryManager' => $vendorDir . '/pragmarx/tracker/src/Data/RepositoryManager.php',
|
||||
'PragmaRX\\Tracker\\Data\\RepositoryManagerInterface' => $vendorDir . '/pragmarx/tracker/src/Data/RepositoryManagerInterface.php',
|
||||
'PragmaRX\\Tracker\\Eventing\\EventStorage' => $vendorDir . '/pragmarx/tracker/src/Eventing/EventStorage.php',
|
||||
'PragmaRX\\Tracker\\Repositories\\Message' => $vendorDir . '/pragmarx/tracker/src/Repositories/Message.php',
|
||||
'PragmaRX\\Tracker\\Services\\Authentication' => $vendorDir . '/pragmarx/tracker/src/Services/Authentication.php',
|
||||
'PragmaRX\\Tracker\\Support\\Cache' => $vendorDir . '/pragmarx/tracker/src/Support/Cache.php',
|
||||
'PragmaRX\\Tracker\\Support\\CrawlerDetector' => $vendorDir . '/pragmarx/tracker/src/Support/CrawlerDetector.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CompileError' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/CompileError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CompileWarning' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/CompileWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CoreError' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/CoreError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CoreWarning' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/CoreWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Deprecated' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Deprecated.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Error' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Error.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\ExceptionFactory' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/ExceptionFactory.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Handler' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Handler.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Notice' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Notice.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Parse' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Parse.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\RecoverableError' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/RecoverableError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Strict' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Strict.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserDeprecated' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/UserDeprecated.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserError' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/UserError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserNotice' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/UserNotice.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserWarning' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/UserWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Warning' => $vendorDir . '/pragmarx/tracker/src/Support/Exceptions/Warning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Filesystem' => $vendorDir . '/pragmarx/tracker/src/Support/Filesystem.php',
|
||||
'PragmaRX\\Tracker\\Support\\LanguageDetect' => $vendorDir . '/pragmarx/tracker/src/Support/LanguageDetect.php',
|
||||
'PragmaRX\\Tracker\\Support\\Migration' => $vendorDir . '/pragmarx/tracker/src/Support/Migration.php',
|
||||
'PragmaRX\\Tracker\\Support\\Minutes' => $vendorDir . '/pragmarx/tracker/src/Support/Minutes.php',
|
||||
'PragmaRX\\Tracker\\Support\\MobileDetect' => $vendorDir . '/pragmarx/tracker/src/Support/MobileDetect.php',
|
||||
'PragmaRX\\Tracker\\Support\\RefererParser' => $vendorDir . '/pragmarx/tracker/src/Support/RefererParser.php',
|
||||
'PragmaRX\\Tracker\\Support\\UserAgentParser' => $vendorDir . '/pragmarx/tracker/src/Support/UserAgentParser.php',
|
||||
'PragmaRX\\Tracker\\Tracker' => $vendorDir . '/pragmarx/tracker/src/Tracker.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\Base' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/Base.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\Tables' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/Tables.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\UpdateGeoIp' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/UpdateGeoIp.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Controllers\\Stats' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Controllers/Stats.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Facade' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Facade.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Middlewares\\Tracker' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Middlewares/Tracker.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Agent' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Agent.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Base' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Base.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Connection' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Connection.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Cookie' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Cookie.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Device' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Device.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Domain' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Domain.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Error' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Error.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Event' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Event.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\EventLog' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/EventLog.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\GeoIp' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/GeoIp.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Language' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Language.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Log' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Log.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Path' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Path.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Query' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Query.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\QueryArgument' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/QueryArgument.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Referer' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Referer.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RefererSearchTerm' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/RefererSearchTerm.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Route' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Route.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RoutePath' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/RoutePath.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RoutePathParameter' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/RoutePathParameter.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Session' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/Session.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQuery' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQuery.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryBinding' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryBinding.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryBindingParameter' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryBindingParameter.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryLog' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryLog.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SystemClass' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/SystemClass.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\User' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Models/User.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\ServiceProvider' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/ServiceProvider.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Support\\Session' => $vendorDir . '/pragmarx/tracker/src/Vendor/Laravel/Support/Session.php',
|
||||
'Predis\\Autoloader' => $vendorDir . '/predis/predis/src/Autoloader.php',
|
||||
'Predis\\Client' => $vendorDir . '/predis/predis/src/Client.php',
|
||||
'Predis\\ClientContextInterface' => $vendorDir . '/predis/predis/src/ClientContextInterface.php',
|
||||
@@ -3717,6 +4142,14 @@ return array(
|
||||
'SebastianBergmann\\Timer\\RuntimeException' => $vendorDir . '/phpunit/php-timer/src/RuntimeException.php',
|
||||
'SebastianBergmann\\Timer\\Timer' => $vendorDir . '/phpunit/php-timer/src/Timer.php',
|
||||
'SebastianBergmann\\Version' => $vendorDir . '/sebastian/version/src/Version.php',
|
||||
'Snowplow\\RefererParser\\Config\\ConfigFileReaderTrait' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/ConfigFileReaderTrait.php',
|
||||
'Snowplow\\RefererParser\\Config\\ConfigReaderInterface' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/ConfigReaderInterface.php',
|
||||
'Snowplow\\RefererParser\\Config\\JsonConfigReader' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/JsonConfigReader.php',
|
||||
'Snowplow\\RefererParser\\Config\\YamlConfigReader' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/YamlConfigReader.php',
|
||||
'Snowplow\\RefererParser\\Exception\\InvalidArgumentException' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Exception/InvalidArgumentException.php',
|
||||
'Snowplow\\RefererParser\\Medium' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Medium.php',
|
||||
'Snowplow\\RefererParser\\Parser' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Parser.php',
|
||||
'Snowplow\\RefererParser\\Referer' => $vendorDir . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Referer.php',
|
||||
'SolarSystemSeeder' => $baseDir . '/database/seeds/SolarSystemSeeder.php',
|
||||
'Symfony\\Component\\Console\\Application' => $vendorDir . '/symfony/console/Application.php',
|
||||
'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => $vendorDir . '/symfony/console/CommandLoader/CommandLoaderInterface.php',
|
||||
@@ -4459,6 +4892,33 @@ return array(
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => $vendorDir . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',
|
||||
'UAParser\\AbstractParser' => $vendorDir . '/ua-parser/uap-php/src/AbstractParser.php',
|
||||
'UAParser\\Command\\ConvertCommand' => $vendorDir . '/ua-parser/uap-php/src/Command/ConvertCommand.php',
|
||||
'UAParser\\Command\\FetchCommand' => $vendorDir . '/ua-parser/uap-php/src/Command/FetchCommand.php',
|
||||
'UAParser\\Command\\LogfileCommand' => $vendorDir . '/ua-parser/uap-php/src/Command/LogfileCommand.php',
|
||||
'UAParser\\Command\\ParserCommand' => $vendorDir . '/ua-parser/uap-php/src/Command/ParserCommand.php',
|
||||
'UAParser\\Command\\UpdateCommand' => $vendorDir . '/ua-parser/uap-php/src/Command/UpdateCommand.php',
|
||||
'UAParser\\DeviceParser' => $vendorDir . '/ua-parser/uap-php/src/DeviceParser.php',
|
||||
'UAParser\\Exception\\DomainException' => $vendorDir . '/ua-parser/uap-php/src/Exception/DomainException.php',
|
||||
'UAParser\\Exception\\FetcherException' => $vendorDir . '/ua-parser/uap-php/src/Exception/FetcherException.php',
|
||||
'UAParser\\Exception\\FileNotFoundException' => $vendorDir . '/ua-parser/uap-php/src/Exception/FileNotFoundException.php',
|
||||
'UAParser\\Exception\\InvalidArgumentException' => $vendorDir . '/ua-parser/uap-php/src/Exception/InvalidArgumentException.php',
|
||||
'UAParser\\Exception\\ReaderException' => $vendorDir . '/ua-parser/uap-php/src/Exception/ReaderException.php',
|
||||
'UAParser\\OperatingSystemParser' => $vendorDir . '/ua-parser/uap-php/src/OperatingSystemParser.php',
|
||||
'UAParser\\Parser' => $vendorDir . '/ua-parser/uap-php/src/Parser.php',
|
||||
'UAParser\\Result\\AbstractClient' => $vendorDir . '/ua-parser/uap-php/src/Result/AbstractClient.php',
|
||||
'UAParser\\Result\\AbstractSoftware' => $vendorDir . '/ua-parser/uap-php/src/Result/AbstractSoftware.php',
|
||||
'UAParser\\Result\\AbstractVersionedSoftware' => $vendorDir . '/ua-parser/uap-php/src/Result/AbstractVersionedSoftware.php',
|
||||
'UAParser\\Result\\Client' => $vendorDir . '/ua-parser/uap-php/src/Result/Client.php',
|
||||
'UAParser\\Result\\Device' => $vendorDir . '/ua-parser/uap-php/src/Result/Device.php',
|
||||
'UAParser\\Result\\OperatingSystem' => $vendorDir . '/ua-parser/uap-php/src/Result/OperatingSystem.php',
|
||||
'UAParser\\Result\\UserAgent' => $vendorDir . '/ua-parser/uap-php/src/Result/UserAgent.php',
|
||||
'UAParser\\UserAgentParser' => $vendorDir . '/ua-parser/uap-php/src/UserAgentParser.php',
|
||||
'UAParser\\Util\\Converter' => $vendorDir . '/ua-parser/uap-php/src/Util/Converter.php',
|
||||
'UAParser\\Util\\Fetcher' => $vendorDir . '/ua-parser/uap-php/src/Util/Fetcher.php',
|
||||
'UAParser\\Util\\Logfile\\AbstractReader' => $vendorDir . '/ua-parser/uap-php/src/Util/Logfile/AbstractReader.php',
|
||||
'UAParser\\Util\\Logfile\\ApacheCommonLogFormatReader' => $vendorDir . '/ua-parser/uap-php/src/Util/Logfile/ApacheCommonLogFormatReader.php',
|
||||
'UAParser\\Util\\Logfile\\ReaderInterface' => $vendorDir . '/ua-parser/uap-php/src/Util/Logfile/ReaderInterface.php',
|
||||
'Webmozart\\Assert\\Assert' => $vendorDir . '/webmozart/assert/src/Assert.php',
|
||||
'Whoops\\Exception\\ErrorException' => $vendorDir . '/filp/whoops/src/Whoops/Exception/ErrorException.php',
|
||||
'Whoops\\Exception\\Formatter' => $vendorDir . '/filp/whoops/src/Whoops/Exception/Formatter.php',
|
||||
|
||||
6
vendor/composer/autoload_files.php
vendored
6
vendor/composer/autoload_files.php
vendored
@@ -13,16 +13,16 @@ return array(
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => $vendorDir . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'667aeda72477189d0494fecd327c3641' => $vendorDir . '/symfony/var-dumper/Resources/functions/dump.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => $vendorDir . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => $vendorDir . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => $vendorDir . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => $vendorDir . '/symfony/polyfill-iconv/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => $vendorDir . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => $vendorDir . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'e39a8b23c42d4e1452234d762b03835a' => $vendorDir . '/ramsey/uuid/src/functions.php',
|
||||
'538ca81a9a966a6716601ecf48f4eaef' => $vendorDir . '/opis/closure/functions.php',
|
||||
'34122c0574b76bf21c9a8db62b5b9cf3' => $vendorDir . '/cakephp/chronos/src/carbon_compat.php',
|
||||
'f0906e6318348a765ffb6eb24e0d0938' => $vendorDir . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
|
||||
'58571171fd5812e6e447dce228f52f4d' => $vendorDir . '/laravel/framework/src/Illuminate/Support/helpers.php',
|
||||
'34122c0574b76bf21c9a8db62b5b9cf3' => $vendorDir . '/cakephp/chronos/src/carbon_compat.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => $vendorDir . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => $vendorDir . '/psy/psysh/src/functions.php',
|
||||
'0d8253363903f0ac7b0978dcde4e28a0' => $vendorDir . '/beyondcode/laravel-dump-server/helpers.php',
|
||||
|
||||
3
vendor/composer/autoload_namespaces.php
vendored
3
vendor/composer/autoload_namespaces.php
vendored
@@ -6,6 +6,9 @@ $vendorDir = dirname(dirname(__FILE__));
|
||||
$baseDir = dirname($vendorDir);
|
||||
|
||||
return array(
|
||||
'Snowplow\\RefererParser' => array($vendorDir . '/snowplow/referer-parser/php/src'),
|
||||
'Parsedown' => array($vendorDir . '/erusev/parsedown'),
|
||||
'Mockery' => array($vendorDir . '/mockery/mockery/library'),
|
||||
'Detection' => array($vendorDir . '/mobiledetect/mobiledetectlib/namespaced'),
|
||||
'Bllim\\Datatables' => array($vendorDir . '/pragmarx/datatables/src'),
|
||||
);
|
||||
|
||||
9
vendor/composer/autoload_psr4.php
vendored
9
vendor/composer/autoload_psr4.php
vendored
@@ -10,6 +10,7 @@ return array(
|
||||
'XdgBaseDir\\' => array($vendorDir . '/dnoegel/php-xdg-base-dir/src'),
|
||||
'Whoops\\' => array($vendorDir . '/filp/whoops/src/Whoops'),
|
||||
'Webmozart\\Assert\\' => array($vendorDir . '/webmozart/assert/src'),
|
||||
'UAParser\\' => array($vendorDir . '/ua-parser/uap-php/src'),
|
||||
'TijsVerkoyen\\CssToInlineStyles\\' => array($vendorDir . '/tijsverkoyen/css-to-inline-styles/src'),
|
||||
'Tests\\' => array($baseDir . '/tests'),
|
||||
'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'),
|
||||
@@ -43,6 +44,8 @@ return array(
|
||||
'Psr\\Container\\' => array($vendorDir . '/psr/container/src'),
|
||||
'Prophecy\\' => array($vendorDir . '/phpspec/prophecy/src/Prophecy'),
|
||||
'Predis\\' => array($vendorDir . '/predis/predis/src'),
|
||||
'PragmaRX\\Tracker\\' => array($vendorDir . '/pragmarx/tracker/src'),
|
||||
'PragmaRX\\Support\\' => array($vendorDir . '/pragmarx/support/src'),
|
||||
'PhpParser\\' => array($vendorDir . '/nikic/php-parser/lib/PhpParser'),
|
||||
'PhpOption\\' => array($vendorDir . '/phpoption/phpoption/src/PhpOption'),
|
||||
'Opis\\Closure\\' => array($vendorDir . '/opis/closure/src'),
|
||||
@@ -54,6 +57,8 @@ return array(
|
||||
'Laravel\\Socialite\\' => array($vendorDir . '/laravel/socialite/src'),
|
||||
'Laravel\\Horizon\\' => array($vendorDir . '/laravel/horizon/src'),
|
||||
'Khill\\Lavacharts\\' => array($vendorDir . '/khill/lavacharts/src'),
|
||||
'Jenssegers\\Agent\\' => array($vendorDir . '/jenssegers/agent/src'),
|
||||
'Jaybizzle\\CrawlerDetect\\' => array($vendorDir . '/jaybizzle/crawler-detect/src'),
|
||||
'JakubOnderka\\PhpConsoleHighlighter\\' => array($vendorDir . '/jakub-onderka/php-console-highlighter/src'),
|
||||
'JakubOnderka\\PhpConsoleColor\\' => array($vendorDir . '/jakub-onderka/php-console-color/src'),
|
||||
'Illuminate\\' => array($vendorDir . '/laravel/framework/src/Illuminate'),
|
||||
@@ -65,11 +70,15 @@ return array(
|
||||
'Egulias\\EmailValidator\\' => array($vendorDir . '/egulias/email-validator/EmailValidator'),
|
||||
'Dotenv\\' => array($vendorDir . '/vlucas/phpdotenv/src'),
|
||||
'Doctrine\\Instantiator\\' => array($vendorDir . '/doctrine/instantiator/src/Doctrine/Instantiator'),
|
||||
'Doctrine\\DBAL\\' => array($vendorDir . '/doctrine/dbal/lib/Doctrine/DBAL'),
|
||||
'Doctrine\\Common\\Lexer\\' => array($vendorDir . '/doctrine/lexer/lib/Doctrine/Common/Lexer'),
|
||||
'Doctrine\\Common\\Inflector\\' => array($vendorDir . '/doctrine/inflector/lib/Doctrine/Common/Inflector'),
|
||||
'Doctrine\\Common\\Cache\\' => array($vendorDir . '/doctrine/cache/lib/Doctrine/Common/Cache'),
|
||||
'Doctrine\\Common\\' => array($vendorDir . '/doctrine/event-manager/lib/Doctrine/Common'),
|
||||
'DeepCopy\\' => array($vendorDir . '/myclabs/deep-copy/src/DeepCopy'),
|
||||
'Cron\\' => array($vendorDir . '/dragonmantank/cron-expression/src/Cron'),
|
||||
'ConsoleTVs\\Charts\\' => array($vendorDir . '/consoletvs/charts/src'),
|
||||
'Composer\\CaBundle\\' => array($vendorDir . '/composer/ca-bundle/src'),
|
||||
'Collective\\Html\\' => array($vendorDir . '/laravelcollective/html/src'),
|
||||
'Carbon\\' => array($vendorDir . '/nesbot/carbon/src/Carbon'),
|
||||
'Cake\\Chronos\\' => array($vendorDir . '/cakephp/chronos/src'),
|
||||
|
||||
535
vendor/composer/autoload_static.php
vendored
535
vendor/composer/autoload_static.php
vendored
@@ -14,16 +14,16 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'320cde22f66dd4f5d3fd621d3e88b98f' => __DIR__ . '/..' . '/symfony/polyfill-ctype/bootstrap.php',
|
||||
'667aeda72477189d0494fecd327c3641' => __DIR__ . '/..' . '/symfony/var-dumper/Resources/functions/dump.php',
|
||||
'7b11c4dc42b3b3023073cb14e519683c' => __DIR__ . '/..' . '/ralouphie/getallheaders/src/getallheaders.php',
|
||||
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php',
|
||||
'c964ee0ededf28c96ebd9db5099ef910' => __DIR__ . '/..' . '/guzzlehttp/promises/src/functions_include.php',
|
||||
'a0edc8309cc5e1d60e3047b5df6b7052' => __DIR__ . '/..' . '/guzzlehttp/psr7/src/functions_include.php',
|
||||
'def43f6c87e4f8dfd0c9e1b1bab14fe8' => __DIR__ . '/..' . '/symfony/polyfill-iconv/bootstrap.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'2c102faa651ef8ea5874edb585946bce' => __DIR__ . '/..' . '/swiftmailer/swiftmailer/lib/swift_required.php',
|
||||
'37a3dc5111fe8f707ab4c132ef1dbc62' => __DIR__ . '/..' . '/guzzlehttp/guzzle/src/functions_include.php',
|
||||
'e39a8b23c42d4e1452234d762b03835a' => __DIR__ . '/..' . '/ramsey/uuid/src/functions.php',
|
||||
'538ca81a9a966a6716601ecf48f4eaef' => __DIR__ . '/..' . '/opis/closure/functions.php',
|
||||
'34122c0574b76bf21c9a8db62b5b9cf3' => __DIR__ . '/..' . '/cakephp/chronos/src/carbon_compat.php',
|
||||
'f0906e6318348a765ffb6eb24e0d0938' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Foundation/helpers.php',
|
||||
'58571171fd5812e6e447dce228f52f4d' => __DIR__ . '/..' . '/laravel/framework/src/Illuminate/Support/helpers.php',
|
||||
'34122c0574b76bf21c9a8db62b5b9cf3' => __DIR__ . '/..' . '/cakephp/chronos/src/carbon_compat.php',
|
||||
'6124b4c8570aa390c21fafd04a26c69f' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/deep_copy.php',
|
||||
'801c31d8ed748cfa537fa45402288c95' => __DIR__ . '/..' . '/psy/psysh/src/functions.php',
|
||||
'0d8253363903f0ac7b0978dcde4e28a0' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/helpers.php',
|
||||
@@ -45,6 +45,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'Whoops\\' => 7,
|
||||
'Webmozart\\Assert\\' => 17,
|
||||
),
|
||||
'U' =>
|
||||
array (
|
||||
'UAParser\\' => 9,
|
||||
),
|
||||
'T' =>
|
||||
array (
|
||||
'TijsVerkoyen\\CssToInlineStyles\\' => 31,
|
||||
@@ -89,6 +93,8 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'Psr\\Container\\' => 14,
|
||||
'Prophecy\\' => 9,
|
||||
'Predis\\' => 7,
|
||||
'PragmaRX\\Tracker\\' => 17,
|
||||
'PragmaRX\\Support\\' => 17,
|
||||
'PhpParser\\' => 10,
|
||||
'PhpOption\\' => 10,
|
||||
),
|
||||
@@ -118,6 +124,8 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
),
|
||||
'J' =>
|
||||
array (
|
||||
'Jenssegers\\Agent\\' => 17,
|
||||
'Jaybizzle\\CrawlerDetect\\' => 24,
|
||||
'JakubOnderka\\PhpConsoleHighlighter\\' => 35,
|
||||
'JakubOnderka\\PhpConsoleColor\\' => 29,
|
||||
),
|
||||
@@ -144,14 +152,18 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
'Dotenv\\' => 7,
|
||||
'Doctrine\\Instantiator\\' => 22,
|
||||
'Doctrine\\DBAL\\' => 14,
|
||||
'Doctrine\\Common\\Lexer\\' => 22,
|
||||
'Doctrine\\Common\\Inflector\\' => 26,
|
||||
'Doctrine\\Common\\Cache\\' => 22,
|
||||
'Doctrine\\Common\\' => 16,
|
||||
'DeepCopy\\' => 9,
|
||||
),
|
||||
'C' =>
|
||||
array (
|
||||
'Cron\\' => 5,
|
||||
'ConsoleTVs\\Charts\\' => 18,
|
||||
'Composer\\CaBundle\\' => 18,
|
||||
'Collective\\Html\\' => 16,
|
||||
'Carbon\\' => 7,
|
||||
'Cake\\Chronos\\' => 13,
|
||||
@@ -186,6 +198,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/webmozart/assert/src',
|
||||
),
|
||||
'UAParser\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/ua-parser/uap-php/src',
|
||||
),
|
||||
'TijsVerkoyen\\CssToInlineStyles\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src',
|
||||
@@ -318,6 +334,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/predis/predis/src',
|
||||
),
|
||||
'PragmaRX\\Tracker\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/pragmarx/tracker/src',
|
||||
),
|
||||
'PragmaRX\\Support\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/pragmarx/support/src',
|
||||
),
|
||||
'PhpParser\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser',
|
||||
@@ -362,6 +386,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/khill/lavacharts/src',
|
||||
),
|
||||
'Jenssegers\\Agent\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/jenssegers/agent/src',
|
||||
),
|
||||
'Jaybizzle\\CrawlerDetect\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src',
|
||||
),
|
||||
'JakubOnderka\\PhpConsoleHighlighter\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src',
|
||||
@@ -406,6 +438,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator',
|
||||
),
|
||||
'Doctrine\\DBAL\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL',
|
||||
),
|
||||
'Doctrine\\Common\\Lexer\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer',
|
||||
@@ -414,6 +450,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector',
|
||||
),
|
||||
'Doctrine\\Common\\Cache\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache',
|
||||
),
|
||||
'Doctrine\\Common\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common',
|
||||
),
|
||||
'DeepCopy\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy',
|
||||
@@ -426,6 +470,10 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/consoletvs/charts/src',
|
||||
),
|
||||
'Composer\\CaBundle\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/composer/ca-bundle/src',
|
||||
),
|
||||
'Collective\\Html\\' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/laravelcollective/html/src',
|
||||
@@ -453,6 +501,13 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
);
|
||||
|
||||
public static $prefixesPsr0 = array (
|
||||
'S' =>
|
||||
array (
|
||||
'Snowplow\\RefererParser' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/snowplow/referer-parser/php/src',
|
||||
),
|
||||
),
|
||||
'P' =>
|
||||
array (
|
||||
'Parsedown' =>
|
||||
@@ -467,6 +522,20 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
0 => __DIR__ . '/..' . '/mockery/mockery/library',
|
||||
),
|
||||
),
|
||||
'D' =>
|
||||
array (
|
||||
'Detection' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced',
|
||||
),
|
||||
),
|
||||
'B' =>
|
||||
array (
|
||||
'Bllim\\Datatables' =>
|
||||
array (
|
||||
0 => __DIR__ . '/..' . '/pragmarx/datatables/src',
|
||||
),
|
||||
),
|
||||
);
|
||||
|
||||
public static $classMap = array (
|
||||
@@ -610,6 +679,9 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'BeyondCode\\DumpServer\\DumpServerServiceProvider' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/DumpServerServiceProvider.php',
|
||||
'BeyondCode\\DumpServer\\Dumper' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/Dumper.php',
|
||||
'BeyondCode\\DumpServer\\RequestContextProvider' => __DIR__ . '/..' . '/beyondcode/laravel-dump-server/src/RequestContextProvider.php',
|
||||
'Bllim\\Datatables\\Datatables' => __DIR__ . '/..' . '/pragmarx/datatables/src/Bllim/Datatables/Datatables.php',
|
||||
'Bllim\\Datatables\\DatatablesServiceProvider' => __DIR__ . '/..' . '/pragmarx/datatables/src/Bllim/Datatables/DatatablesServiceProvider.php',
|
||||
'Bllim\\Datatables\\Facade\\Datatables' => __DIR__ . '/..' . '/pragmarx/datatables/src/Bllim/Datatables/Facade/Datatables.php',
|
||||
'Cake\\Chronos\\Chronos' => __DIR__ . '/..' . '/cakephp/chronos/src/Chronos.php',
|
||||
'Cake\\Chronos\\ChronosInterface' => __DIR__ . '/..' . '/cakephp/chronos/src/ChronosInterface.php',
|
||||
'Cake\\Chronos\\ChronosInterval' => __DIR__ . '/..' . '/cakephp/chronos/src/ChronosInterval.php',
|
||||
@@ -671,6 +743,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'Collective\\Html\\HtmlBuilder' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlBuilder.php',
|
||||
'Collective\\Html\\HtmlFacade' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlFacade.php',
|
||||
'Collective\\Html\\HtmlServiceProvider' => __DIR__ . '/..' . '/laravelcollective/html/src/HtmlServiceProvider.php',
|
||||
'Composer\\CaBundle\\CaBundle' => __DIR__ . '/..' . '/composer/ca-bundle/src/CaBundle.php',
|
||||
'ConfigTableSeeder' => __DIR__ . '/../..' . '/database/seeds/ConfigTableSeeder.php',
|
||||
'ConsoleTVs\\Charts\\ChartsServiceProvider' => __DIR__ . '/..' . '/consoletvs/charts/src/ChartsServiceProvider.php',
|
||||
'ConsoleTVs\\Charts\\Classes\\BaseChart' => __DIR__ . '/..' . '/consoletvs/charts/src/Classes/BaseChart.php',
|
||||
@@ -733,8 +806,295 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'DeepCopy\\TypeFilter\\Spl\\SplDoublyLinkedListFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/Spl/SplDoublyLinkedListFilter.php',
|
||||
'DeepCopy\\TypeFilter\\TypeFilter' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeFilter/TypeFilter.php',
|
||||
'DeepCopy\\TypeMatcher\\TypeMatcher' => __DIR__ . '/..' . '/myclabs/deep-copy/src/DeepCopy/TypeMatcher/TypeMatcher.php',
|
||||
'Detection\\MobileDetect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/namespaced/Detection/MobileDetect.php',
|
||||
'Doctrine\\Common\\Cache\\ApcCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php',
|
||||
'Doctrine\\Common\\Cache\\ApcuCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php',
|
||||
'Doctrine\\Common\\Cache\\ArrayCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php',
|
||||
'Doctrine\\Common\\Cache\\Cache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php',
|
||||
'Doctrine\\Common\\Cache\\CacheProvider' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php',
|
||||
'Doctrine\\Common\\Cache\\ChainCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php',
|
||||
'Doctrine\\Common\\Cache\\ClearableCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php',
|
||||
'Doctrine\\Common\\Cache\\CouchbaseBucketCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php',
|
||||
'Doctrine\\Common\\Cache\\CouchbaseCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php',
|
||||
'Doctrine\\Common\\Cache\\ExtMongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\FileCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php',
|
||||
'Doctrine\\Common\\Cache\\FilesystemCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php',
|
||||
'Doctrine\\Common\\Cache\\FlushableCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php',
|
||||
'Doctrine\\Common\\Cache\\InvalidCacheId' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/InvalidCacheId.php',
|
||||
'Doctrine\\Common\\Cache\\LegacyMongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\MemcacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\MemcachedCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php',
|
||||
'Doctrine\\Common\\Cache\\MongoDBCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiDeleteCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiGetCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiOperationCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php',
|
||||
'Doctrine\\Common\\Cache\\MultiPutCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php',
|
||||
'Doctrine\\Common\\Cache\\PhpFileCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php',
|
||||
'Doctrine\\Common\\Cache\\PredisCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php',
|
||||
'Doctrine\\Common\\Cache\\RedisCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php',
|
||||
'Doctrine\\Common\\Cache\\SQLite3Cache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php',
|
||||
'Doctrine\\Common\\Cache\\Version' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/Version.php',
|
||||
'Doctrine\\Common\\Cache\\VoidCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php',
|
||||
'Doctrine\\Common\\Cache\\WinCacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\XcacheCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php',
|
||||
'Doctrine\\Common\\Cache\\ZendDataCache' => __DIR__ . '/..' . '/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php',
|
||||
'Doctrine\\Common\\EventArgs' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventArgs.php',
|
||||
'Doctrine\\Common\\EventManager' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventManager.php',
|
||||
'Doctrine\\Common\\EventSubscriber' => __DIR__ . '/..' . '/doctrine/event-manager/lib/Doctrine/Common/EventSubscriber.php',
|
||||
'Doctrine\\Common\\Inflector\\Inflector' => __DIR__ . '/..' . '/doctrine/inflector/lib/Doctrine/Common/Inflector/Inflector.php',
|
||||
'Doctrine\\Common\\Lexer\\AbstractLexer' => __DIR__ . '/..' . '/doctrine/lexer/lib/Doctrine/Common/Lexer/AbstractLexer.php',
|
||||
'Doctrine\\DBAL\\Cache\\ArrayStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php',
|
||||
'Doctrine\\DBAL\\Cache\\CacheException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php',
|
||||
'Doctrine\\DBAL\\Cache\\QueryCacheProfile' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php',
|
||||
'Doctrine\\DBAL\\Cache\\ResultCacheStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php',
|
||||
'Doctrine\\DBAL\\ColumnCase' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php',
|
||||
'Doctrine\\DBAL\\Configuration' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php',
|
||||
'Doctrine\\DBAL\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Connection.php',
|
||||
'Doctrine\\DBAL\\ConnectionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php',
|
||||
'Doctrine\\DBAL\\Connections\\MasterSlaveConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php',
|
||||
'Doctrine\\DBAL\\DBALException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php',
|
||||
'Doctrine\\DBAL\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver.php',
|
||||
'Doctrine\\DBAL\\DriverManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/DriverManager.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractDB2Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractDriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractMySQLDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractOracleDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractOracleDriver\\EasyConnectString' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractPostgreSQLDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLAnywhereDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLServerDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\AbstractSQLiteDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\DriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php',
|
||||
'Doctrine\\DBAL\\Driver\\DrizzlePDOMySql\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\DrizzlePDOMySql\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\ExceptionConverterDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Exception' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php',
|
||||
'Doctrine\\DBAL\\Driver\\IBMDB2\\DB2Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php',
|
||||
'Doctrine\\DBAL\\Driver\\Mysqli\\MysqliStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Exception' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php',
|
||||
'Doctrine\\DBAL\\Driver\\OCI8\\OCI8Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOIbm\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOMySql\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOOracle\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOPgSql\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlite\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Connection.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOSqlsrv\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlsrv/Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PDOStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\PingableConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/PingableConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\ResultStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ResultStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereException.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLAnywhere\\SQLAnywhereStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLAnywhere/SQLAnywhereStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\Driver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/Driver.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\LastInsertId' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/LastInsertId.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvException.php',
|
||||
'Doctrine\\DBAL\\Driver\\SQLSrv\\SQLSrvStatement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/SQLSrv/SQLSrvStatement.php',
|
||||
'Doctrine\\DBAL\\Driver\\ServerInfoAwareConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/ServerInfoAwareConnection.php',
|
||||
'Doctrine\\DBAL\\Driver\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/Statement.php',
|
||||
'Doctrine\\DBAL\\Driver\\StatementIterator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Driver/StatementIterator.php',
|
||||
'Doctrine\\DBAL\\Event\\ConnectionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/ConnectionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\MysqlSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/MysqlSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\OracleSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/OracleSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\Listeners\\SQLSessionInit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/Listeners/SQLSessionInit.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableAddColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableAddColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableChangeColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableChangeColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableRemoveColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRemoveColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaAlterTableRenameColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaAlterTableRenameColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaColumnDefinitionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaColumnDefinitionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaCreateTableColumnEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableColumnEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaCreateTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaCreateTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaDropTableEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaDropTableEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaEventArgs.php',
|
||||
'Doctrine\\DBAL\\Event\\SchemaIndexDefinitionEventArgs' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Event/SchemaIndexDefinitionEventArgs.php',
|
||||
'Doctrine\\DBAL\\Events' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Events.php',
|
||||
'Doctrine\\DBAL\\Exception\\ConnectionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConnectionException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DatabaseObjectExistsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectExistsException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DatabaseObjectNotFoundException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DatabaseObjectNotFoundException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DeadlockException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DeadlockException.php',
|
||||
'Doctrine\\DBAL\\Exception\\DriverException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/DriverException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ForeignKeyConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ForeignKeyConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidArgumentException.php',
|
||||
'Doctrine\\DBAL\\Exception\\InvalidFieldNameException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/InvalidFieldNameException.php',
|
||||
'Doctrine\\DBAL\\Exception\\LockWaitTimeoutException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/LockWaitTimeoutException.php',
|
||||
'Doctrine\\DBAL\\Exception\\NonUniqueFieldNameException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NonUniqueFieldNameException.php',
|
||||
'Doctrine\\DBAL\\Exception\\NotNullConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/NotNullConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ReadOnlyException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ReadOnlyException.php',
|
||||
'Doctrine\\DBAL\\Exception\\RetryableException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/RetryableException.php',
|
||||
'Doctrine\\DBAL\\Exception\\ServerException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/ServerException.php',
|
||||
'Doctrine\\DBAL\\Exception\\SyntaxErrorException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/SyntaxErrorException.php',
|
||||
'Doctrine\\DBAL\\Exception\\TableExistsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableExistsException.php',
|
||||
'Doctrine\\DBAL\\Exception\\TableNotFoundException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/TableNotFoundException.php',
|
||||
'Doctrine\\DBAL\\Exception\\UniqueConstraintViolationException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Exception/UniqueConstraintViolationException.php',
|
||||
'Doctrine\\DBAL\\FetchMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/FetchMode.php',
|
||||
'Doctrine\\DBAL\\Id\\TableGenerator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGenerator.php',
|
||||
'Doctrine\\DBAL\\Id\\TableGeneratorSchemaVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Id/TableGeneratorSchemaVisitor.php',
|
||||
'Doctrine\\DBAL\\LockMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/LockMode.php',
|
||||
'Doctrine\\DBAL\\Logging\\DebugStack' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/DebugStack.php',
|
||||
'Doctrine\\DBAL\\Logging\\EchoSQLLogger' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/EchoSQLLogger.php',
|
||||
'Doctrine\\DBAL\\Logging\\LoggerChain' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/LoggerChain.php',
|
||||
'Doctrine\\DBAL\\Logging\\SQLLogger' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Logging/SQLLogger.php',
|
||||
'Doctrine\\DBAL\\ParameterType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/ParameterType.php',
|
||||
'Doctrine\\DBAL\\Platforms\\AbstractPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/AbstractPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DB2Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DB2Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DateIntervalUnit' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DateIntervalUnit.php',
|
||||
'Doctrine\\DBAL\\Platforms\\DrizzlePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/DrizzlePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\DB2Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DB2Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\DrizzleKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/DrizzleKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\KeywordList' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/KeywordList.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MariaDb102Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MariaDb102Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MsSQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MsSQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL57Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL57Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQL80Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQL80Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\MySQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/MySQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\OracleKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/OracleKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL100Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL100Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL91Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL91Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL92Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL92Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQL94Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQL94Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\PostgreSQLKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/PostgreSQLKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\ReservedKeywordsValidator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/ReservedKeywordsValidator.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere11Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere11Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere12Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere12Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhere16Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhere16Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLAnywhereKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLAnywhereKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2005Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2005Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2008Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2008Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServer2012Keywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServer2012Keywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLServerKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLServerKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\Keywords\\SQLiteKeywords' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/Keywords/SQLiteKeywords.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MariaDb1027Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MariaDb1027Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySQL57Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL57Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySQL80Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySQL80Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\MySqlPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/MySqlPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\OraclePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/OraclePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL100Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL100Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL91Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL91Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL92Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL92Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSQL94Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSQL94Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\PostgreSqlPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/PostgreSqlPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere11Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere11Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere12Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere12Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywhere16Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywhere16Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAnywherePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAnywherePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLAzurePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLAzurePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2005Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2005Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2008Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2008Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServer2012Platform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServer2012Platform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SQLServerPlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SQLServerPlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\SqlitePlatform' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/SqlitePlatform.php',
|
||||
'Doctrine\\DBAL\\Platforms\\TrimMode' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Platforms/TrimMode.php',
|
||||
'Doctrine\\DBAL\\Portability\\Connection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Connection.php',
|
||||
'Doctrine\\DBAL\\Portability\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Portability/Statement.php',
|
||||
'Doctrine\\DBAL\\Query\\Expression\\CompositeExpression' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/CompositeExpression.php',
|
||||
'Doctrine\\DBAL\\Query\\Expression\\ExpressionBuilder' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/Expression/ExpressionBuilder.php',
|
||||
'Doctrine\\DBAL\\Query\\QueryBuilder' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryBuilder.php',
|
||||
'Doctrine\\DBAL\\Query\\QueryException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Query/QueryException.php',
|
||||
'Doctrine\\DBAL\\SQLParserUtils' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtils.php',
|
||||
'Doctrine\\DBAL\\SQLParserUtilsException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/SQLParserUtilsException.php',
|
||||
'Doctrine\\DBAL\\Schema\\AbstractAsset' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractAsset.php',
|
||||
'Doctrine\\DBAL\\Schema\\AbstractSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/AbstractSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Column' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Column.php',
|
||||
'Doctrine\\DBAL\\Schema\\ColumnDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ColumnDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\Comparator' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Comparator.php',
|
||||
'Doctrine\\DBAL\\Schema\\Constraint' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Constraint.php',
|
||||
'Doctrine\\DBAL\\Schema\\DB2SchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DB2SchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\DrizzleSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/DrizzleSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\ForeignKeyConstraint' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/ForeignKeyConstraint.php',
|
||||
'Doctrine\\DBAL\\Schema\\Identifier' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Identifier.php',
|
||||
'Doctrine\\DBAL\\Schema\\Index' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Index.php',
|
||||
'Doctrine\\DBAL\\Schema\\MySqlSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/MySqlSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\OracleSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/OracleSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\PostgreSqlSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/PostgreSqlSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\SQLAnywhereSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLAnywhereSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\SQLServerSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SQLServerSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Schema' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Schema.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaConfig' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaConfig.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\SchemaException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SchemaException.php',
|
||||
'Doctrine\\DBAL\\Schema\\Sequence' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Sequence.php',
|
||||
'Doctrine\\DBAL\\Schema\\SqliteSchemaManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/SqliteSchemaManager.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\AbstractSchemaSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/AbstractSchemaSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\SchemaSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SchemaSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Synchronizer\\SingleDatabaseSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Synchronizer/SingleDatabaseSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Schema\\Table' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Table.php',
|
||||
'Doctrine\\DBAL\\Schema\\TableDiff' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/TableDiff.php',
|
||||
'Doctrine\\DBAL\\Schema\\View' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/View.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\AbstractVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/AbstractVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\CreateSchemaSqlCollector' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/CreateSchemaSqlCollector.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\DropSchemaSqlCollector' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/DropSchemaSqlCollector.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\Graphviz' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Graphviz.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\NamespaceVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/NamespaceVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\RemoveNamespacedAssets' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/RemoveNamespacedAssets.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\SchemaDiffVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/SchemaDiffVisitor.php',
|
||||
'Doctrine\\DBAL\\Schema\\Visitor\\Visitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Schema/Visitor/Visitor.php',
|
||||
'Doctrine\\DBAL\\Sharding\\PoolingShardConnection' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardConnection.php',
|
||||
'Doctrine\\DBAL\\Sharding\\PoolingShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/PoolingShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\SQLAzureFederationsSynchronizer' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureFederationsSynchronizer.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\SQLAzureShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/SQLAzureShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\SQLAzure\\Schema\\MultiTenantVisitor' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/SQLAzure/Schema/MultiTenantVisitor.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardChoser\\MultiTenantShardChoser' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/MultiTenantShardChoser.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardChoser\\ShardChoser' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardChoser/ShardChoser.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardManager' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardManager.php',
|
||||
'Doctrine\\DBAL\\Sharding\\ShardingException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Sharding/ShardingException.php',
|
||||
'Doctrine\\DBAL\\Statement' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Statement.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\ImportCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ImportCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\ReservedWordsCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/ReservedWordsCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Command\\RunSqlCommand' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Command/RunSqlCommand.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\ConsoleRunner' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/ConsoleRunner.php',
|
||||
'Doctrine\\DBAL\\Tools\\Console\\Helper\\ConnectionHelper' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Console/Helper/ConnectionHelper.php',
|
||||
'Doctrine\\DBAL\\Tools\\Dumper' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Tools/Dumper.php',
|
||||
'Doctrine\\DBAL\\TransactionIsolationLevel' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/TransactionIsolationLevel.php',
|
||||
'Doctrine\\DBAL\\Types\\ArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\BigIntType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BigIntType.php',
|
||||
'Doctrine\\DBAL\\Types\\BinaryType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BinaryType.php',
|
||||
'Doctrine\\DBAL\\Types\\BlobType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BlobType.php',
|
||||
'Doctrine\\DBAL\\Types\\BooleanType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/BooleanType.php',
|
||||
'Doctrine\\DBAL\\Types\\ConversionException' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ConversionException.php',
|
||||
'Doctrine\\DBAL\\Types\\DateImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateIntervalType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateIntervalType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeTzImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateTimeTzType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateTimeTzType.php',
|
||||
'Doctrine\\DBAL\\Types\\DateType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DateType.php',
|
||||
'Doctrine\\DBAL\\Types\\DecimalType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/DecimalType.php',
|
||||
'Doctrine\\DBAL\\Types\\FloatType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/FloatType.php',
|
||||
'Doctrine\\DBAL\\Types\\GuidType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/GuidType.php',
|
||||
'Doctrine\\DBAL\\Types\\IntegerType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/IntegerType.php',
|
||||
'Doctrine\\DBAL\\Types\\JsonArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\JsonType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/JsonType.php',
|
||||
'Doctrine\\DBAL\\Types\\ObjectType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/ObjectType.php',
|
||||
'Doctrine\\DBAL\\Types\\PhpDateTimeMappingType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpDateTimeMappingType.php',
|
||||
'Doctrine\\DBAL\\Types\\PhpIntegerMappingType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/PhpIntegerMappingType.php',
|
||||
'Doctrine\\DBAL\\Types\\SimpleArrayType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SimpleArrayType.php',
|
||||
'Doctrine\\DBAL\\Types\\SmallIntType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/SmallIntType.php',
|
||||
'Doctrine\\DBAL\\Types\\StringType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/StringType.php',
|
||||
'Doctrine\\DBAL\\Types\\TextType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TextType.php',
|
||||
'Doctrine\\DBAL\\Types\\TimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\TimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TimeType.php',
|
||||
'Doctrine\\DBAL\\Types\\Type' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Type.php',
|
||||
'Doctrine\\DBAL\\Types\\TypeRegistry' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/TypeRegistry.php',
|
||||
'Doctrine\\DBAL\\Types\\Types' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/Types.php',
|
||||
'Doctrine\\DBAL\\Types\\VarDateTimeImmutableType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeImmutableType.php',
|
||||
'Doctrine\\DBAL\\Types\\VarDateTimeType' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Types/VarDateTimeType.php',
|
||||
'Doctrine\\DBAL\\Version' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/Version.php',
|
||||
'Doctrine\\DBAL\\VersionAwarePlatformDriver' => __DIR__ . '/..' . '/doctrine/dbal/lib/Doctrine/DBAL/VersionAwarePlatformDriver.php',
|
||||
'Doctrine\\Instantiator\\Exception\\ExceptionInterface' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/ExceptionInterface.php',
|
||||
'Doctrine\\Instantiator\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/InvalidArgumentException.php',
|
||||
'Doctrine\\Instantiator\\Exception\\UnexpectedValueException' => __DIR__ . '/..' . '/doctrine/instantiator/src/Doctrine/Instantiator/Exception/UnexpectedValueException.php',
|
||||
@@ -2251,6 +2611,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'JakubOnderka\\PhpConsoleColor\\ConsoleColor' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/ConsoleColor.php',
|
||||
'JakubOnderka\\PhpConsoleColor\\InvalidStyleException' => __DIR__ . '/..' . '/jakub-onderka/php-console-color/src/InvalidStyleException.php',
|
||||
'JakubOnderka\\PhpConsoleHighlighter\\Highlighter' => __DIR__ . '/..' . '/jakub-onderka/php-console-highlighter/src/Highlighter.php',
|
||||
'Jaybizzle\\CrawlerDetect\\CrawlerDetect' => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src/CrawlerDetect.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\AbstractProvider' => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src/Fixtures/AbstractProvider.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Crawlers' => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src/Fixtures/Crawlers.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Exclusions' => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src/Fixtures/Exclusions.php',
|
||||
'Jaybizzle\\CrawlerDetect\\Fixtures\\Headers' => __DIR__ . '/..' . '/jaybizzle/crawler-detect/src/Fixtures/Headers.php',
|
||||
'Jenssegers\\Agent\\Agent' => __DIR__ . '/..' . '/jenssegers/agent/src/Agent.php',
|
||||
'Jenssegers\\Agent\\AgentServiceProvider' => __DIR__ . '/..' . '/jenssegers/agent/src/AgentServiceProvider.php',
|
||||
'Jenssegers\\Agent\\Facades\\Agent' => __DIR__ . '/..' . '/jenssegers/agent/src/Facades/Agent.php',
|
||||
'JsonException' => __DIR__ . '/..' . '/symfony/polyfill-php73/Resources/stubs/JsonException.php',
|
||||
'Khill\\Lavacharts\\Builders\\ChartBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/Builders/ChartBuilder.php',
|
||||
'Khill\\Lavacharts\\Builders\\DashboardBuilder' => __DIR__ . '/..' . '/khill/lavacharts/src/Builders/DashboardBuilder.php',
|
||||
@@ -2603,6 +2971,7 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'League\\OAuth1\\Client\\Signature\\PlainTextSignature' => __DIR__ . '/..' . '/league/oauth1-client/src/Client/Signature/PlainTextSignature.php',
|
||||
'League\\OAuth1\\Client\\Signature\\Signature' => __DIR__ . '/..' . '/league/oauth1-client/src/Client/Signature/Signature.php',
|
||||
'League\\OAuth1\\Client\\Signature\\SignatureInterface' => __DIR__ . '/..' . '/league/oauth1-client/src/Client/Signature/SignatureInterface.php',
|
||||
'Mobile_Detect' => __DIR__ . '/..' . '/mobiledetect/mobiledetectlib/Mobile_Detect.php',
|
||||
'Mockery' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery.php',
|
||||
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV5' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV5.php',
|
||||
'Mockery\\Adapter\\Phpunit\\Legacy\\TestListenerForV6' => __DIR__ . '/..' . '/mockery/mockery/library/Mockery/Adapter/Phpunit/Legacy/TestListenerForV6.php',
|
||||
@@ -3484,6 +3853,131 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'PhpParser\\Parser\\Tokens' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/Parser/Tokens.php',
|
||||
'PhpParser\\PrettyPrinterAbstract' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinterAbstract.php',
|
||||
'PhpParser\\PrettyPrinter\\Standard' => __DIR__ . '/..' . '/nikic/php-parser/lib/PhpParser/PrettyPrinter/Standard.php',
|
||||
'PragmaRX\\Support\\CacheManager' => __DIR__ . '/..' . '/pragmarx/support/src/CacheManager.php',
|
||||
'PragmaRX\\Support\\Config' => __DIR__ . '/..' . '/pragmarx/support/src/Config.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\Cnpj' => __DIR__ . '/..' . '/pragmarx/support/src/CpfCnpj/Cnpj.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\Cpf' => __DIR__ . '/..' . '/pragmarx/support/src/CpfCnpj/Cpf.php',
|
||||
'PragmaRX\\Support\\CpfCnpj\\CpfCnpj' => __DIR__ . '/..' . '/pragmarx/support/src/CpfCnpj/CpfCnpj.php',
|
||||
'PragmaRX\\Support\\DateTime' => __DIR__ . '/..' . '/pragmarx/support/src/DateTime.php',
|
||||
'PragmaRX\\Support\\Debug\\Dumper' => __DIR__ . '/..' . '/pragmarx/support/src/Debug/Dumper.php',
|
||||
'PragmaRX\\Support\\Debug\\HtmlDumper' => __DIR__ . '/..' . '/pragmarx/support/src/Debug/HtmlDumper.php',
|
||||
'PragmaRX\\Support\\Environment' => __DIR__ . '/..' . '/pragmarx/support/src/Environment.php',
|
||||
'PragmaRX\\Support\\Exceptions\\EnvironmentVariableNotSet' => __DIR__ . '/..' . '/pragmarx/support/src/Exceptions/EnvironmentVariableNotSet.php',
|
||||
'PragmaRX\\Support\\Exceptions\\Exception' => __DIR__ . '/..' . '/pragmarx/support/src/Exceptions/Exception.php',
|
||||
'PragmaRX\\Support\\Filesystem' => __DIR__ . '/..' . '/pragmarx/support/src/Filesystem.php',
|
||||
'PragmaRX\\Support\\Finder' => __DIR__ . '/..' . '/pragmarx/support/src/Finder.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/GeoIp.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp1' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/GeoIp1.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIp2' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/GeoIp2.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIpAbstract' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/GeoIpAbstract.php',
|
||||
'PragmaRX\\Support\\GeoIp\\GeoIpContract' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/GeoIpContract.php',
|
||||
'PragmaRX\\Support\\GeoIp\\Updater' => __DIR__ . '/..' . '/pragmarx/support/src/GeoIp/Updater.php',
|
||||
'PragmaRX\\Support\\ImporterExporter\\ImporterExporter' => __DIR__ . '/..' . '/pragmarx/support/src/ImporterExporter/ImporterExporter.php',
|
||||
'PragmaRX\\Support\\Inflectors\\En' => __DIR__ . '/..' . '/pragmarx/support/src/Inflectors/En.php',
|
||||
'PragmaRX\\Support\\Inflectors\\Inflector' => __DIR__ . '/..' . '/pragmarx/support/src/Inflectors/Inflector.php',
|
||||
'PragmaRX\\Support\\Inflectors\\InflectorInterface' => __DIR__ . '/..' . '/pragmarx/support/src/Inflectors/InflectorInterface.php',
|
||||
'PragmaRX\\Support\\Inflectors\\PtBr' => __DIR__ . '/..' . '/pragmarx/support/src/Inflectors/PtBr.php',
|
||||
'PragmaRX\\Support\\IpAddress' => __DIR__ . '/..' . '/pragmarx/support/src/IpAddress.php',
|
||||
'PragmaRX\\Support\\Migration' => __DIR__ . '/..' . '/pragmarx/support/src/Migration.php',
|
||||
'PragmaRX\\Support\\PhpSession' => __DIR__ . '/..' . '/pragmarx/support/src/PhpSession.php',
|
||||
'PragmaRX\\Support\\Response' => __DIR__ . '/..' . '/pragmarx/support/src/Response.php',
|
||||
'PragmaRX\\Support\\ServiceProvider' => __DIR__ . '/..' . '/pragmarx/support/src/ServiceProvider.php',
|
||||
'PragmaRX\\Support\\Timer' => __DIR__ . '/..' . '/pragmarx/support/src/Timer.php',
|
||||
'PragmaRX\\Support\\YamlConfig' => __DIR__ . '/..' . '/pragmarx/support/src/YamlConfig.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Agent' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Agent.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Connection' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Connection.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Cookie' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Cookie.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Device' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Device.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Domain' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Domain.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Error' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Error.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Event' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Event.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\EventLog' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/EventLog.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\GeoIp' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/GeoIp.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Language' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Language.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Log' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Log.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Path' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Path.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Query' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Query.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\QueryArgument' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/QueryArgument.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Referer' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Referer.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Repository' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Repository.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RepositoryInterface' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/RepositoryInterface.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Route' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Route.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RoutePath' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/RoutePath.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\RoutePathParameter' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/RoutePathParameter.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\Session' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/Session.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQuery' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/SqlQuery.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryBinding' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/SqlQueryBinding.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryBindingParameter' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/SqlQueryBindingParameter.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SqlQueryLog' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/SqlQueryLog.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\SystemClass' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/SystemClass.php',
|
||||
'PragmaRX\\Tracker\\Data\\Repositories\\User' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/Repositories/User.php',
|
||||
'PragmaRX\\Tracker\\Data\\RepositoryManager' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/RepositoryManager.php',
|
||||
'PragmaRX\\Tracker\\Data\\RepositoryManagerInterface' => __DIR__ . '/..' . '/pragmarx/tracker/src/Data/RepositoryManagerInterface.php',
|
||||
'PragmaRX\\Tracker\\Eventing\\EventStorage' => __DIR__ . '/..' . '/pragmarx/tracker/src/Eventing/EventStorage.php',
|
||||
'PragmaRX\\Tracker\\Repositories\\Message' => __DIR__ . '/..' . '/pragmarx/tracker/src/Repositories/Message.php',
|
||||
'PragmaRX\\Tracker\\Services\\Authentication' => __DIR__ . '/..' . '/pragmarx/tracker/src/Services/Authentication.php',
|
||||
'PragmaRX\\Tracker\\Support\\Cache' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Cache.php',
|
||||
'PragmaRX\\Tracker\\Support\\CrawlerDetector' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/CrawlerDetector.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CompileError' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/CompileError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CompileWarning' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/CompileWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CoreError' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/CoreError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\CoreWarning' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/CoreWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Deprecated' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Deprecated.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Error' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Error.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\ExceptionFactory' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/ExceptionFactory.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Handler' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Handler.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Notice' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Notice.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Parse' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Parse.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\RecoverableError' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/RecoverableError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Strict' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Strict.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserDeprecated' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/UserDeprecated.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserError' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/UserError.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserNotice' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/UserNotice.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\UserWarning' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/UserWarning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Exceptions\\Warning' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Exceptions/Warning.php',
|
||||
'PragmaRX\\Tracker\\Support\\Filesystem' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Filesystem.php',
|
||||
'PragmaRX\\Tracker\\Support\\LanguageDetect' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/LanguageDetect.php',
|
||||
'PragmaRX\\Tracker\\Support\\Migration' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Migration.php',
|
||||
'PragmaRX\\Tracker\\Support\\Minutes' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/Minutes.php',
|
||||
'PragmaRX\\Tracker\\Support\\MobileDetect' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/MobileDetect.php',
|
||||
'PragmaRX\\Tracker\\Support\\RefererParser' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/RefererParser.php',
|
||||
'PragmaRX\\Tracker\\Support\\UserAgentParser' => __DIR__ . '/..' . '/pragmarx/tracker/src/Support/UserAgentParser.php',
|
||||
'PragmaRX\\Tracker\\Tracker' => __DIR__ . '/..' . '/pragmarx/tracker/src/Tracker.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\Base' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/Base.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\Tables' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/Tables.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Artisan\\UpdateGeoIp' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Artisan/UpdateGeoIp.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Controllers\\Stats' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Controllers/Stats.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Facade' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Facade.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Middlewares\\Tracker' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Middlewares/Tracker.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Agent' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Agent.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Base' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Base.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Connection' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Connection.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Cookie' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Cookie.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Device' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Device.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Domain' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Domain.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Error' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Error.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Event' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Event.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\EventLog' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/EventLog.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\GeoIp' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/GeoIp.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Language' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Language.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Log' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Log.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Path' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Path.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Query' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Query.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\QueryArgument' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/QueryArgument.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Referer' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Referer.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RefererSearchTerm' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/RefererSearchTerm.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Route' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Route.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RoutePath' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/RoutePath.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\RoutePathParameter' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/RoutePathParameter.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\Session' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/Session.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQuery' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQuery.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryBinding' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryBinding.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryBindingParameter' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryBindingParameter.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SqlQueryLog' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/SqlQueryLog.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\SystemClass' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/SystemClass.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Models\\User' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Models/User.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\ServiceProvider' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/ServiceProvider.php',
|
||||
'PragmaRX\\Tracker\\Vendor\\Laravel\\Support\\Session' => __DIR__ . '/..' . '/pragmarx/tracker/src/Vendor/Laravel/Support/Session.php',
|
||||
'Predis\\Autoloader' => __DIR__ . '/..' . '/predis/predis/src/Autoloader.php',
|
||||
'Predis\\Client' => __DIR__ . '/..' . '/predis/predis/src/Client.php',
|
||||
'Predis\\ClientContextInterface' => __DIR__ . '/..' . '/predis/predis/src/ClientContextInterface.php',
|
||||
@@ -4181,6 +4675,14 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'SebastianBergmann\\Timer\\RuntimeException' => __DIR__ . '/..' . '/phpunit/php-timer/src/RuntimeException.php',
|
||||
'SebastianBergmann\\Timer\\Timer' => __DIR__ . '/..' . '/phpunit/php-timer/src/Timer.php',
|
||||
'SebastianBergmann\\Version' => __DIR__ . '/..' . '/sebastian/version/src/Version.php',
|
||||
'Snowplow\\RefererParser\\Config\\ConfigFileReaderTrait' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/ConfigFileReaderTrait.php',
|
||||
'Snowplow\\RefererParser\\Config\\ConfigReaderInterface' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/ConfigReaderInterface.php',
|
||||
'Snowplow\\RefererParser\\Config\\JsonConfigReader' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/JsonConfigReader.php',
|
||||
'Snowplow\\RefererParser\\Config\\YamlConfigReader' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Config/YamlConfigReader.php',
|
||||
'Snowplow\\RefererParser\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Exception/InvalidArgumentException.php',
|
||||
'Snowplow\\RefererParser\\Medium' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Medium.php',
|
||||
'Snowplow\\RefererParser\\Parser' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Parser.php',
|
||||
'Snowplow\\RefererParser\\Referer' => __DIR__ . '/..' . '/snowplow/referer-parser/php/src/Snowplow/RefererParser/Referer.php',
|
||||
'SolarSystemSeeder' => __DIR__ . '/../..' . '/database/seeds/SolarSystemSeeder.php',
|
||||
'Symfony\\Component\\Console\\Application' => __DIR__ . '/..' . '/symfony/console/Application.php',
|
||||
'Symfony\\Component\\Console\\CommandLoader\\CommandLoaderInterface' => __DIR__ . '/..' . '/symfony/console/CommandLoader/CommandLoaderInterface.php',
|
||||
@@ -4923,6 +5425,33 @@ class ComposerStaticInitc3f953f8a7291d41a76e1664339777c9
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Property\\Property' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Property/Property.php',
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Processor' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Processor.php',
|
||||
'TijsVerkoyen\\CssToInlineStyles\\Css\\Rule\\Rule' => __DIR__ . '/..' . '/tijsverkoyen/css-to-inline-styles/src/Css/Rule/Rule.php',
|
||||
'UAParser\\AbstractParser' => __DIR__ . '/..' . '/ua-parser/uap-php/src/AbstractParser.php',
|
||||
'UAParser\\Command\\ConvertCommand' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Command/ConvertCommand.php',
|
||||
'UAParser\\Command\\FetchCommand' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Command/FetchCommand.php',
|
||||
'UAParser\\Command\\LogfileCommand' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Command/LogfileCommand.php',
|
||||
'UAParser\\Command\\ParserCommand' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Command/ParserCommand.php',
|
||||
'UAParser\\Command\\UpdateCommand' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Command/UpdateCommand.php',
|
||||
'UAParser\\DeviceParser' => __DIR__ . '/..' . '/ua-parser/uap-php/src/DeviceParser.php',
|
||||
'UAParser\\Exception\\DomainException' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Exception/DomainException.php',
|
||||
'UAParser\\Exception\\FetcherException' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Exception/FetcherException.php',
|
||||
'UAParser\\Exception\\FileNotFoundException' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Exception/FileNotFoundException.php',
|
||||
'UAParser\\Exception\\InvalidArgumentException' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Exception/InvalidArgumentException.php',
|
||||
'UAParser\\Exception\\ReaderException' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Exception/ReaderException.php',
|
||||
'UAParser\\OperatingSystemParser' => __DIR__ . '/..' . '/ua-parser/uap-php/src/OperatingSystemParser.php',
|
||||
'UAParser\\Parser' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Parser.php',
|
||||
'UAParser\\Result\\AbstractClient' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/AbstractClient.php',
|
||||
'UAParser\\Result\\AbstractSoftware' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/AbstractSoftware.php',
|
||||
'UAParser\\Result\\AbstractVersionedSoftware' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/AbstractVersionedSoftware.php',
|
||||
'UAParser\\Result\\Client' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/Client.php',
|
||||
'UAParser\\Result\\Device' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/Device.php',
|
||||
'UAParser\\Result\\OperatingSystem' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/OperatingSystem.php',
|
||||
'UAParser\\Result\\UserAgent' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Result/UserAgent.php',
|
||||
'UAParser\\UserAgentParser' => __DIR__ . '/..' . '/ua-parser/uap-php/src/UserAgentParser.php',
|
||||
'UAParser\\Util\\Converter' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Util/Converter.php',
|
||||
'UAParser\\Util\\Fetcher' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Util/Fetcher.php',
|
||||
'UAParser\\Util\\Logfile\\AbstractReader' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Util/Logfile/AbstractReader.php',
|
||||
'UAParser\\Util\\Logfile\\ApacheCommonLogFormatReader' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Util/Logfile/ApacheCommonLogFormatReader.php',
|
||||
'UAParser\\Util\\Logfile\\ReaderInterface' => __DIR__ . '/..' . '/ua-parser/uap-php/src/Util/Logfile/ReaderInterface.php',
|
||||
'Webmozart\\Assert\\Assert' => __DIR__ . '/..' . '/webmozart/assert/src/Assert.php',
|
||||
'Whoops\\Exception\\ErrorException' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/ErrorException.php',
|
||||
'Whoops\\Exception\\Formatter' => __DIR__ . '/..' . '/filp/whoops/src/Whoops/Exception/Formatter.php',
|
||||
|
||||
19
vendor/composer/ca-bundle/LICENSE
vendored
Normal file
19
vendor/composer/ca-bundle/LICENSE
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (C) 2016 Composer
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
85
vendor/composer/ca-bundle/README.md
vendored
Normal file
85
vendor/composer/ca-bundle/README.md
vendored
Normal file
@@ -0,0 +1,85 @@
|
||||
composer/ca-bundle
|
||||
==================
|
||||
|
||||
Small utility library that lets you find a path to the system CA bundle,
|
||||
and includes a fallback to the Mozilla CA bundle.
|
||||
|
||||
Originally written as part of [composer/composer](https://github.com/composer/composer),
|
||||
now extracted and made available as a stand-alone library.
|
||||
|
||||
|
||||
Installation
|
||||
------------
|
||||
|
||||
Install the latest version with:
|
||||
|
||||
```bash
|
||||
$ composer require composer/ca-bundle
|
||||
```
|
||||
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
* PHP 5.3.2 is required but using the latest version of PHP is highly recommended.
|
||||
|
||||
|
||||
Basic usage
|
||||
-----------
|
||||
|
||||
### `Composer\CaBundle\CaBundle`
|
||||
|
||||
- `CaBundle::getSystemCaRootBundlePath()`: Returns the system CA bundle path, or a path to the bundled one as fallback
|
||||
- `CaBundle::getBundledCaBundlePath()`: Returns the path to the bundled CA file
|
||||
- `CaBundle::validateCaFile($filename)`: Validates a CA file using openssl_x509_parse only if it is safe to use
|
||||
- `CaBundle::isOpensslParseSafe()`: Test if it is safe to use the PHP function openssl_x509_parse()
|
||||
- `CaBundle::reset()`: Resets the static caches
|
||||
|
||||
|
||||
#### To use with curl
|
||||
|
||||
```php
|
||||
$curl = curl_init("https://example.org/");
|
||||
|
||||
$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
|
||||
if (is_dir($caPathOrFile)) {
|
||||
curl_setopt($curl, CURLOPT_CAPATH, $caPathOrFile);
|
||||
} else {
|
||||
curl_setopt($curl, CURLOPT_CAINFO, $caPathOrFile);
|
||||
}
|
||||
|
||||
$result = curl_exec($curl);
|
||||
```
|
||||
|
||||
#### To use with php streams
|
||||
|
||||
```php
|
||||
$opts = array(
|
||||
'http' => array(
|
||||
'method' => "GET"
|
||||
)
|
||||
);
|
||||
|
||||
$caPathOrFile = \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath();
|
||||
if (is_dir($caPathOrFile)) {
|
||||
$opts['ssl']['capath'] = $caPathOrFile;
|
||||
} else {
|
||||
$opts['ssl']['cafile'] = $caPathOrFile;
|
||||
}
|
||||
|
||||
$context = stream_context_create($opts);
|
||||
$result = file_get_contents('https://example.com', false, $context);
|
||||
```
|
||||
|
||||
#### To use with Guzzle
|
||||
|
||||
```php
|
||||
$client = new \GuzzleHttp\Client([
|
||||
\GuzzleHttp\RequestOptions::VERIFY => \Composer\CaBundle\CaBundle::getSystemCaRootBundlePath()
|
||||
]);
|
||||
```
|
||||
|
||||
License
|
||||
-------
|
||||
|
||||
composer/ca-bundle is licensed under the MIT License, see the LICENSE file for details.
|
||||
54
vendor/composer/ca-bundle/composer.json
vendored
Normal file
54
vendor/composer/ca-bundle/composer.json
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"name": "composer/ca-bundle",
|
||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
||||
"type": "library",
|
||||
"license": "MIT",
|
||||
"keywords": [
|
||||
"cabundle",
|
||||
"cacert",
|
||||
"certificate",
|
||||
"ssl",
|
||||
"tls"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"support": {
|
||||
"irc": "irc://irc.freenode.org/composer",
|
||||
"issues": "https://github.com/composer/ca-bundle/issues"
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"ext-pcre": "*",
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\CaBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Composer\\CaBundle\\": "tests"
|
||||
}
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"config": {
|
||||
"platform": {
|
||||
"php": "5.3.9"
|
||||
}
|
||||
}
|
||||
}
|
||||
3432
vendor/composer/ca-bundle/res/cacert.pem
vendored
Normal file
3432
vendor/composer/ca-bundle/res/cacert.pem
vendored
Normal file
File diff suppressed because it is too large
Load Diff
311
vendor/composer/ca-bundle/src/CaBundle.php
vendored
Normal file
311
vendor/composer/ca-bundle/src/CaBundle.php
vendored
Normal file
@@ -0,0 +1,311 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of composer/ca-bundle.
|
||||
*
|
||||
* (c) Composer <https://github.com/composer>
|
||||
*
|
||||
* For the full copyright and license information, please view
|
||||
* the LICENSE file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer\CaBundle;
|
||||
|
||||
use Psr\Log\LoggerInterface;
|
||||
use Symfony\Component\Process\PhpProcess;
|
||||
|
||||
/**
|
||||
* @author Chris Smith <chris@cs278.org>
|
||||
* @author Jordi Boggiano <j.boggiano@seld.be>
|
||||
*/
|
||||
class CaBundle
|
||||
{
|
||||
private static $caPath;
|
||||
private static $caFileValidity = array();
|
||||
private static $useOpensslParse;
|
||||
|
||||
/**
|
||||
* Returns the system CA bundle path, or a path to the bundled one
|
||||
*
|
||||
* This method was adapted from Sslurp.
|
||||
* https://github.com/EvanDotPro/Sslurp
|
||||
*
|
||||
* (c) Evan Coury <me@evancoury.com>
|
||||
*
|
||||
* For the full copyright and license information, please see below:
|
||||
*
|
||||
* Copyright (c) 2013, Evan Coury
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without modification,
|
||||
* are permitted provided that the following conditions are met:
|
||||
*
|
||||
* * Redistributions of source code must retain the above copyright notice,
|
||||
* this list of conditions and the following disclaimer.
|
||||
*
|
||||
* * Redistributions in binary form must reproduce the above copyright notice,
|
||||
* this list of conditions and the following disclaimer in the documentation
|
||||
* and/or other materials provided with the distribution.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
* DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
|
||||
* ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
||||
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
||||
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON
|
||||
* ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
||||
* @return string path to a CA bundle file or directory
|
||||
*/
|
||||
public static function getSystemCaRootBundlePath(LoggerInterface $logger = null)
|
||||
{
|
||||
if (self::$caPath !== null) {
|
||||
return self::$caPath;
|
||||
}
|
||||
$caBundlePaths = array();
|
||||
|
||||
|
||||
// If SSL_CERT_FILE env variable points to a valid certificate/bundle, use that.
|
||||
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
||||
$caBundlePaths[] = getenv('SSL_CERT_FILE');
|
||||
|
||||
// If SSL_CERT_DIR env variable points to a valid certificate/bundle, use that.
|
||||
// This mimics how OpenSSL uses the SSL_CERT_FILE env variable.
|
||||
$caBundlePaths[] = getenv('SSL_CERT_DIR');
|
||||
|
||||
$caBundlePaths[] = ini_get('openssl.cafile');
|
||||
$caBundlePaths[] = ini_get('openssl.capath');
|
||||
|
||||
$otherLocations = array(
|
||||
'/etc/pki/tls/certs/ca-bundle.crt', // Fedora, RHEL, CentOS (ca-certificates package)
|
||||
'/etc/ssl/certs/ca-certificates.crt', // Debian, Ubuntu, Gentoo, Arch Linux (ca-certificates package)
|
||||
'/etc/ssl/ca-bundle.pem', // SUSE, openSUSE (ca-certificates package)
|
||||
'/usr/local/share/certs/ca-root-nss.crt', // FreeBSD (ca_root_nss_package)
|
||||
'/usr/ssl/certs/ca-bundle.crt', // Cygwin
|
||||
'/opt/local/share/curl/curl-ca-bundle.crt', // OS X macports, curl-ca-bundle package
|
||||
'/usr/local/share/curl/curl-ca-bundle.crt', // Default cURL CA bunde path (without --with-ca-bundle option)
|
||||
'/usr/share/ssl/certs/ca-bundle.crt', // Really old RedHat?
|
||||
'/etc/ssl/cert.pem', // OpenBSD
|
||||
'/usr/local/etc/ssl/cert.pem', // FreeBSD 10.x
|
||||
'/usr/local/etc/openssl/cert.pem', // OS X homebrew, openssl package
|
||||
'/usr/local/etc/openssl@1.1/cert.pem', // OS X homebrew, openssl@1.1 package
|
||||
);
|
||||
|
||||
foreach($otherLocations as $location) {
|
||||
$otherLocations[] = dirname($location);
|
||||
}
|
||||
|
||||
$caBundlePaths = array_merge($caBundlePaths, $otherLocations);
|
||||
|
||||
foreach ($caBundlePaths as $caBundle) {
|
||||
if (self::caFileUsable($caBundle, $logger)) {
|
||||
return self::$caPath = $caBundle;
|
||||
}
|
||||
|
||||
if (self::caDirUsable($caBundle)) {
|
||||
return self::$caPath = $caBundle;
|
||||
}
|
||||
}
|
||||
|
||||
return self::$caPath = static::getBundledCaBundlePath(); // Bundled CA file, last resort
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the path to the bundled CA file
|
||||
*
|
||||
* In case you don't want to trust the user or the system, you can use this directly
|
||||
*
|
||||
* @return string path to a CA bundle file
|
||||
*/
|
||||
public static function getBundledCaBundlePath()
|
||||
{
|
||||
$caBundleFile = __DIR__.'/../res/cacert.pem';
|
||||
|
||||
// cURL does not understand 'phar://' paths
|
||||
// see https://github.com/composer/ca-bundle/issues/10
|
||||
if (0 === strpos($caBundleFile, 'phar://')) {
|
||||
file_put_contents(
|
||||
$tempCaBundleFile = tempnam(sys_get_temp_dir(), 'openssl-ca-bundle-'),
|
||||
file_get_contents($caBundleFile)
|
||||
);
|
||||
|
||||
register_shutdown_function(function() use ($tempCaBundleFile) {
|
||||
@unlink($tempCaBundleFile);
|
||||
});
|
||||
|
||||
$caBundleFile = $tempCaBundleFile;
|
||||
}
|
||||
|
||||
return $caBundleFile;
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates a CA file using opensl_x509_parse only if it is safe to use
|
||||
*
|
||||
* @param string $filename
|
||||
* @param LoggerInterface $logger optional logger for information about which CA files were loaded
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function validateCaFile($filename, LoggerInterface $logger = null)
|
||||
{
|
||||
static $warned = false;
|
||||
|
||||
if (isset(self::$caFileValidity[$filename])) {
|
||||
return self::$caFileValidity[$filename];
|
||||
}
|
||||
|
||||
$contents = file_get_contents($filename);
|
||||
|
||||
// assume the CA is valid if php is vulnerable to
|
||||
// https://www.sektioneins.de/advisories/advisory-012013-php-openssl_x509_parse-memory-corruption-vulnerability.html
|
||||
if (!static::isOpensslParseSafe()) {
|
||||
if (!$warned && $logger) {
|
||||
$logger->warning(sprintf(
|
||||
'Your version of PHP, %s, is affected by CVE-2013-6420 and cannot safely perform certificate validation, we strongly suggest you upgrade.',
|
||||
PHP_VERSION
|
||||
));
|
||||
$warned = true;
|
||||
}
|
||||
|
||||
$isValid = !empty($contents);
|
||||
} else {
|
||||
$isValid = (bool) openssl_x509_parse($contents);
|
||||
}
|
||||
|
||||
if ($logger) {
|
||||
$logger->debug('Checked CA file '.realpath($filename).': '.($isValid ? 'valid' : 'invalid'));
|
||||
}
|
||||
|
||||
return self::$caFileValidity[$filename] = $isValid;
|
||||
}
|
||||
|
||||
/**
|
||||
* Test if it is safe to use the PHP function openssl_x509_parse().
|
||||
*
|
||||
* This checks if OpenSSL extensions is vulnerable to remote code execution
|
||||
* via the exploit documented as CVE-2013-6420.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public static function isOpensslParseSafe()
|
||||
{
|
||||
if (null !== self::$useOpensslParse) {
|
||||
return self::$useOpensslParse;
|
||||
}
|
||||
|
||||
if (PHP_VERSION_ID >= 50600) {
|
||||
return self::$useOpensslParse = true;
|
||||
}
|
||||
|
||||
// Vulnerable:
|
||||
// PHP 5.3.0 - PHP 5.3.27
|
||||
// PHP 5.4.0 - PHP 5.4.22
|
||||
// PHP 5.5.0 - PHP 5.5.6
|
||||
if (
|
||||
(PHP_VERSION_ID < 50400 && PHP_VERSION_ID >= 50328)
|
||||
|| (PHP_VERSION_ID < 50500 && PHP_VERSION_ID >= 50423)
|
||||
|| (PHP_VERSION_ID < 50600 && PHP_VERSION_ID >= 50507)
|
||||
) {
|
||||
// This version of PHP has the fix for CVE-2013-6420 applied.
|
||||
return self::$useOpensslParse = true;
|
||||
}
|
||||
|
||||
if (defined('PHP_WINDOWS_VERSION_BUILD')) {
|
||||
// Windows is probably insecure in this case.
|
||||
return self::$useOpensslParse = false;
|
||||
}
|
||||
|
||||
$compareDistroVersionPrefix = function ($prefix, $fixedVersion) {
|
||||
$regex = '{^'.preg_quote($prefix).'([0-9]+)$}';
|
||||
|
||||
if (preg_match($regex, PHP_VERSION, $m)) {
|
||||
return ((int) $m[1]) >= $fixedVersion;
|
||||
}
|
||||
|
||||
return false;
|
||||
};
|
||||
|
||||
// Hard coded list of PHP distributions with the fix backported.
|
||||
if (
|
||||
$compareDistroVersionPrefix('5.3.3-7+squeeze', 18) // Debian 6 (Squeeze)
|
||||
|| $compareDistroVersionPrefix('5.4.4-14+deb7u', 7) // Debian 7 (Wheezy)
|
||||
|| $compareDistroVersionPrefix('5.3.10-1ubuntu3.', 9) // Ubuntu 12.04 (Precise)
|
||||
) {
|
||||
return self::$useOpensslParse = true;
|
||||
}
|
||||
|
||||
// Symfony Process component is missing so we assume it is unsafe at this point
|
||||
if (!class_exists('Symfony\Component\Process\PhpProcess')) {
|
||||
return self::$useOpensslParse = false;
|
||||
}
|
||||
|
||||
// This is where things get crazy, because distros backport security
|
||||
// fixes the chances are on NIX systems the fix has been applied but
|
||||
// it's not possible to verify that from the PHP version.
|
||||
//
|
||||
// To verify exec a new PHP process and run the issue testcase with
|
||||
// known safe input that replicates the bug.
|
||||
|
||||
// Based on testcase in https://github.com/php/php-src/commit/c1224573c773b6845e83505f717fbf820fc18415
|
||||
// changes in https://github.com/php/php-src/commit/76a7fd893b7d6101300cc656058704a73254d593
|
||||
$cert = 'LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUVwRENDQTR5Z0F3SUJBZ0lKQUp6dThyNnU2ZUJjTUEwR0NTcUdTSWIzRFFFQkJRVUFNSUhETVFzd0NRWUQKVlFRR0V3SkVSVEVjTUJvR0ExVUVDQXdUVG05eVpISm9aV2x1TFZkbGMzUm1ZV3hsYmpFUU1BNEdBMVVFQnd3SApTOE9Ed3Jac2JqRVVNQklHQTFVRUNnd0xVMlZyZEdsdmJrVnBibk14SHpBZEJnTlZCQXNNRmsxaGJHbGphVzkxCmN5QkRaWEowSUZObFkzUnBiMjR4SVRBZkJnTlZCQU1NR0cxaGJHbGphVzkxY3k1elpXdDBhVzl1WldsdWN5NWsKWlRFcU1DZ0dDU3FHU0liM0RRRUpBUlliYzNSbFptRnVMbVZ6YzJWeVFITmxhM1JwYjI1bGFXNXpMbVJsTUhVWQpaREU1TnpBd01UQXhNREF3TURBd1dnQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBCkFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUEKQUFBQUFBQVhEVEUwTVRFeU9ERXhNemt6TlZvd2djTXhDekFKQmdOVkJBWVRBa1JGTVJ3d0dnWURWUVFJREJOTwpiM0prY21obGFXNHRWMlZ6ZEdaaGJHVnVNUkF3RGdZRFZRUUhEQWRMdzRQQ3RteHVNUlF3RWdZRFZRUUtEQXRUClpXdDBhVzl1UldsdWN6RWZNQjBHQTFVRUN3d1dUV0ZzYVdOcGIzVnpJRU5sY25RZ1UyVmpkR2x2YmpFaE1COEcKQTFVRUF3d1liV0ZzYVdOcGIzVnpMbk5sYTNScGIyNWxhVzV6TG1SbE1Tb3dLQVlKS29aSWh2Y05BUWtCRmh0egpkR1ZtWVc0dVpYTnpaWEpBYzJWcmRHbHZibVZwYm5NdVpHVXdnZ0VpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElCCkR3QXdnZ0VLQW9JQkFRRERBZjNobDdKWTBYY0ZuaXlFSnBTU0RxbjBPcUJyNlFQNjV1c0pQUnQvOFBhRG9xQnUKd0VZVC9OYSs2ZnNnUGpDMHVLOURaZ1dnMnRIV1dvYW5TYmxBTW96NVBINlorUzRTSFJaN2UyZERJalBqZGhqaAowbUxnMlVNTzV5cDBWNzk3R2dzOWxOdDZKUmZIODFNTjJvYlhXczROdHp0TE11RDZlZ3FwcjhkRGJyMzRhT3M4CnBrZHVpNVVhd1Raa3N5NXBMUEhxNWNNaEZHbTA2djY1Q0xvMFYyUGQ5K0tBb2tQclBjTjVLTEtlYno3bUxwazYKU01lRVhPS1A0aWRFcXh5UTdPN2ZCdUhNZWRzUWh1K3ByWTNzaTNCVXlLZlF0UDVDWm5YMmJwMHdLSHhYMTJEWAoxbmZGSXQ5RGJHdkhUY3lPdU4rblpMUEJtM3ZXeG50eUlJdlZBZ01CQUFHalFqQkFNQWtHQTFVZEV3UUNNQUF3CkVRWUpZSVpJQVliNFFnRUJCQVFEQWdlQU1Bc0dBMVVkRHdRRUF3SUZvREFUQmdOVkhTVUVEREFLQmdnckJnRUYKQlFjREFqQU5CZ2txaGtpRzl3MEJBUVVGQUFPQ0FRRUFHMGZaWVlDVGJkajFYWWMrMVNub2FQUit2SThDOENhRAo4KzBVWWhkbnlVNGdnYTBCQWNEclk5ZTk0ZUVBdTZacXljRjZGakxxWFhkQWJvcHBXb2NyNlQ2R0QxeDMzQ2tsClZBcnpHL0t4UW9oR0QySmVxa2hJTWxEb214SE83a2EzOStPYThpMnZXTFZ5alU4QVp2V01BcnVIYTRFRU55RzcKbFcyQWFnYUZLRkNyOVRuWFRmcmR4R1ZFYnY3S1ZRNmJkaGc1cDVTanBXSDErTXEwM3VSM1pYUEJZZHlWODMxOQpvMGxWajFLRkkyRENML2xpV2lzSlJvb2YrMWNSMzVDdGQwd1lCY3BCNlRac2xNY09QbDc2ZHdLd0pnZUpvMlFnClpzZm1jMnZDMS9xT2xOdU5xLzBUenprVkd2OEVUVDNDZ2FVK1VYZTRYT1Z2a2NjZWJKbjJkZz09Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K';
|
||||
$script = <<<'EOT'
|
||||
|
||||
error_reporting(-1);
|
||||
$info = openssl_x509_parse(base64_decode('%s'));
|
||||
var_dump(PHP_VERSION, $info['issuer']['emailAddress'], $info['validFrom_time_t']);
|
||||
|
||||
EOT;
|
||||
$script = '<'."?php\n".sprintf($script, $cert);
|
||||
|
||||
try {
|
||||
$process = new PhpProcess($script);
|
||||
$process->mustRun();
|
||||
} catch (\Exception $e) {
|
||||
// In the case of any exceptions just accept it is not possible to
|
||||
// determine the safety of openssl_x509_parse and bail out.
|
||||
return self::$useOpensslParse = false;
|
||||
}
|
||||
|
||||
$output = preg_split('{\r?\n}', trim($process->getOutput()));
|
||||
$errorOutput = trim($process->getErrorOutput());
|
||||
|
||||
if (
|
||||
count($output) === 3
|
||||
&& $output[0] === sprintf('string(%d) "%s"', strlen(PHP_VERSION), PHP_VERSION)
|
||||
&& $output[1] === 'string(27) "stefan.esser@sektioneins.de"'
|
||||
&& $output[2] === 'int(-1)'
|
||||
&& preg_match('{openssl_x509_parse\(\): illegal (?:ASN1 data type for|length in) timestamp in - on line \d+}', $errorOutput)
|
||||
) {
|
||||
// This PHP has the fix backported probably by a distro security team.
|
||||
return self::$useOpensslParse = true;
|
||||
}
|
||||
|
||||
return self::$useOpensslParse = false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Resets the static caches
|
||||
*/
|
||||
public static function reset()
|
||||
{
|
||||
self::$caFileValidity = array();
|
||||
self::$caPath = null;
|
||||
self::$useOpensslParse = null;
|
||||
}
|
||||
|
||||
private static function caFileUsable($certFile, LoggerInterface $logger = null)
|
||||
{
|
||||
return $certFile && @is_file($certFile) && @is_readable($certFile) && static::validateCaFile($certFile, $logger);
|
||||
}
|
||||
|
||||
private static function caDirUsable($certDir)
|
||||
{
|
||||
return $certDir && @is_dir($certDir) && @is_readable($certDir) && glob($certDir . '/*');
|
||||
}
|
||||
}
|
||||
781
vendor/composer/installed.json
vendored
781
vendor/composer/installed.json
vendored
@@ -165,6 +165,64 @@
|
||||
"time"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "composer/ca-bundle",
|
||||
"version": "1.2.5",
|
||||
"version_normalized": "1.2.5.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/composer/ca-bundle.git",
|
||||
"reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/composer/ca-bundle/zipball/62e8fc2dc550e5d6d8c9360c7721662670f58149",
|
||||
"reference": "62e8fc2dc550e5d6d8c9360c7721662670f58149",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"ext-openssl": "*",
|
||||
"ext-pcre": "*",
|
||||
"php": "^5.3.2 || ^7.0 || ^8.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8.35 || ^5.7 || 6.5 - 8",
|
||||
"psr/log": "^1.0",
|
||||
"symfony/process": "^2.5 || ^3.0 || ^4.0 || ^5.0"
|
||||
},
|
||||
"time": "2019-12-11T14:44:42+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Composer\\CaBundle\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jordi Boggiano",
|
||||
"email": "j.boggiano@seld.be",
|
||||
"homepage": "http://seld.be"
|
||||
}
|
||||
],
|
||||
"description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
|
||||
"keywords": [
|
||||
"cabundle",
|
||||
"cacert",
|
||||
"certificate",
|
||||
"ssl",
|
||||
"tls"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "consoletvs/charts",
|
||||
"version": "6.5.3",
|
||||
@@ -248,6 +306,262 @@
|
||||
],
|
||||
"description": "implementation of xdg base directory specification for php"
|
||||
},
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
"version": "1.10.0",
|
||||
"version_normalized": "1.10.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/cache.git",
|
||||
"reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/cache/zipball/382e7f4db9a12dc6c19431743a2b096041bcdd62",
|
||||
"reference": "382e7f4db9a12dc6c19431743a2b096041bcdd62",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "~7.1"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": ">2.2,<2.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"alcaeus/mongo-php-adapter": "^1.1",
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"mongodb/mongodb": "^1.1",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"predis/predis": "~1.0"
|
||||
},
|
||||
"suggest": {
|
||||
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
|
||||
},
|
||||
"time": "2019-11-29T15:36:20+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/cache.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"apcu",
|
||||
"cache",
|
||||
"caching",
|
||||
"couchdb",
|
||||
"memcached",
|
||||
"php",
|
||||
"redis",
|
||||
"xcache"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"version": "v2.10.0",
|
||||
"version_normalized": "2.10.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/dbal.git",
|
||||
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/dbal/zipball/0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
||||
"reference": "0c9a646775ef549eb0a213a4f9bd4381d9b4d934",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/cache": "^1.0",
|
||||
"doctrine/event-manager": "^1.0",
|
||||
"ext-pdo": "*",
|
||||
"php": "^7.2"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"jetbrains/phpstorm-stubs": "^2019.1",
|
||||
"phpstan/phpstan": "^0.11.3",
|
||||
"phpunit/phpunit": "^8.4.1",
|
||||
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"time": "2019-11-03T16:50:43+00:00",
|
||||
"bin": [
|
||||
"bin/doctrine-dbal"
|
||||
],
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.10.x-dev",
|
||||
"dev-develop": "3.0.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\DBAL\\": "lib/Doctrine/DBAL"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"database",
|
||||
"db2",
|
||||
"dbal",
|
||||
"mariadb",
|
||||
"mssql",
|
||||
"mysql",
|
||||
"oci8",
|
||||
"oracle",
|
||||
"pdo",
|
||||
"pgsql",
|
||||
"postgresql",
|
||||
"queryobject",
|
||||
"sasql",
|
||||
"sql",
|
||||
"sqlanywhere",
|
||||
"sqlite",
|
||||
"sqlserver",
|
||||
"sqlsrv"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "doctrine/event-manager",
|
||||
"version": "1.1.0",
|
||||
"version_normalized": "1.1.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/doctrine/event-manager.git",
|
||||
"reference": "629572819973f13486371cb611386eb17851e85c"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/doctrine/event-manager/zipball/629572819973f13486371cb611386eb17851e85c",
|
||||
"reference": "629572819973f13486371cb611386eb17851e85c",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": "^7.1"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": "<2.9@dev"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"phpunit/phpunit": "^7.0"
|
||||
},
|
||||
"time": "2019-11-10T09:48:07+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.0.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Doctrine\\Common\\": "lib/Doctrine/Common"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Guilherme Blanco",
|
||||
"email": "guilhermeblanco@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Roman Borschel",
|
||||
"email": "roman@code-factory.org"
|
||||
},
|
||||
{
|
||||
"name": "Benjamin Eberlei",
|
||||
"email": "kontakt@beberlei.de"
|
||||
},
|
||||
{
|
||||
"name": "Jonathan Wage",
|
||||
"email": "jonwage@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Johannes Schmitt",
|
||||
"email": "schmittjoh@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Marco Pivetta",
|
||||
"email": "ocramius@gmail.com"
|
||||
}
|
||||
],
|
||||
"description": "The Doctrine Event Manager is a simple PHP event system that was built to be used with the various Doctrine projects.",
|
||||
"homepage": "https://www.doctrine-project.org/projects/event-manager.html",
|
||||
"keywords": [
|
||||
"event",
|
||||
"event dispatcher",
|
||||
"event manager",
|
||||
"event system",
|
||||
"events"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "doctrine/inflector",
|
||||
"version": "1.3.1",
|
||||
@@ -1164,6 +1478,128 @@
|
||||
],
|
||||
"description": "Highlight PHP code in terminal"
|
||||
},
|
||||
{
|
||||
"name": "jaybizzle/crawler-detect",
|
||||
"version": "v1.2.90",
|
||||
"version_normalized": "1.2.90.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/JayBizzle/Crawler-Detect.git",
|
||||
"reference": "35f963386e6a189697fe4b14dc91fb42b17fda4b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/JayBizzle/Crawler-Detect/zipball/35f963386e6a189697fe4b14dc91fb42b17fda4b",
|
||||
"reference": "35f963386e6a189697fe4b14dc91fb42b17fda4b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "^4.8|^5.5|^6.5",
|
||||
"satooshi/php-coveralls": "1.*"
|
||||
},
|
||||
"time": "2019-12-08T20:03:27+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Jaybizzle\\CrawlerDetect\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Mark Beech",
|
||||
"email": "m@rkbee.ch",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "CrawlerDetect is a PHP class for detecting bots/crawlers/spiders via the user agent",
|
||||
"homepage": "https://github.com/JayBizzle/Crawler-Detect/",
|
||||
"keywords": [
|
||||
"crawler",
|
||||
"crawler detect",
|
||||
"crawler detector",
|
||||
"crawlerdetect",
|
||||
"php crawler detect"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "jenssegers/agent",
|
||||
"version": "v2.6.3",
|
||||
"version_normalized": "2.6.3.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/jenssegers/agent.git",
|
||||
"reference": "bcb895395e460478e101f41cdab139c48dc721ce"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/jenssegers/agent/zipball/bcb895395e460478e101f41cdab139c48dc721ce",
|
||||
"reference": "bcb895395e460478e101f41cdab139c48dc721ce",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"jaybizzle/crawler-detect": "^1.2",
|
||||
"mobiledetect/mobiledetectlib": "^2.7.6",
|
||||
"php": ">=5.6"
|
||||
},
|
||||
"require-dev": {
|
||||
"php-coveralls/php-coveralls": "^2.1",
|
||||
"phpunit/phpunit": "^5.0|^6.0|^7.0"
|
||||
},
|
||||
"suggest": {
|
||||
"illuminate/support": "^4.0|^5.0"
|
||||
},
|
||||
"time": "2019-01-19T21:32:55+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "3.0-dev"
|
||||
},
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"Jenssegers\\Agent\\AgentServiceProvider"
|
||||
],
|
||||
"aliases": {
|
||||
"Agent": "Jenssegers\\Agent\\Facades\\Agent"
|
||||
}
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"Jenssegers\\Agent\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Jens Segers",
|
||||
"homepage": "https://jenssegers.com"
|
||||
}
|
||||
],
|
||||
"description": "Desktop/mobile user agent parser with support for Laravel, based on Mobiledetect",
|
||||
"homepage": "https://github.com/jenssegers/agent",
|
||||
"keywords": [
|
||||
"Agent",
|
||||
"browser",
|
||||
"desktop",
|
||||
"laravel",
|
||||
"mobile",
|
||||
"platform",
|
||||
"user agent",
|
||||
"useragent"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "khill/lavacharts",
|
||||
"version": "3.1.12",
|
||||
@@ -1804,6 +2240,60 @@
|
||||
"twitter"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mobiledetect/mobiledetectlib",
|
||||
"version": "2.8.34",
|
||||
"version_normalized": "2.8.34.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/serbanghita/Mobile-Detect.git",
|
||||
"reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/serbanghita/Mobile-Detect/zipball/6f8113f57a508494ca36acbcfa2dc2d923c7ed5b",
|
||||
"reference": "6f8113f57a508494ca36acbcfa2dc2d923c7ed5b",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"php": ">=5.0.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "~4.8.35||~5.7"
|
||||
},
|
||||
"time": "2019-09-18T18:44:20+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"Mobile_Detect.php"
|
||||
],
|
||||
"psr-0": {
|
||||
"Detection": "namespaced/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Serban Ghita",
|
||||
"email": "serbanghita@gmail.com",
|
||||
"homepage": "http://mobiledetect.net",
|
||||
"role": "Developer"
|
||||
}
|
||||
],
|
||||
"description": "Mobile_Detect is a lightweight PHP class for detecting mobile devices. It uses the User-Agent string combined with specific HTTP headers to detect the mobile environment.",
|
||||
"homepage": "https://github.com/serbanghita/Mobile-Detect",
|
||||
"keywords": [
|
||||
"detect mobile devices",
|
||||
"mobile",
|
||||
"mobile detect",
|
||||
"mobile detector",
|
||||
"php mobile detect"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "mockery/mockery",
|
||||
"version": "1.3.0",
|
||||
@@ -3036,6 +3526,196 @@
|
||||
"xunit"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pragmarx/datatables",
|
||||
"version": "v1.4.12",
|
||||
"version_normalized": "1.4.12.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/antonioribeiro/laravel4-datatables-package.git",
|
||||
"reference": "142631346d01c074248b80c8bc55fdfea255e23e"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/antonioribeiro/laravel4-datatables-package/zipball/142631346d01c074248b80c8bc55fdfea255e23e",
|
||||
"reference": "142631346d01c074248b80c8bc55fdfea255e23e",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/database": ">=4.0.0",
|
||||
"illuminate/filesystem": ">=4.0.0",
|
||||
"illuminate/support": ">=4.0.0",
|
||||
"illuminate/view": ">=4.0.0",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"laravel/laravel": ">=4.0.0",
|
||||
"mockery/mockery": "0.7.2",
|
||||
"phpunit/phpunit": "3.7.*"
|
||||
},
|
||||
"time": "2019-09-13T13:59:39+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"src/migrations"
|
||||
],
|
||||
"psr-0": {
|
||||
"Bllim\\Datatables": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Bilal Gultekin",
|
||||
"email": "bilal@bilal.im"
|
||||
}
|
||||
],
|
||||
"description": "Server-side handler of DataTables Jquery Plugin for Laravel 4",
|
||||
"keywords": [
|
||||
"datatable",
|
||||
"datatables",
|
||||
"datatables jquery plugin",
|
||||
"laravel",
|
||||
"laravel4"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pragmarx/support",
|
||||
"version": "v0.9.0",
|
||||
"version_normalized": "0.9.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/antonioribeiro/support.git",
|
||||
"reference": "97d12bc8d29c35a509973f8f898f3d4d1eaf3777"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/antonioribeiro/support/zipball/97d12bc8d29c35a509973f8f898f3d4d1eaf3777",
|
||||
"reference": "97d12bc8d29c35a509973f8f898f3d4d1eaf3777",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"illuminate/filesystem": "~4.0|~5.0|~6.0",
|
||||
"php": ">=5.4.0",
|
||||
"symfony/var-dumper": "~2.6|~3.0|~4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"laravel/framework": "Laravel framework.",
|
||||
"symfony/yaml": "The Yaml class needs it"
|
||||
},
|
||||
"time": "2019-09-10T21:17:26+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "0.7.x-dev"
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PragmaRX\\Support\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"BSD-3-Clause"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Antonio Carlos Ribeiro",
|
||||
"email": "acr@antoniocarlosribeiro.com",
|
||||
"role": "Creator"
|
||||
}
|
||||
],
|
||||
"description": "PragmaRX components support package",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"pragmarx"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "pragmarx/tracker",
|
||||
"version": "v3.5.0",
|
||||
"version_normalized": "3.5.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/antonioribeiro/tracker.git",
|
||||
"reference": "76e8e7fa058c6b1c15fea4b2ffa5169ae087d6f7"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/antonioribeiro/tracker/zipball/76e8e7fa058c6b1c15fea4b2ffa5169ae087d6f7",
|
||||
"reference": "76e8e7fa058c6b1c15fea4b2ffa5169ae087d6f7",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"doctrine/dbal": "^2.6",
|
||||
"jaybizzle/crawler-detect": "~1.0",
|
||||
"jenssegers/agent": "~2.1",
|
||||
"laravel/framework": "~4|~5|~6",
|
||||
"php": ">=5.3.7",
|
||||
"pragmarx/datatables": "^1.4.12",
|
||||
"pragmarx/support": "~0.6|~0.7|~0.8|~0.9",
|
||||
"psr/log": "~1.0",
|
||||
"ramsey/uuid": "~3",
|
||||
"snowplow/referer-parser": "~0.1",
|
||||
"ua-parser/uap-php": "~3.4"
|
||||
},
|
||||
"require-dev": {
|
||||
"mockery/mockery": "~0.8"
|
||||
},
|
||||
"suggest": {
|
||||
"geoip/geoip": "~1.14",
|
||||
"geoip2/geoip2": "~2.0"
|
||||
},
|
||||
"time": "2019-10-01T17:58:07+00:00",
|
||||
"type": "library",
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.1.x-dev"
|
||||
},
|
||||
"laravel": {
|
||||
"providers": [
|
||||
"PragmaRX\\Tracker\\Vendor\\Laravel\\ServiceProvider"
|
||||
],
|
||||
"aliases": {
|
||||
"Tracker": "PragmaRX\\Tracker\\Vendor\\Laravel\\Facade"
|
||||
}
|
||||
}
|
||||
},
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"PragmaRX\\Tracker\\": "src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Antonio Carlos Ribeiro",
|
||||
"email": "acr@antoniocarlosribeiro.com",
|
||||
"role": "Creator & Designer"
|
||||
}
|
||||
],
|
||||
"description": "A Laravel Visitor Tracker",
|
||||
"keywords": [
|
||||
"laravel",
|
||||
"logging",
|
||||
"mobile detection",
|
||||
"pragmarx",
|
||||
"tracker",
|
||||
"tracking",
|
||||
"user agent",
|
||||
"visitor"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "predis/predis",
|
||||
"version": "v1.1.1",
|
||||
@@ -4085,6 +4765,48 @@
|
||||
"description": "Library that helps with managing the version number of Git-hosted PHP projects",
|
||||
"homepage": "https://github.com/sebastianbergmann/version"
|
||||
},
|
||||
{
|
||||
"name": "snowplow/referer-parser",
|
||||
"version": "0.2.0",
|
||||
"version_normalized": "0.2.0.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/snowplow/referer-parser.git",
|
||||
"reference": "5ce872b60999c63039723959a45928ef1196f03d"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/snowplow/referer-parser/zipball/5ce872b60999c63039723959a45928ef1196f03d",
|
||||
"reference": "5ce872b60999c63039723959a45928ef1196f03d",
|
||||
"shasum": ""
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "3.*",
|
||||
"symfony/yaml": "*"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/yaml": "Support for YAML configuration file"
|
||||
},
|
||||
"time": "2016-01-29T16:43:00+00:00",
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-0": {
|
||||
"Snowplow\\RefererParser": "php/src/"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Lars Strojny",
|
||||
"email": "lars@strojny.net"
|
||||
}
|
||||
],
|
||||
"description": "Snowplow Refer(r)er parser for PHP"
|
||||
},
|
||||
{
|
||||
"name": "swiftmailer/swiftmailer",
|
||||
"version": "v6.2.3",
|
||||
@@ -5707,6 +6429,65 @@
|
||||
"web"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "ua-parser/uap-php",
|
||||
"version": "v3.9.2",
|
||||
"version_normalized": "3.9.2.0",
|
||||
"source": {
|
||||
"type": "git",
|
||||
"url": "https://github.com/ua-parser/uap-php.git",
|
||||
"reference": "eb9c78aeb3984e5834c4f3845e7263dbe4277935"
|
||||
},
|
||||
"dist": {
|
||||
"type": "zip",
|
||||
"url": "https://api.github.com/repos/ua-parser/uap-php/zipball/eb9c78aeb3984e5834c4f3845e7263dbe4277935",
|
||||
"reference": "eb9c78aeb3984e5834c4f3845e7263dbe4277935",
|
||||
"shasum": ""
|
||||
},
|
||||
"require": {
|
||||
"composer/ca-bundle": "^1.1",
|
||||
"php": ">=5.3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"phpunit/phpunit": "<8",
|
||||
"symfony/console": "^2.0 || ^3.0 || ^4.0",
|
||||
"symfony/filesystem": "^2.0 || ^3.0 || ^4.0",
|
||||
"symfony/finder": "^2.0 || ^3.0 || ^4.0",
|
||||
"symfony/yaml": "^2.0 || ^3.0 || ^4.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "Required for CLI usage - ^2.0 || ^3.0 || ^4.0",
|
||||
"symfony/filesystem": "Required for CLI usage - 2.0 || ^3.0 || ^4.0",
|
||||
"symfony/finder": "Required for CLI usage - ^2.0 || ^3.0 || ^4.0",
|
||||
"symfony/yaml": "Required for CLI usage - ^4.0 || ^5.0"
|
||||
},
|
||||
"time": "2019-11-06T11:37:45+00:00",
|
||||
"bin": [
|
||||
"bin/uaparser"
|
||||
],
|
||||
"type": "library",
|
||||
"installation-source": "dist",
|
||||
"autoload": {
|
||||
"psr-4": {
|
||||
"UAParser\\": "src"
|
||||
}
|
||||
},
|
||||
"notification-url": "https://packagist.org/downloads/",
|
||||
"license": [
|
||||
"MIT"
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"name": "Dave Olsen",
|
||||
"email": "dmolsen@gmail.com"
|
||||
},
|
||||
{
|
||||
"name": "Lars Strojny",
|
||||
"email": "lars@strojny.net"
|
||||
}
|
||||
],
|
||||
"description": "A multi-language port of Browserscope's user agent parser."
|
||||
},
|
||||
{
|
||||
"name": "vlucas/phpdotenv",
|
||||
"version": "v3.6.0",
|
||||
|
||||
19
vendor/doctrine/cache/LICENSE
vendored
Normal file
19
vendor/doctrine/cache/LICENSE
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2006-2015 Doctrine Project
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
10
vendor/doctrine/cache/README.md
vendored
Normal file
10
vendor/doctrine/cache/README.md
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
# Doctrine Cache
|
||||
|
||||
[](http://travis-ci.org/doctrine/cache)
|
||||
[](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
|
||||
[](https://scrutinizer-ci.com/g/doctrine/cache/?branch=master)
|
||||
|
||||
[](https://packagist.org/packages/doctrine/cache)
|
||||
[](https://packagist.org/packages/doctrine/cache)
|
||||
|
||||
Cache component extracted from the Doctrine Common project. [Documentation](https://www.doctrine-project.org/projects/doctrine-orm/en/current/reference/caching.html)
|
||||
16
vendor/doctrine/cache/UPGRADE.md
vendored
Normal file
16
vendor/doctrine/cache/UPGRADE.md
vendored
Normal file
@@ -0,0 +1,16 @@
|
||||
# Upgrade to 1.4
|
||||
|
||||
## Minor BC Break: `Doctrine\Common\Cache\FileCache#$extension` is now `private`.
|
||||
|
||||
If you need to override the value of `Doctrine\Common\Cache\FileCache#$extension`, then use the
|
||||
second parameter of `Doctrine\Common\Cache\FileCache#__construct()` instead of overriding
|
||||
the property in your own implementation.
|
||||
|
||||
## Minor BC Break: file based caches paths changed
|
||||
|
||||
`Doctrine\Common\Cache\FileCache`, `Doctrine\Common\Cache\PhpFileCache` and
|
||||
`Doctrine\Common\Cache\FilesystemCache` are using a different cache paths structure.
|
||||
|
||||
If you rely on warmed up caches for deployments, consider that caches generated
|
||||
with `doctrine/cache` `<1.4` are not compatible with the new directory structure,
|
||||
and will be ignored.
|
||||
52
vendor/doctrine/cache/composer.json
vendored
Normal file
52
vendor/doctrine/cache/composer.json
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
{
|
||||
"name": "doctrine/cache",
|
||||
"type": "library",
|
||||
"description": "PHP Doctrine Cache library is a popular cache implementation that supports many different drivers such as redis, memcache, apc, mongodb and others.",
|
||||
"keywords": [
|
||||
"php",
|
||||
"cache",
|
||||
"caching",
|
||||
"abstraction",
|
||||
"redis",
|
||||
"memcached",
|
||||
"couchdb",
|
||||
"xcache",
|
||||
"apcu"
|
||||
],
|
||||
"homepage": "https://www.doctrine-project.org/projects/cache.html",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
||||
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
||||
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
||||
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"},
|
||||
{"name": "Johannes Schmitt", "email": "schmittjoh@gmail.com"}
|
||||
],
|
||||
"require": {
|
||||
"php": "~7.1"
|
||||
},
|
||||
"require-dev": {
|
||||
"alcaeus/mongo-php-adapter": "^1.1",
|
||||
"mongodb/mongodb": "^1.1",
|
||||
"phpunit/phpunit": "^7.0",
|
||||
"predis/predis": "~1.0",
|
||||
"doctrine/coding-standard": "^6.0"
|
||||
},
|
||||
"suggest": {
|
||||
"alcaeus/mongo-php-adapter": "Required to use legacy MongoDB driver"
|
||||
},
|
||||
"conflict": {
|
||||
"doctrine/common": ">2.2,<2.4"
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache" }
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": { "Doctrine\\Tests\\": "tests/Doctrine/Tests" }
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "1.9.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
105
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
vendored
Normal file
105
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcCache.php
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use const PHP_VERSION_ID;
|
||||
use function apc_cache_info;
|
||||
use function apc_clear_cache;
|
||||
use function apc_delete;
|
||||
use function apc_exists;
|
||||
use function apc_fetch;
|
||||
use function apc_sma_info;
|
||||
use function apc_store;
|
||||
|
||||
/**
|
||||
* APC cache provider.
|
||||
*
|
||||
* @deprecated since version 1.6, use ApcuCache instead
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class ApcCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return apc_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return apc_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return apc_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// apc_delete returns false if the id does not exist
|
||||
return apc_delete($id) || ! apc_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return apc_clear_cache() && apc_clear_cache('user');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return apc_fetch($keys) ?: [];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = apc_store($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = apc_cache_info('', true);
|
||||
$sma = apc_sma_info();
|
||||
|
||||
// @TODO - Temporary fix @see https://github.com/krakjoe/apcu/pull/42
|
||||
if (PHP_VERSION_ID >= 50500) {
|
||||
$info['num_hits'] = $info['num_hits'] ?? $info['nhits'];
|
||||
$info['num_misses'] = $info['num_misses'] ?? $info['nmisses'];
|
||||
$info['start_time'] = $info['start_time'] ?? $info['stime'];
|
||||
}
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['num_hits'],
|
||||
Cache::STATS_MISSES => $info['num_misses'],
|
||||
Cache::STATS_UPTIME => $info['start_time'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
||||
];
|
||||
}
|
||||
}
|
||||
106
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php
vendored
Normal file
106
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ApcuCache.php
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function apcu_cache_info;
|
||||
use function apcu_clear_cache;
|
||||
use function apcu_delete;
|
||||
use function apcu_exists;
|
||||
use function apcu_fetch;
|
||||
use function apcu_sma_info;
|
||||
use function apcu_store;
|
||||
use function count;
|
||||
|
||||
/**
|
||||
* APCu cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class ApcuCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return apcu_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return apcu_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return apcu_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// apcu_delete returns false if the id does not exist
|
||||
return apcu_delete($id) || ! apcu_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
$result = apcu_delete($keys);
|
||||
|
||||
return $result !== false && count($result) !== count($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return apcu_clear_cache();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return apcu_fetch($keys) ?: [];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = apcu_store($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = apcu_cache_info(true);
|
||||
$sma = apcu_sma_info();
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['num_hits'],
|
||||
Cache::STATS_MISSES => $info['num_misses'],
|
||||
Cache::STATS_UPTIME => $info['start_time'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['mem_size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $sma['avail_mem'],
|
||||
];
|
||||
}
|
||||
}
|
||||
113
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
vendored
Normal file
113
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ArrayCache.php
vendored
Normal file
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function time;
|
||||
|
||||
/**
|
||||
* Array cache driver.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class ArrayCache extends CacheProvider
|
||||
{
|
||||
/** @var array[] $data each element being a tuple of [$data, $expiration], where the expiration is int|bool */
|
||||
private $data = [];
|
||||
|
||||
/** @var int */
|
||||
private $hitsCount = 0;
|
||||
|
||||
/** @var int */
|
||||
private $missesCount = 0;
|
||||
|
||||
/** @var int */
|
||||
private $upTime;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->upTime = time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
if (! $this->doContains($id)) {
|
||||
$this->missesCount += 1;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->hitsCount += 1;
|
||||
|
||||
return $this->data[$id][0];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
if (! isset($this->data[$id])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$expiration = $this->data[$id][1];
|
||||
|
||||
if ($expiration && $expiration < time()) {
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$this->data[$id] = [$data, $lifeTime ? time() + $lifeTime : false];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
unset($this->data[$id]);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$this->data = [];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return [
|
||||
Cache::STATS_HITS => $this->hitsCount,
|
||||
Cache::STATS_MISSES => $this->missesCount,
|
||||
Cache::STATS_UPTIME => $this->upTime,
|
||||
Cache::STATS_MEMORY_USAGE => null,
|
||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
||||
];
|
||||
}
|
||||
}
|
||||
90
vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
vendored
Normal file
90
vendor/doctrine/cache/lib/Doctrine/Common/Cache/Cache.php
vendored
Normal file
@@ -0,0 +1,90 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface Cache
|
||||
{
|
||||
public const STATS_HITS = 'hits';
|
||||
public const STATS_MISSES = 'misses';
|
||||
public const STATS_UPTIME = 'uptime';
|
||||
public const STATS_MEMORY_USAGE = 'memory_usage';
|
||||
public const STATS_MEMORY_AVAILABLE = 'memory_available';
|
||||
/**
|
||||
* Only for backward compatibility (may be removed in next major release)
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public const STATS_MEMORY_AVAILIABLE = 'memory_available';
|
||||
|
||||
/**
|
||||
* Fetches an entry from the cache.
|
||||
*
|
||||
* @param string $id The id of the cache entry to fetch.
|
||||
*
|
||||
* @return mixed The cached data or FALSE, if no cache entry exists for the given id.
|
||||
*/
|
||||
public function fetch($id);
|
||||
|
||||
/**
|
||||
* Tests if an entry exists in the cache.
|
||||
*
|
||||
* @param string $id The cache id of the entry to check for.
|
||||
*
|
||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
||||
*/
|
||||
public function contains($id);
|
||||
|
||||
/**
|
||||
* Puts data into the cache.
|
||||
*
|
||||
* If a cache entry with the given id already exists, its data will be replaced.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
* @param mixed $data The cache entry/data.
|
||||
* @param int $lifeTime The lifetime in number of seconds for this cache entry.
|
||||
* If zero (the default), the entry never expires (although it may be deleted from the cache
|
||||
* to make place for other entries).
|
||||
*
|
||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
||||
*/
|
||||
public function save($id, $data, $lifeTime = 0);
|
||||
|
||||
/**
|
||||
* Deletes a cache entry.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
*
|
||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
||||
* Deleting a non-existing entry is considered successful.
|
||||
*/
|
||||
public function delete($id);
|
||||
|
||||
/**
|
||||
* Retrieves cached information from the data store.
|
||||
*
|
||||
* The server's statistics array has the following values:
|
||||
*
|
||||
* - <b>hits</b>
|
||||
* Number of keys that have been requested and found present.
|
||||
*
|
||||
* - <b>misses</b>
|
||||
* Number of items that have been requested and not found.
|
||||
*
|
||||
* - <b>uptime</b>
|
||||
* Time that the server is running.
|
||||
*
|
||||
* - <b>memory_usage</b>
|
||||
* Memory used by this server to store items.
|
||||
*
|
||||
* - <b>memory_available</b>
|
||||
* Memory allowed to use for storage.
|
||||
*
|
||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
||||
*/
|
||||
public function getStats();
|
||||
}
|
||||
325
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
vendored
Normal file
325
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CacheProvider.php
vendored
Normal file
@@ -0,0 +1,325 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function array_combine;
|
||||
use function array_key_exists;
|
||||
use function array_map;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Base class for cache provider implementations.
|
||||
*/
|
||||
abstract class CacheProvider implements Cache, FlushableCache, ClearableCache, MultiOperationCache
|
||||
{
|
||||
public const DOCTRINE_NAMESPACE_CACHEKEY = 'DoctrineNamespaceCacheKey[%s]';
|
||||
|
||||
/**
|
||||
* The namespace to prefix all cache ids with.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $namespace = '';
|
||||
|
||||
/**
|
||||
* The namespace version.
|
||||
*
|
||||
* @var int|null
|
||||
*/
|
||||
private $namespaceVersion;
|
||||
|
||||
/**
|
||||
* Sets the namespace to prefix all cache ids with.
|
||||
*
|
||||
* @param string $namespace
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
$this->namespace = (string) $namespace;
|
||||
$this->namespaceVersion = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the namespace that prefixes all cache ids.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNamespace()
|
||||
{
|
||||
return $this->namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($id)
|
||||
{
|
||||
return $this->doFetch($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchMultiple(array $keys)
|
||||
{
|
||||
if (empty($keys)) {
|
||||
return [];
|
||||
}
|
||||
|
||||
// note: the array_combine() is in place to keep an association between our $keys and the $namespacedKeys
|
||||
$namespacedKeys = array_combine($keys, array_map([$this, 'getNamespacedId'], $keys));
|
||||
$items = $this->doFetchMultiple($namespacedKeys);
|
||||
$foundItems = [];
|
||||
|
||||
// no internal array function supports this sort of mapping: needs to be iterative
|
||||
// this filters and combines keys in one pass
|
||||
foreach ($namespacedKeys as $requestedKey => $namespacedKey) {
|
||||
if (! isset($items[$namespacedKey]) && ! array_key_exists($namespacedKey, $items)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$foundItems[$requestedKey] = $items[$namespacedKey];
|
||||
}
|
||||
|
||||
return $foundItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function saveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$namespacedKeysAndValues = [];
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
$namespacedKeysAndValues[$this->getNamespacedId($key)] = $value;
|
||||
}
|
||||
|
||||
return $this->doSaveMultiple($namespacedKeysAndValues, $lifetime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function contains($id)
|
||||
{
|
||||
return $this->doContains($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function save($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return $this->doSave($this->getNamespacedId($id), $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function deleteMultiple(array $keys)
|
||||
{
|
||||
return $this->doDeleteMultiple(array_map([$this, 'getNamespacedId'], $keys));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function delete($id)
|
||||
{
|
||||
return $this->doDelete($this->getNamespacedId($id));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getStats()
|
||||
{
|
||||
return $this->doGetStats();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function flushAll()
|
||||
{
|
||||
return $this->doFlush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function deleteAll()
|
||||
{
|
||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
||||
$namespaceVersion = $this->getNamespaceVersion() + 1;
|
||||
|
||||
if ($this->doSave($namespaceCacheKey, $namespaceVersion)) {
|
||||
$this->namespaceVersion = $namespaceVersion;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Prefixes the passed id with the configured namespace value.
|
||||
*
|
||||
* @param string $id The id to namespace.
|
||||
*
|
||||
* @return string The namespaced id.
|
||||
*/
|
||||
private function getNamespacedId(string $id) : string
|
||||
{
|
||||
$namespaceVersion = $this->getNamespaceVersion();
|
||||
|
||||
return sprintf('%s[%s][%s]', $this->namespace, $id, $namespaceVersion);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the namespace cache key.
|
||||
*/
|
||||
private function getNamespaceCacheKey() : string
|
||||
{
|
||||
return sprintf(self::DOCTRINE_NAMESPACE_CACHEKEY, $this->namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the namespace version.
|
||||
*/
|
||||
private function getNamespaceVersion() : int
|
||||
{
|
||||
if ($this->namespaceVersion !== null) {
|
||||
return $this->namespaceVersion;
|
||||
}
|
||||
|
||||
$namespaceCacheKey = $this->getNamespaceCacheKey();
|
||||
$this->namespaceVersion = (int) $this->doFetch($namespaceCacheKey) ?: 1;
|
||||
|
||||
return $this->namespaceVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Default implementation of doFetchMultiple. Each driver that supports multi-get should owerwrite it.
|
||||
*
|
||||
* @param array $keys Array of keys to retrieve from cache
|
||||
*
|
||||
* @return array Array of values retrieved for the given keys.
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$returnValues = [];
|
||||
|
||||
foreach ($keys as $key) {
|
||||
$item = $this->doFetch($key);
|
||||
if ($item === false && ! $this->doContains($key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$returnValues[$key] = $item;
|
||||
}
|
||||
|
||||
return $returnValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches an entry from the cache.
|
||||
*
|
||||
* @param string $id The id of the cache entry to fetch.
|
||||
*
|
||||
* @return mixed|false The cached data or FALSE, if no cache entry exists for the given id.
|
||||
*/
|
||||
abstract protected function doFetch($id);
|
||||
|
||||
/**
|
||||
* Tests if an entry exists in the cache.
|
||||
*
|
||||
* @param string $id The cache id of the entry to check for.
|
||||
*
|
||||
* @return bool TRUE if a cache entry exists for the given cache id, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doContains($id);
|
||||
|
||||
/**
|
||||
* Default implementation of doSaveMultiple. Each driver that supports multi-put should override it.
|
||||
*
|
||||
* @param array $keysAndValues Array of keys and values to save in cache
|
||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
||||
* cache entries (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$success = true;
|
||||
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
if ($this->doSave($key, $value, $lifetime)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$success = false;
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
/**
|
||||
* Puts data into the cache.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
* @param string $data The cache entry/data.
|
||||
* @param int $lifeTime The lifetime. If != 0, sets a specific lifetime for this
|
||||
* cache entry (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the entry was successfully stored in the cache, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doSave($id, $data, $lifeTime = 0);
|
||||
|
||||
/**
|
||||
* Default implementation of doDeleteMultiple. Each driver that supports multi-delete should override it.
|
||||
*
|
||||
* @param array $keys Array of keys to delete from cache
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
$success = true;
|
||||
|
||||
foreach ($keys as $key) {
|
||||
if ($this->doDelete($key)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$success = false;
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
/**
|
||||
* Deletes a cache entry.
|
||||
*
|
||||
* @param string $id The cache id.
|
||||
*
|
||||
* @return bool TRUE if the cache entry was successfully deleted, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doDelete($id);
|
||||
|
||||
/**
|
||||
* Flushes all cache entries.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
||||
*/
|
||||
abstract protected function doFlush();
|
||||
|
||||
/**
|
||||
* Retrieves cached information from the data store.
|
||||
*
|
||||
* @return array|null An associative array with server's statistics if available, NULL otherwise.
|
||||
*/
|
||||
abstract protected function doGetStats();
|
||||
}
|
||||
187
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php
vendored
Normal file
187
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ChainCache.php
vendored
Normal file
@@ -0,0 +1,187 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Traversable;
|
||||
use function array_values;
|
||||
use function count;
|
||||
use function iterator_to_array;
|
||||
|
||||
/**
|
||||
* Cache provider that allows to easily chain multiple cache providers
|
||||
*/
|
||||
class ChainCache extends CacheProvider
|
||||
{
|
||||
/** @var CacheProvider[] */
|
||||
private $cacheProviders = [];
|
||||
|
||||
/**
|
||||
* @param CacheProvider[] $cacheProviders
|
||||
*/
|
||||
public function __construct($cacheProviders = [])
|
||||
{
|
||||
$this->cacheProviders = $cacheProviders instanceof Traversable
|
||||
? iterator_to_array($cacheProviders, false)
|
||||
: array_values($cacheProviders);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
parent::setNamespace($namespace);
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$cacheProvider->setNamespace($namespace);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
foreach ($this->cacheProviders as $key => $cacheProvider) {
|
||||
if ($cacheProvider->doContains($id)) {
|
||||
$value = $cacheProvider->doFetch($id);
|
||||
|
||||
// We populate all the previous cache layers (that are assumed to be faster)
|
||||
for ($subKey = $key - 1; $subKey >= 0; $subKey--) {
|
||||
$this->cacheProviders[$subKey]->doSave($id, $value);
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
/** @var CacheProvider[] $traversedProviders */
|
||||
$traversedProviders = [];
|
||||
$keysCount = count($keys);
|
||||
$fetchedValues = [];
|
||||
|
||||
foreach ($this->cacheProviders as $key => $cacheProvider) {
|
||||
$fetchedValues = $cacheProvider->doFetchMultiple($keys);
|
||||
|
||||
// We populate all the previous cache layers (that are assumed to be faster)
|
||||
if (count($fetchedValues) === $keysCount) {
|
||||
foreach ($traversedProviders as $previousCacheProvider) {
|
||||
$previousCacheProvider->doSaveMultiple($fetchedValues);
|
||||
}
|
||||
|
||||
return $fetchedValues;
|
||||
}
|
||||
|
||||
$traversedProviders[] = $cacheProvider;
|
||||
}
|
||||
|
||||
return $fetchedValues;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
if ($cacheProvider->doContains($id)) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$stored = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$stored = $cacheProvider->doSave($id, $data, $lifeTime) && $stored;
|
||||
}
|
||||
|
||||
return $stored;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$stored = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$stored = $cacheProvider->doSaveMultiple($keysAndValues, $lifetime) && $stored;
|
||||
}
|
||||
|
||||
return $stored;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$deleted = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$deleted = $cacheProvider->doDelete($id) && $deleted;
|
||||
}
|
||||
|
||||
return $deleted;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
$deleted = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$deleted = $cacheProvider->doDeleteMultiple($keys) && $deleted;
|
||||
}
|
||||
|
||||
return $deleted;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$flushed = true;
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$flushed = $cacheProvider->doFlush() && $flushed;
|
||||
}
|
||||
|
||||
return $flushed;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
// We return all the stats from all adapters
|
||||
$stats = [];
|
||||
|
||||
foreach ($this->cacheProviders as $cacheProvider) {
|
||||
$stats[] = $cacheProvider->doGetStats();
|
||||
}
|
||||
|
||||
return $stats;
|
||||
}
|
||||
}
|
||||
21
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php
vendored
Normal file
21
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ClearableCache.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache that can be flushed.
|
||||
*
|
||||
* Intended to be used for partial clearing of a cache namespace. For a more
|
||||
* global "flushing", see {@see FlushableCache}.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface ClearableCache
|
||||
{
|
||||
/**
|
||||
* Deletes all cache entries in the current cache namespace.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully deleted, FALSE otherwise.
|
||||
*/
|
||||
public function deleteAll();
|
||||
}
|
||||
197
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php
vendored
Normal file
197
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseBucketCache.php
vendored
Normal file
@@ -0,0 +1,197 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Couchbase\Bucket;
|
||||
use Couchbase\Document;
|
||||
use Couchbase\Exception;
|
||||
use RuntimeException;
|
||||
use function phpversion;
|
||||
use function serialize;
|
||||
use function sprintf;
|
||||
use function substr;
|
||||
use function time;
|
||||
use function unserialize;
|
||||
use function version_compare;
|
||||
|
||||
/**
|
||||
* Couchbase ^2.3.0 cache provider.
|
||||
*/
|
||||
final class CouchbaseBucketCache extends CacheProvider
|
||||
{
|
||||
private const MINIMUM_VERSION = '2.3.0';
|
||||
|
||||
private const KEY_NOT_FOUND = 13;
|
||||
|
||||
private const MAX_KEY_LENGTH = 250;
|
||||
|
||||
private const THIRTY_DAYS_IN_SECONDS = 2592000;
|
||||
|
||||
/** @var Bucket */
|
||||
private $bucket;
|
||||
|
||||
public function __construct(Bucket $bucket)
|
||||
{
|
||||
if (version_compare(phpversion('couchbase'), self::MINIMUM_VERSION) < 0) {
|
||||
// Manager is required to flush cache and pull stats.
|
||||
throw new RuntimeException(sprintf('ext-couchbase:^%s is required.', self::MINIMUM_VERSION));
|
||||
}
|
||||
|
||||
$this->bucket = $bucket;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$id = $this->normalizeKey($id);
|
||||
|
||||
try {
|
||||
$document = $this->bucket->get($id);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($document instanceof Document && $document->value !== false) {
|
||||
return unserialize($document->value);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$id = $this->normalizeKey($id);
|
||||
|
||||
try {
|
||||
$document = $this->bucket->get($id);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($document instanceof Document) {
|
||||
return ! $document->error;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$id = $this->normalizeKey($id);
|
||||
|
||||
$lifeTime = $this->normalizeExpiry($lifeTime);
|
||||
|
||||
try {
|
||||
$encoded = serialize($data);
|
||||
|
||||
$document = $this->bucket->upsert($id, $encoded, [
|
||||
'expiry' => (int) $lifeTime,
|
||||
]);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($document instanceof Document) {
|
||||
return ! $document->error;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$id = $this->normalizeKey($id);
|
||||
|
||||
try {
|
||||
$document = $this->bucket->remove($id);
|
||||
} catch (Exception $e) {
|
||||
return $e->getCode() === self::KEY_NOT_FOUND;
|
||||
}
|
||||
|
||||
if ($document instanceof Document) {
|
||||
return ! $document->error;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$manager = $this->bucket->manager();
|
||||
|
||||
// Flush does not return with success or failure, and must be enabled per bucket on the server.
|
||||
// Store a marker item so that we will know if it was successful.
|
||||
$this->doSave(__METHOD__, true, 60);
|
||||
|
||||
$manager->flush();
|
||||
|
||||
if ($this->doContains(__METHOD__)) {
|
||||
$this->doDelete(__METHOD__);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$manager = $this->bucket->manager();
|
||||
$stats = $manager->info();
|
||||
$nodes = $stats['nodes'];
|
||||
$node = $nodes[0];
|
||||
$interestingStats = $node['interestingStats'];
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $interestingStats['get_hits'],
|
||||
Cache::STATS_MISSES => $interestingStats['cmd_get'] - $interestingStats['get_hits'],
|
||||
Cache::STATS_UPTIME => $node['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $interestingStats['mem_used'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $node['memoryFree'],
|
||||
];
|
||||
}
|
||||
|
||||
private function normalizeKey(string $id) : string
|
||||
{
|
||||
$normalized = substr($id, 0, self::MAX_KEY_LENGTH);
|
||||
|
||||
if ($normalized === false) {
|
||||
return $id;
|
||||
}
|
||||
|
||||
return $normalized;
|
||||
}
|
||||
|
||||
/**
|
||||
* Expiry treated as a unix timestamp instead of an offset if expiry is greater than 30 days.
|
||||
*
|
||||
* @src https://developer.couchbase.com/documentation/server/4.1/developer-guide/expiry.html
|
||||
*/
|
||||
private function normalizeExpiry(int $expiry) : int
|
||||
{
|
||||
if ($expiry > self::THIRTY_DAYS_IN_SECONDS) {
|
||||
return time() + $expiry;
|
||||
}
|
||||
|
||||
return $expiry;
|
||||
}
|
||||
}
|
||||
105
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
vendored
Normal file
105
vendor/doctrine/cache/lib/Doctrine/Common/Cache/CouchbaseCache.php
vendored
Normal file
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Couchbase;
|
||||
use function explode;
|
||||
use function time;
|
||||
|
||||
/**
|
||||
* Couchbase cache provider.
|
||||
*
|
||||
* @deprecated Couchbase SDK 1.x is now deprecated. Use \Doctrine\Common\Cache\CouchbaseBucketCache instead.
|
||||
* https://developer.couchbase.com/documentation/server/current/sdk/php/compatibility-versions-features.html
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class CouchbaseCache extends CacheProvider
|
||||
{
|
||||
/** @var Couchbase|null */
|
||||
private $couchbase;
|
||||
|
||||
/**
|
||||
* Sets the Couchbase instance to use.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setCouchbase(Couchbase $couchbase)
|
||||
{
|
||||
$this->couchbase = $couchbase;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Couchbase instance used by the cache.
|
||||
*
|
||||
* @return Couchbase|null
|
||||
*/
|
||||
public function getCouchbase()
|
||||
{
|
||||
return $this->couchbase;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->couchbase->get($id) ?: false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return $this->couchbase->get($id) !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
return $this->couchbase->set($id, $data, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->couchbase->delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->couchbase->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->couchbase->getStats();
|
||||
$servers = $this->couchbase->getServers();
|
||||
$server = explode(':', $servers[0]);
|
||||
$key = $server[0] . ':11210';
|
||||
$stats = $stats[$key];
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
];
|
||||
}
|
||||
}
|
||||
198
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php
vendored
Normal file
198
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ExtMongoDBCache.php
vendored
Normal file
@@ -0,0 +1,198 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use DateTime;
|
||||
use MongoDB\BSON\Binary;
|
||||
use MongoDB\BSON\UTCDateTime;
|
||||
use MongoDB\Collection;
|
||||
use MongoDB\Database;
|
||||
use MongoDB\Driver\Exception\Exception;
|
||||
use MongoDB\Model\BSONDocument;
|
||||
use function serialize;
|
||||
use function time;
|
||||
use function unserialize;
|
||||
|
||||
/**
|
||||
* MongoDB cache provider for ext-mongodb
|
||||
*
|
||||
* @internal Do not use - will be removed in 2.0. Use MongoDBCache instead
|
||||
*/
|
||||
class ExtMongoDBCache extends CacheProvider
|
||||
{
|
||||
/** @var Database */
|
||||
private $database;
|
||||
|
||||
/** @var Collection */
|
||||
private $collection;
|
||||
|
||||
/** @var bool */
|
||||
private $expirationIndexCreated = false;
|
||||
|
||||
/**
|
||||
* This provider will default to the write concern and read preference
|
||||
* options set on the Database instance (or inherited from MongoDB or
|
||||
* Client). Using an unacknowledged write concern (< 1) may make the return
|
||||
* values of delete() and save() unreliable. Reading from secondaries may
|
||||
* make contain() and fetch() unreliable.
|
||||
*
|
||||
* @see http://www.php.net/manual/en/mongo.readpreferences.php
|
||||
* @see http://www.php.net/manual/en/mongo.writeconcerns.php
|
||||
*/
|
||||
public function __construct(Collection $collection)
|
||||
{
|
||||
// Ensure there is no typemap set - we want to use our own
|
||||
$this->collection = $collection->withOptions(['typeMap' => null]);
|
||||
$this->database = new Database($collection->getManager(), $collection->getDatabaseName());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$document = $this->collection->findOne(['_id' => $id], [MongoDBCache::DATA_FIELD, MongoDBCache::EXPIRATION_FIELD]);
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->createExpirationIndex();
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($document[MongoDBCache::DATA_FIELD]->getData());
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$document = $this->collection->findOne(['_id' => $id], [MongoDBCache::EXPIRATION_FIELD]);
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->createExpirationIndex();
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
try {
|
||||
$this->collection->updateOne(
|
||||
['_id' => $id],
|
||||
[
|
||||
'$set' => [
|
||||
MongoDBCache::EXPIRATION_FIELD => ($lifeTime > 0 ? new UTCDateTime((time() + $lifeTime) * 1000): null),
|
||||
MongoDBCache::DATA_FIELD => new Binary(serialize($data), Binary::TYPE_GENERIC),
|
||||
],
|
||||
],
|
||||
['upsert' => true]
|
||||
);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
try {
|
||||
$this->collection->deleteOne(['_id' => $id]);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
try {
|
||||
// Use remove() in lieu of drop() to maintain any collection indexes
|
||||
$this->collection->deleteMany([]);
|
||||
} catch (Exception $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$uptime = null;
|
||||
$memoryUsage = null;
|
||||
|
||||
try {
|
||||
$serverStatus = $this->database->command([
|
||||
'serverStatus' => 1,
|
||||
'locks' => 0,
|
||||
'metrics' => 0,
|
||||
'recordStats' => 0,
|
||||
'repl' => 0,
|
||||
])->toArray()[0];
|
||||
$uptime = $serverStatus['uptime'] ?? null;
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
try {
|
||||
$collStats = $this->database->command(['collStats' => $this->collection->getCollectionName()])->toArray()[0];
|
||||
$memoryUsage = $collStats['size'] ?? null;
|
||||
} catch (Exception $e) {
|
||||
}
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => null,
|
||||
Cache::STATS_MISSES => null,
|
||||
Cache::STATS_UPTIME => $uptime,
|
||||
Cache::STATS_MEMORY_USAGE => $memoryUsage,
|
||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the document is expired.
|
||||
*/
|
||||
private function isExpired(BSONDocument $document) : bool
|
||||
{
|
||||
return isset($document[MongoDBCache::EXPIRATION_FIELD]) &&
|
||||
$document[MongoDBCache::EXPIRATION_FIELD] instanceof UTCDateTime &&
|
||||
$document[MongoDBCache::EXPIRATION_FIELD]->toDateTime() < new DateTime();
|
||||
}
|
||||
|
||||
private function createExpirationIndex() : void
|
||||
{
|
||||
if ($this->expirationIndexCreated) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->collection->createIndex([MongoDBCache::EXPIRATION_FIELD => 1], ['background' => true, 'expireAfterSeconds' => 0]);
|
||||
}
|
||||
}
|
||||
281
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
vendored
Normal file
281
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FileCache.php
vendored
Normal file
@@ -0,0 +1,281 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use FilesystemIterator;
|
||||
use InvalidArgumentException;
|
||||
use Iterator;
|
||||
use RecursiveDirectoryIterator;
|
||||
use RecursiveIteratorIterator;
|
||||
use const DIRECTORY_SEPARATOR;
|
||||
use const PATHINFO_DIRNAME;
|
||||
use function bin2hex;
|
||||
use function chmod;
|
||||
use function defined;
|
||||
use function disk_free_space;
|
||||
use function file_exists;
|
||||
use function file_put_contents;
|
||||
use function gettype;
|
||||
use function hash;
|
||||
use function is_dir;
|
||||
use function is_int;
|
||||
use function is_writable;
|
||||
use function mkdir;
|
||||
use function pathinfo;
|
||||
use function realpath;
|
||||
use function rename;
|
||||
use function rmdir;
|
||||
use function sprintf;
|
||||
use function strlen;
|
||||
use function strrpos;
|
||||
use function substr;
|
||||
use function tempnam;
|
||||
use function unlink;
|
||||
|
||||
/**
|
||||
* Base file cache driver.
|
||||
*/
|
||||
abstract class FileCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The cache directory.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $directory;
|
||||
|
||||
/**
|
||||
* The cache file extension.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
private $extension;
|
||||
|
||||
/** @var int */
|
||||
private $umask;
|
||||
|
||||
/** @var int */
|
||||
private $directoryStringLength;
|
||||
|
||||
/** @var int */
|
||||
private $extensionStringLength;
|
||||
|
||||
/** @var bool */
|
||||
private $isRunningOnWindows;
|
||||
|
||||
/**
|
||||
* @param string $directory The cache directory.
|
||||
* @param string $extension The cache file extension.
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function __construct($directory, $extension = '', $umask = 0002)
|
||||
{
|
||||
// YES, this needs to be *before* createPathIfNeeded()
|
||||
if (! is_int($umask)) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'The umask parameter is required to be integer, was: %s',
|
||||
gettype($umask)
|
||||
));
|
||||
}
|
||||
$this->umask = $umask;
|
||||
|
||||
if (! $this->createPathIfNeeded($directory)) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'The directory "%s" does not exist and could not be created.',
|
||||
$directory
|
||||
));
|
||||
}
|
||||
|
||||
if (! is_writable($directory)) {
|
||||
throw new InvalidArgumentException(sprintf(
|
||||
'The directory "%s" is not writable.',
|
||||
$directory
|
||||
));
|
||||
}
|
||||
|
||||
// YES, this needs to be *after* createPathIfNeeded()
|
||||
$this->directory = realpath($directory);
|
||||
$this->extension = (string) $extension;
|
||||
|
||||
$this->directoryStringLength = strlen($this->directory);
|
||||
$this->extensionStringLength = strlen($this->extension);
|
||||
$this->isRunningOnWindows = defined('PHP_WINDOWS_VERSION_BUILD');
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cache directory.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDirectory()
|
||||
{
|
||||
return $this->directory;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cache file extension.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getExtension()
|
||||
{
|
||||
return $this->extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $id
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getFilename($id)
|
||||
{
|
||||
$hash = hash('sha256', $id);
|
||||
|
||||
// This ensures that the filename is unique and that there are no invalid chars in it.
|
||||
if ($id === ''
|
||||
|| ((strlen($id) * 2 + $this->extensionStringLength) > 255)
|
||||
|| ($this->isRunningOnWindows && ($this->directoryStringLength + 4 + strlen($id) * 2 + $this->extensionStringLength) > 258)
|
||||
) {
|
||||
// Most filesystems have a limit of 255 chars for each path component. On Windows the the whole path is limited
|
||||
// to 260 chars (including terminating null char). Using long UNC ("\\?\" prefix) does not work with the PHP API.
|
||||
// And there is a bug in PHP (https://bugs.php.net/bug.php?id=70943) with path lengths of 259.
|
||||
// So if the id in hex representation would surpass the limit, we use the hash instead. The prefix prevents
|
||||
// collisions between the hash and bin2hex.
|
||||
$filename = '_' . $hash;
|
||||
} else {
|
||||
$filename = bin2hex($id);
|
||||
}
|
||||
|
||||
return $this->directory
|
||||
. DIRECTORY_SEPARATOR
|
||||
. substr($hash, 0, 2)
|
||||
. DIRECTORY_SEPARATOR
|
||||
. $filename
|
||||
. $this->extension;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
return @unlink($filename) || ! file_exists($filename);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
foreach ($this->getIterator() as $name => $file) {
|
||||
if ($file->isDir()) {
|
||||
// Remove the intermediate directories which have been created to balance the tree. It only takes effect
|
||||
// if the directory is empty. If several caches share the same directory but with different file extensions,
|
||||
// the other ones are not removed.
|
||||
@rmdir($name);
|
||||
} elseif ($this->isFilenameEndingWithExtension($name)) {
|
||||
// If an extension is set, only remove files which end with the given extension.
|
||||
// If no extension is set, we have no other choice than removing everything.
|
||||
@unlink($name);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$usage = 0;
|
||||
foreach ($this->getIterator() as $name => $file) {
|
||||
if ($file->isDir() || ! $this->isFilenameEndingWithExtension($name)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$usage += $file->getSize();
|
||||
}
|
||||
|
||||
$free = disk_free_space($this->directory);
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => null,
|
||||
Cache::STATS_MISSES => null,
|
||||
Cache::STATS_UPTIME => null,
|
||||
Cache::STATS_MEMORY_USAGE => $usage,
|
||||
Cache::STATS_MEMORY_AVAILABLE => $free,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Create path if needed.
|
||||
*
|
||||
* @return bool TRUE on success or if path already exists, FALSE if path cannot be created.
|
||||
*/
|
||||
private function createPathIfNeeded(string $path) : bool
|
||||
{
|
||||
if (! is_dir($path)) {
|
||||
if (@mkdir($path, 0777 & (~$this->umask), true) === false && ! is_dir($path)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Writes a string content to file in an atomic way.
|
||||
*
|
||||
* @param string $filename Path to the file where to write the data.
|
||||
* @param string $content The content to write
|
||||
*
|
||||
* @return bool TRUE on success, FALSE if path cannot be created, if path is not writable or an any other error.
|
||||
*/
|
||||
protected function writeFile(string $filename, string $content) : bool
|
||||
{
|
||||
$filepath = pathinfo($filename, PATHINFO_DIRNAME);
|
||||
|
||||
if (! $this->createPathIfNeeded($filepath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (! is_writable($filepath)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$tmpFile = tempnam($filepath, 'swap');
|
||||
@chmod($tmpFile, 0666 & (~$this->umask));
|
||||
|
||||
if (file_put_contents($tmpFile, $content) !== false) {
|
||||
@chmod($tmpFile, 0666 & (~$this->umask));
|
||||
if (@rename($tmpFile, $filename)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
@unlink($tmpFile);
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
private function getIterator() : Iterator
|
||||
{
|
||||
return new RecursiveIteratorIterator(
|
||||
new RecursiveDirectoryIterator($this->directory, FilesystemIterator::SKIP_DOTS),
|
||||
RecursiveIteratorIterator::CHILD_FIRST
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name The filename
|
||||
*/
|
||||
private function isFilenameEndingWithExtension(string $name) : bool
|
||||
{
|
||||
return $this->extension === ''
|
||||
|| strrpos($name, $this->extension) === (strlen($name) - $this->extensionStringLength);
|
||||
}
|
||||
}
|
||||
102
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
vendored
Normal file
102
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FilesystemCache.php
vendored
Normal file
@@ -0,0 +1,102 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use const PHP_EOL;
|
||||
use function fclose;
|
||||
use function fgets;
|
||||
use function fopen;
|
||||
use function is_file;
|
||||
use function serialize;
|
||||
use function time;
|
||||
use function unserialize;
|
||||
|
||||
/**
|
||||
* Filesystem cache driver.
|
||||
*/
|
||||
class FilesystemCache extends FileCache
|
||||
{
|
||||
public const EXTENSION = '.doctrinecache.data';
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
||||
{
|
||||
parent::__construct($directory, $extension, $umask);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$data = '';
|
||||
$lifetime = -1;
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
if (! is_file($filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$resource = fopen($filename, 'r');
|
||||
$line = fgets($resource);
|
||||
|
||||
if ($line !== false) {
|
||||
$lifetime = (int) $line;
|
||||
}
|
||||
|
||||
if ($lifetime !== 0 && $lifetime < time()) {
|
||||
fclose($resource);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
while (($line = fgets($resource)) !== false) {
|
||||
$data .= $line;
|
||||
}
|
||||
|
||||
fclose($resource);
|
||||
|
||||
return unserialize($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$lifetime = -1;
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
if (! is_file($filename)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$resource = fopen($filename, 'r');
|
||||
$line = fgets($resource);
|
||||
|
||||
if ($line !== false) {
|
||||
$lifetime = (int) $line;
|
||||
}
|
||||
|
||||
fclose($resource);
|
||||
|
||||
return $lifetime === 0 || $lifetime > time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
$data = serialize($data);
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
return $this->writeFile($filename, $lifeTime . PHP_EOL . $data);
|
||||
}
|
||||
}
|
||||
18
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php
vendored
Normal file
18
vendor/doctrine/cache/lib/Doctrine/Common/Cache/FlushableCache.php
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache that can be flushed.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface FlushableCache
|
||||
{
|
||||
/**
|
||||
* Flushes all cache entries, globally.
|
||||
*
|
||||
* @return bool TRUE if the cache entries were successfully flushed, FALSE otherwise.
|
||||
*/
|
||||
public function flushAll();
|
||||
}
|
||||
25
vendor/doctrine/cache/lib/Doctrine/Common/Cache/InvalidCacheId.php
vendored
Normal file
25
vendor/doctrine/cache/lib/Doctrine/Common/Cache/InvalidCacheId.php
vendored
Normal file
@@ -0,0 +1,25 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use function sprintf;
|
||||
|
||||
final class InvalidCacheId extends InvalidArgumentException
|
||||
{
|
||||
public static function exceedsMaxLength($id, int $maxLength) : self
|
||||
{
|
||||
return new self(sprintf('Cache id "%s" exceeds maximum length %d', $id, $maxLength));
|
||||
}
|
||||
|
||||
public static function containsUnauthorizedCharacter($id, string $character) : self
|
||||
{
|
||||
return new self(sprintf('Cache id "%s" contains unauthorized character "%s"', $id, $character));
|
||||
}
|
||||
|
||||
public static function containsControlCharacter($id) : self
|
||||
{
|
||||
return new self(sprintf('Cache id "%s" contains at least one control character', $id));
|
||||
}
|
||||
}
|
||||
175
vendor/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php
vendored
Normal file
175
vendor/doctrine/cache/lib/Doctrine/Common/Cache/LegacyMongoDBCache.php
vendored
Normal file
@@ -0,0 +1,175 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use MongoBinData;
|
||||
use MongoCollection;
|
||||
use MongoCursorException;
|
||||
use MongoDate;
|
||||
use const E_USER_DEPRECATED;
|
||||
use function serialize;
|
||||
use function time;
|
||||
use function trigger_error;
|
||||
use function unserialize;
|
||||
|
||||
/**
|
||||
* MongoDB cache provider.
|
||||
*
|
||||
* @internal Do not use - will be removed in 2.0. Use MongoDBCache instead
|
||||
*/
|
||||
class LegacyMongoDBCache extends CacheProvider
|
||||
{
|
||||
/** @var MongoCollection */
|
||||
private $collection;
|
||||
|
||||
/** @var bool */
|
||||
private $expirationIndexCreated = false;
|
||||
|
||||
/**
|
||||
* This provider will default to the write concern and read preference
|
||||
* options set on the MongoCollection instance (or inherited from MongoDB or
|
||||
* MongoClient). Using an unacknowledged write concern (< 1) may make the
|
||||
* return values of delete() and save() unreliable. Reading from secondaries
|
||||
* may make contain() and fetch() unreliable.
|
||||
*
|
||||
* @see http://www.php.net/manual/en/mongo.readpreferences.php
|
||||
* @see http://www.php.net/manual/en/mongo.writeconcerns.php
|
||||
*/
|
||||
public function __construct(MongoCollection $collection)
|
||||
{
|
||||
@trigger_error('Using the legacy MongoDB cache provider is deprecated and will be removed in 2.0', E_USER_DEPRECATED);
|
||||
$this->collection = $collection;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$document = $this->collection->findOne(['_id' => $id], [MongoDBCache::DATA_FIELD, MongoDBCache::EXPIRATION_FIELD]);
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->createExpirationIndex();
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($document[MongoDBCache::DATA_FIELD]->bin);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$document = $this->collection->findOne(['_id' => $id], [MongoDBCache::EXPIRATION_FIELD]);
|
||||
|
||||
if ($document === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($this->isExpired($document)) {
|
||||
$this->createExpirationIndex();
|
||||
$this->doDelete($id);
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
try {
|
||||
$result = $this->collection->update(
|
||||
['_id' => $id],
|
||||
[
|
||||
'$set' => [
|
||||
MongoDBCache::EXPIRATION_FIELD => ($lifeTime > 0 ? new MongoDate(time() + $lifeTime) : null),
|
||||
MongoDBCache::DATA_FIELD => new MongoBinData(serialize($data), MongoBinData::BYTE_ARRAY),
|
||||
],
|
||||
],
|
||||
['upsert' => true, 'multiple' => false]
|
||||
);
|
||||
} catch (MongoCursorException $e) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return ($result['ok'] ?? 1) == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
$result = $this->collection->remove(['_id' => $id]);
|
||||
|
||||
return ($result['ok'] ?? 1) == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
// Use remove() in lieu of drop() to maintain any collection indexes
|
||||
$result = $this->collection->remove();
|
||||
|
||||
return ($result['ok'] ?? 1) == 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$serverStatus = $this->collection->db->command([
|
||||
'serverStatus' => 1,
|
||||
'locks' => 0,
|
||||
'metrics' => 0,
|
||||
'recordStats' => 0,
|
||||
'repl' => 0,
|
||||
]);
|
||||
|
||||
$collStats = $this->collection->db->command(['collStats' => 1]);
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => null,
|
||||
Cache::STATS_MISSES => null,
|
||||
Cache::STATS_UPTIME => $serverStatus['uptime'] ?? null,
|
||||
Cache::STATS_MEMORY_USAGE => $collStats['size'] ?? null,
|
||||
Cache::STATS_MEMORY_AVAILABLE => null,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the document is expired.
|
||||
*
|
||||
* @param array $document
|
||||
*/
|
||||
private function isExpired(array $document) : bool
|
||||
{
|
||||
return isset($document[MongoDBCache::EXPIRATION_FIELD]) &&
|
||||
$document[MongoDBCache::EXPIRATION_FIELD] instanceof MongoDate &&
|
||||
$document[MongoDBCache::EXPIRATION_FIELD]->sec < time();
|
||||
}
|
||||
|
||||
private function createExpirationIndex() : void
|
||||
{
|
||||
if ($this->expirationIndexCreated) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->expirationIndexCreated = true;
|
||||
$this->collection->createIndex([MongoDBCache::EXPIRATION_FIELD => 1], ['background' => true, 'expireAfterSeconds' => 0]);
|
||||
}
|
||||
}
|
||||
104
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
vendored
Normal file
104
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcacheCache.php
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Memcache;
|
||||
use function time;
|
||||
|
||||
/**
|
||||
* Memcache cache provider.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class MemcacheCache extends CacheProvider
|
||||
{
|
||||
/** @var Memcache|null */
|
||||
private $memcache;
|
||||
|
||||
/**
|
||||
* Sets the memcache instance to use.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMemcache(Memcache $memcache)
|
||||
{
|
||||
$this->memcache = $memcache;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the memcache instance used by the cache.
|
||||
*
|
||||
* @return Memcache|null
|
||||
*/
|
||||
public function getMemcache()
|
||||
{
|
||||
return $this->memcache;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->memcache->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$flags = null;
|
||||
$this->memcache->get($id, $flags);
|
||||
|
||||
//if memcache has changed the value of "flags", it means the value exists
|
||||
return $flags !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
return $this->memcache->set($id, $data, 0, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
// Memcache::delete() returns false if entry does not exist
|
||||
return $this->memcache->delete($id) || ! $this->doContains($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->memcache->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->memcache->getStats();
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
];
|
||||
}
|
||||
}
|
||||
170
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
vendored
Normal file
170
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MemcachedCache.php
vendored
Normal file
@@ -0,0 +1,170 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Memcached;
|
||||
use function array_keys;
|
||||
use function preg_match;
|
||||
use function strlen;
|
||||
use function strpos;
|
||||
use function time;
|
||||
|
||||
/**
|
||||
* Memcached cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class MemcachedCache extends CacheProvider
|
||||
{
|
||||
public const CACHE_ID_MAX_LENGTH = 250;
|
||||
|
||||
/** @var Memcached|null */
|
||||
private $memcached;
|
||||
|
||||
/**
|
||||
* Sets the memcache instance to use.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setMemcached(Memcached $memcached)
|
||||
{
|
||||
$this->memcached = $memcached;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the memcached instance used by the cache.
|
||||
*
|
||||
* @return Memcached|null
|
||||
*/
|
||||
public function getMemcached()
|
||||
{
|
||||
return $this->memcached;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->memcached->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return $this->memcached->getMulti($keys) ?: [];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
foreach (array_keys($keysAndValues) as $id) {
|
||||
$this->validateCacheId($id);
|
||||
}
|
||||
|
||||
if ($lifetime > 30 * 24 * 3600) {
|
||||
$lifetime = time() + $lifetime;
|
||||
}
|
||||
|
||||
return $this->memcached->setMulti($keysAndValues, $lifetime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$this->memcached->get($id);
|
||||
|
||||
return $this->memcached->getResultCode() === Memcached::RES_SUCCESS;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$this->validateCacheId($id);
|
||||
|
||||
if ($lifeTime > 30 * 24 * 3600) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
return $this->memcached->set($id, $data, (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
return $this->memcached->deleteMulti($keys)
|
||||
|| $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->memcached->delete($id)
|
||||
|| $this->memcached->getResultCode() === Memcached::RES_NOTFOUND;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->memcached->flush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$stats = $this->memcached->getStats();
|
||||
$servers = $this->memcached->getServerList();
|
||||
$key = $servers[0]['host'] . ':' . $servers[0]['port'];
|
||||
$stats = $stats[$key];
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $stats['get_hits'],
|
||||
Cache::STATS_MISSES => $stats['get_misses'],
|
||||
Cache::STATS_UPTIME => $stats['uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $stats['bytes'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $stats['limit_maxbytes'],
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Validate the cache id
|
||||
*
|
||||
* @see https://github.com/memcached/memcached/blob/1.5.12/doc/protocol.txt#L41-L49
|
||||
*
|
||||
* @param string $id
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @throws InvalidCacheId
|
||||
*/
|
||||
private function validateCacheId($id)
|
||||
{
|
||||
if (strlen($id) > self::CACHE_ID_MAX_LENGTH) {
|
||||
throw InvalidCacheId::exceedsMaxLength($id, self::CACHE_ID_MAX_LENGTH);
|
||||
}
|
||||
|
||||
if (strpos($id, ' ') !== false) {
|
||||
throw InvalidCacheId::containsUnauthorizedCharacter($id, ' ');
|
||||
}
|
||||
|
||||
if (preg_match('/[\t\r\n]/', $id) === 1) {
|
||||
throw InvalidCacheId::containsControlCharacter($id);
|
||||
}
|
||||
}
|
||||
}
|
||||
112
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
vendored
Normal file
112
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MongoDBCache.php
vendored
Normal file
@@ -0,0 +1,112 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use MongoCollection;
|
||||
use MongoDB\Collection;
|
||||
use const E_USER_DEPRECATED;
|
||||
use function trigger_error;
|
||||
|
||||
/**
|
||||
* MongoDB cache provider.
|
||||
*/
|
||||
class MongoDBCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The data field will store the serialized PHP value.
|
||||
*/
|
||||
public const DATA_FIELD = 'd';
|
||||
|
||||
/**
|
||||
* The expiration field will store a MongoDate value indicating when the
|
||||
* cache entry should expire.
|
||||
*
|
||||
* With MongoDB 2.2+, entries can be automatically deleted by MongoDB by
|
||||
* indexing this field with the "expireAfterSeconds" option equal to zero.
|
||||
* This will direct MongoDB to regularly query for and delete any entries
|
||||
* whose date is older than the current time. Entries without a date value
|
||||
* in this field will be ignored.
|
||||
*
|
||||
* The cache provider will also check dates on its own, in case expired
|
||||
* entries are fetched before MongoDB's TTLMonitor pass can expire them.
|
||||
*
|
||||
* @see http://docs.mongodb.org/manual/tutorial/expire-data/
|
||||
*/
|
||||
public const EXPIRATION_FIELD = 'e';
|
||||
|
||||
/** @var CacheProvider */
|
||||
private $provider;
|
||||
|
||||
/**
|
||||
* This provider will default to the write concern and read preference
|
||||
* options set on the collection instance (or inherited from MongoDB or
|
||||
* MongoClient). Using an unacknowledged write concern (< 1) may make the
|
||||
* return values of delete() and save() unreliable. Reading from secondaries
|
||||
* may make contain() and fetch() unreliable.
|
||||
*
|
||||
* @see http://www.php.net/manual/en/mongo.readpreferences.php
|
||||
* @see http://www.php.net/manual/en/mongo.writeconcerns.php
|
||||
*
|
||||
* @param MongoCollection|Collection $collection
|
||||
*/
|
||||
public function __construct($collection)
|
||||
{
|
||||
if ($collection instanceof MongoCollection) {
|
||||
@trigger_error('Using a MongoCollection instance for creating a cache adapter is deprecated and will be removed in 2.0', E_USER_DEPRECATED);
|
||||
$this->provider = new LegacyMongoDBCache($collection);
|
||||
} elseif ($collection instanceof Collection) {
|
||||
$this->provider = new ExtMongoDBCache($collection);
|
||||
} else {
|
||||
throw new InvalidArgumentException('Invalid collection given - expected a MongoCollection or MongoDB\Collection instance');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->provider->doFetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return $this->provider->doContains($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return $this->provider->doSave($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->provider->doDelete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->provider->doFlush();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return $this->provider->doGetStats();
|
||||
}
|
||||
}
|
||||
22
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php
vendored
Normal file
22
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiDeleteCache.php
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that allows to put many items at once.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface MultiDeleteCache
|
||||
{
|
||||
/**
|
||||
* Deletes several cache entries.
|
||||
*
|
||||
* @param string[] $keys Array of keys to delete from cache
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
||||
*/
|
||||
public function deleteMultiple(array $keys);
|
||||
}
|
||||
23
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php
vendored
Normal file
23
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiGetCache.php
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that allows to get many items at once.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface MultiGetCache
|
||||
{
|
||||
/**
|
||||
* Returns an associative array of values for keys is found in cache.
|
||||
*
|
||||
* @param string[] $keys Array of keys to retrieve from cache
|
||||
*
|
||||
* @return mixed[] Array of retrieved values, indexed by the specified keys.
|
||||
* Values that couldn't be retrieved are not contained in this array.
|
||||
*/
|
||||
public function fetchMultiple(array $keys);
|
||||
}
|
||||
12
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php
vendored
Normal file
12
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiOperationCache.php
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that supports multiple items manipulation.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface MultiOperationCache extends MultiGetCache, MultiDeleteCache, MultiPutCache
|
||||
{
|
||||
}
|
||||
24
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php
vendored
Normal file
24
vendor/doctrine/cache/lib/Doctrine/Common/Cache/MultiPutCache.php
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Interface for cache drivers that allows to put many items at once.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
interface MultiPutCache
|
||||
{
|
||||
/**
|
||||
* Returns a boolean value indicating if the operation succeeded.
|
||||
*
|
||||
* @param array $keysAndValues Array of keys and values to save in cache
|
||||
* @param int $lifetime The lifetime. If != 0, sets a specific lifetime for these
|
||||
* cache entries (0 => infinite lifeTime).
|
||||
*
|
||||
* @return bool TRUE if the operation was successful, FALSE if it wasn't.
|
||||
*/
|
||||
public function saveMultiple(array $keysAndValues, $lifetime = 0);
|
||||
}
|
||||
118
vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
vendored
Normal file
118
vendor/doctrine/cache/lib/Doctrine/Common/Cache/PhpFileCache.php
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function is_object;
|
||||
use function method_exists;
|
||||
use function restore_error_handler;
|
||||
use function serialize;
|
||||
use function set_error_handler;
|
||||
use function sprintf;
|
||||
use function time;
|
||||
use function var_export;
|
||||
|
||||
/**
|
||||
* Php file cache driver.
|
||||
*/
|
||||
class PhpFileCache extends FileCache
|
||||
{
|
||||
public const EXTENSION = '.doctrinecache.php';
|
||||
|
||||
/**
|
||||
* @var callable
|
||||
*
|
||||
* This is cached in a local static variable to avoid instantiating a closure each time we need an empty handler
|
||||
*/
|
||||
private static $emptyErrorHandler;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function __construct($directory, $extension = self::EXTENSION, $umask = 0002)
|
||||
{
|
||||
parent::__construct($directory, $extension, $umask);
|
||||
|
||||
self::$emptyErrorHandler = static function () {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$value = $this->includeFileForId($id);
|
||||
|
||||
if ($value === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($value['lifetime'] !== 0 && $value['lifetime'] < time()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value['data'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$value = $this->includeFileForId($id);
|
||||
|
||||
if ($value === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $value['lifetime'] === 0 || $value['lifetime'] > time();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
$lifeTime = time() + $lifeTime;
|
||||
}
|
||||
|
||||
$filename = $this->getFilename($id);
|
||||
|
||||
$value = [
|
||||
'lifetime' => $lifeTime,
|
||||
'data' => $data,
|
||||
];
|
||||
|
||||
if (is_object($data) && method_exists($data, '__set_state')) {
|
||||
$value = var_export($value, true);
|
||||
$code = sprintf('<?php return %s;', $value);
|
||||
} else {
|
||||
$value = var_export(serialize($value), true);
|
||||
$code = sprintf('<?php return unserialize(%s);', $value);
|
||||
}
|
||||
|
||||
return $this->writeFile($filename, $code);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array|null
|
||||
*/
|
||||
private function includeFileForId(string $id) : ?array
|
||||
{
|
||||
$fileName = $this->getFilename($id);
|
||||
|
||||
// note: error suppression is still faster than `file_exists`, `is_file` and `is_readable`
|
||||
set_error_handler(self::$emptyErrorHandler);
|
||||
|
||||
$value = include $fileName;
|
||||
|
||||
restore_error_handler();
|
||||
|
||||
if (! isset($value['lifetime'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
}
|
||||
143
vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php
vendored
Normal file
143
vendor/doctrine/cache/lib/Doctrine/Common/Cache/PredisCache.php
vendored
Normal file
@@ -0,0 +1,143 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Predis\ClientInterface;
|
||||
use function array_combine;
|
||||
use function array_filter;
|
||||
use function array_map;
|
||||
use function call_user_func_array;
|
||||
use function serialize;
|
||||
use function unserialize;
|
||||
|
||||
/**
|
||||
* Predis cache provider.
|
||||
*/
|
||||
class PredisCache extends CacheProvider
|
||||
{
|
||||
/** @var ClientInterface */
|
||||
private $client;
|
||||
|
||||
public function __construct(ClientInterface $client)
|
||||
{
|
||||
$this->client = $client;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$result = $this->client->get($id);
|
||||
if ($result === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$fetchedItems = call_user_func_array([$this->client, 'mget'], $keys);
|
||||
|
||||
return array_map('unserialize', array_filter(array_combine($keys, $fetchedItems)));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
if ($lifetime) {
|
||||
$success = true;
|
||||
|
||||
// Keys have lifetime, use SETEX for each of them
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
$response = (string) $this->client->setex($key, $lifetime, serialize($value));
|
||||
|
||||
if ($response == 'OK') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$success = false;
|
||||
}
|
||||
|
||||
return $success;
|
||||
}
|
||||
|
||||
// No lifetime, use MSET
|
||||
$response = $this->client->mset(array_map(static function ($value) {
|
||||
return serialize($value);
|
||||
}, $keysAndValues));
|
||||
|
||||
return (string) $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return (bool) $this->client->exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$data = serialize($data);
|
||||
if ($lifeTime > 0) {
|
||||
$response = $this->client->setex($id, $lifeTime, $data);
|
||||
} else {
|
||||
$response = $this->client->set($id, $data);
|
||||
}
|
||||
|
||||
return $response === true || $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->client->del($id) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
return $this->client->del($keys) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$response = $this->client->flushdb();
|
||||
|
||||
return $response === true || $response == 'OK';
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = $this->client->info();
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['Stats']['keyspace_hits'],
|
||||
Cache::STATS_MISSES => $info['Stats']['keyspace_misses'],
|
||||
Cache::STATS_UPTIME => $info['Server']['uptime_in_seconds'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['Memory']['used_memory'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => false,
|
||||
];
|
||||
}
|
||||
}
|
||||
181
vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
vendored
Normal file
181
vendor/doctrine/cache/lib/Doctrine/Common/Cache/RedisCache.php
vendored
Normal file
@@ -0,0 +1,181 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use Redis;
|
||||
use function array_combine;
|
||||
use function array_diff_key;
|
||||
use function array_fill_keys;
|
||||
use function array_filter;
|
||||
use function array_keys;
|
||||
use function count;
|
||||
use function defined;
|
||||
use function extension_loaded;
|
||||
use function is_bool;
|
||||
|
||||
/**
|
||||
* Redis cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class RedisCache extends CacheProvider
|
||||
{
|
||||
/** @var Redis|null */
|
||||
private $redis;
|
||||
|
||||
/**
|
||||
* Sets the redis instance to use.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setRedis(Redis $redis)
|
||||
{
|
||||
$redis->setOption(Redis::OPT_SERIALIZER, $this->getSerializerValue());
|
||||
$this->redis = $redis;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the redis instance used by the cache.
|
||||
*
|
||||
* @return Redis|null
|
||||
*/
|
||||
public function getRedis()
|
||||
{
|
||||
return $this->redis;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->redis->get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
$fetchedItems = array_combine($keys, $this->redis->mget($keys));
|
||||
|
||||
// Redis mget returns false for keys that do not exist. So we need to filter those out unless it's the real data.
|
||||
$keysToFilter = array_keys(array_filter($fetchedItems, static function ($item) : bool {
|
||||
return $item === false;
|
||||
}));
|
||||
|
||||
if ($keysToFilter) {
|
||||
$multi = $this->redis->multi(Redis::PIPELINE);
|
||||
foreach ($keysToFilter as $key) {
|
||||
$multi->exists($key);
|
||||
}
|
||||
$existItems = array_filter($multi->exec());
|
||||
$missedItemKeys = array_diff_key($keysToFilter, $existItems);
|
||||
$fetchedItems = array_diff_key($fetchedItems, array_fill_keys($missedItemKeys, true));
|
||||
}
|
||||
|
||||
return $fetchedItems;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
if ($lifetime) {
|
||||
// Keys have lifetime, use SETEX for each of them
|
||||
$multi = $this->redis->multi(Redis::PIPELINE);
|
||||
foreach ($keysAndValues as $key => $value) {
|
||||
$multi->setex($key, $lifetime, $value);
|
||||
}
|
||||
$succeeded = array_filter($multi->exec());
|
||||
|
||||
return count($succeeded) == count($keysAndValues);
|
||||
}
|
||||
|
||||
// No lifetime, use MSET
|
||||
return (bool) $this->redis->mset($keysAndValues);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
$exists = $this->redis->exists($id);
|
||||
|
||||
if (is_bool($exists)) {
|
||||
return $exists;
|
||||
}
|
||||
|
||||
return $exists > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
if ($lifeTime > 0) {
|
||||
return $this->redis->setex($id, $lifeTime, $data);
|
||||
}
|
||||
|
||||
return $this->redis->set($id, $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return $this->redis->del($id) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
return $this->redis->del($keys) >= 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->redis->flushDB();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = $this->redis->info();
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['keyspace_hits'],
|
||||
Cache::STATS_MISSES => $info['keyspace_misses'],
|
||||
Cache::STATS_UPTIME => $info['uptime_in_seconds'],
|
||||
Cache::STATS_MEMORY_USAGE => $info['used_memory'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => false,
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the serializer constant to use. If Redis is compiled with
|
||||
* igbinary support, that is used. Otherwise the default PHP serializer is
|
||||
* used.
|
||||
*
|
||||
* @return int One of the Redis::SERIALIZER_* constants
|
||||
*/
|
||||
protected function getSerializerValue()
|
||||
{
|
||||
if (defined('Redis::SERIALIZER_IGBINARY') && extension_loaded('igbinary')) {
|
||||
return Redis::SERIALIZER_IGBINARY;
|
||||
}
|
||||
|
||||
return Redis::SERIALIZER_PHP;
|
||||
}
|
||||
}
|
||||
206
vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php
vendored
Normal file
206
vendor/doctrine/cache/lib/Doctrine/Common/Cache/SQLite3Cache.php
vendored
Normal file
@@ -0,0 +1,206 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use SQLite3;
|
||||
use SQLite3Result;
|
||||
use const SQLITE3_ASSOC;
|
||||
use const SQLITE3_BLOB;
|
||||
use const SQLITE3_TEXT;
|
||||
use function array_search;
|
||||
use function implode;
|
||||
use function serialize;
|
||||
use function sprintf;
|
||||
use function time;
|
||||
use function unserialize;
|
||||
|
||||
/**
|
||||
* SQLite3 cache provider.
|
||||
*/
|
||||
class SQLite3Cache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* The ID field will store the cache key.
|
||||
*/
|
||||
public const ID_FIELD = 'k';
|
||||
|
||||
/**
|
||||
* The data field will store the serialized PHP value.
|
||||
*/
|
||||
public const DATA_FIELD = 'd';
|
||||
|
||||
/**
|
||||
* The expiration field will store a date value indicating when the
|
||||
* cache entry should expire.
|
||||
*/
|
||||
public const EXPIRATION_FIELD = 'e';
|
||||
|
||||
/** @var SQLite3 */
|
||||
private $sqlite;
|
||||
|
||||
/** @var string */
|
||||
private $table;
|
||||
|
||||
/**
|
||||
* Calling the constructor will ensure that the database file and table
|
||||
* exist and will create both if they don't.
|
||||
*
|
||||
* @param string $table
|
||||
*/
|
||||
public function __construct(SQLite3 $sqlite, $table)
|
||||
{
|
||||
$this->sqlite = $sqlite;
|
||||
$this->table = (string) $table;
|
||||
|
||||
$this->ensureTableExists();
|
||||
}
|
||||
|
||||
private function ensureTableExists() : void
|
||||
{
|
||||
$this->sqlite->exec(
|
||||
sprintf(
|
||||
'CREATE TABLE IF NOT EXISTS %s(%s TEXT PRIMARY KEY NOT NULL, %s BLOB, %s INTEGER)',
|
||||
$this->table,
|
||||
static::ID_FIELD,
|
||||
static::DATA_FIELD,
|
||||
static::EXPIRATION_FIELD
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
$item = $this->findById($id);
|
||||
|
||||
if (! $item) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return unserialize($item[self::DATA_FIELD]);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return $this->findById($id, false) !== null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'INSERT OR REPLACE INTO %s (%s) VALUES (:id, :data, :expire)',
|
||||
$this->table,
|
||||
implode(',', $this->getFields())
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id);
|
||||
$statement->bindValue(':data', serialize($data), SQLITE3_BLOB);
|
||||
$statement->bindValue(':expire', $lifeTime > 0 ? time() + $lifeTime : null);
|
||||
|
||||
return $statement->execute() instanceof SQLite3Result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
[$idField] = $this->getFields();
|
||||
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'DELETE FROM %s WHERE %s = :id',
|
||||
$this->table,
|
||||
$idField
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id);
|
||||
|
||||
return $statement->execute() instanceof SQLite3Result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return $this->sqlite->exec(sprintf('DELETE FROM %s', $this->table));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
// no-op.
|
||||
}
|
||||
|
||||
/**
|
||||
* Find a single row by ID.
|
||||
*
|
||||
* @param mixed $id
|
||||
*
|
||||
* @return array|null
|
||||
*/
|
||||
private function findById($id, bool $includeData = true) : ?array
|
||||
{
|
||||
[$idField] = $fields = $this->getFields();
|
||||
|
||||
if (! $includeData) {
|
||||
$key = array_search(static::DATA_FIELD, $fields);
|
||||
unset($fields[$key]);
|
||||
}
|
||||
|
||||
$statement = $this->sqlite->prepare(sprintf(
|
||||
'SELECT %s FROM %s WHERE %s = :id LIMIT 1',
|
||||
implode(',', $fields),
|
||||
$this->table,
|
||||
$idField
|
||||
));
|
||||
|
||||
$statement->bindValue(':id', $id, SQLITE3_TEXT);
|
||||
|
||||
$item = $statement->execute()->fetchArray(SQLITE3_ASSOC);
|
||||
|
||||
if ($item === false) {
|
||||
return null;
|
||||
}
|
||||
|
||||
if ($this->isExpired($item)) {
|
||||
$this->doDelete($id);
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
return $item;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets an array of the fields in our table.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
private function getFields() : array
|
||||
{
|
||||
return [static::ID_FIELD, static::DATA_FIELD, static::EXPIRATION_FIELD];
|
||||
}
|
||||
|
||||
/**
|
||||
* Check if the item is expired.
|
||||
*
|
||||
* @param array $item
|
||||
*/
|
||||
private function isExpired(array $item) : bool
|
||||
{
|
||||
return isset($item[static::EXPIRATION_FIELD]) &&
|
||||
$item[self::EXPIRATION_FIELD] !== null &&
|
||||
$item[self::EXPIRATION_FIELD] < time();
|
||||
}
|
||||
}
|
||||
8
vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
vendored
Normal file
8
vendor/doctrine/cache/lib/Doctrine/Common/Cache/Version.php
vendored
Normal file
@@ -0,0 +1,8 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
class Version
|
||||
{
|
||||
public const VERSION = '1.9.0-DEV';
|
||||
}
|
||||
59
vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php
vendored
Normal file
59
vendor/doctrine/cache/lib/Doctrine/Common/Cache/VoidCache.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
/**
|
||||
* Void cache driver. The cache could be of use in tests where you don`t need to cache anything.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class VoidCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
106
vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
vendored
Normal file
106
vendor/doctrine/cache/lib/Doctrine/Common/Cache/WinCacheCache.php
vendored
Normal file
@@ -0,0 +1,106 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function count;
|
||||
use function is_array;
|
||||
use function wincache_ucache_clear;
|
||||
use function wincache_ucache_delete;
|
||||
use function wincache_ucache_exists;
|
||||
use function wincache_ucache_get;
|
||||
use function wincache_ucache_info;
|
||||
use function wincache_ucache_meminfo;
|
||||
use function wincache_ucache_set;
|
||||
|
||||
/**
|
||||
* WinCache cache provider.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class WinCacheCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return wincache_ucache_get($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return wincache_ucache_exists($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return wincache_ucache_set($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return wincache_ucache_delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
return wincache_ucache_clear();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetchMultiple(array $keys)
|
||||
{
|
||||
return wincache_ucache_get($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSaveMultiple(array $keysAndValues, $lifetime = 0)
|
||||
{
|
||||
$result = wincache_ucache_set($keysAndValues, null, $lifetime);
|
||||
|
||||
return empty($result);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDeleteMultiple(array $keys)
|
||||
{
|
||||
$result = wincache_ucache_delete($keys);
|
||||
|
||||
return is_array($result) && count($result) !== count($keys);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$info = wincache_ucache_info();
|
||||
$meminfo = wincache_ucache_meminfo();
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['total_hit_count'],
|
||||
Cache::STATS_MISSES => $info['total_miss_count'],
|
||||
Cache::STATS_UPTIME => $info['total_cache_uptime'],
|
||||
Cache::STATS_MEMORY_USAGE => $meminfo['memory_total'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $meminfo['memory_free'],
|
||||
];
|
||||
}
|
||||
}
|
||||
104
vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
vendored
Normal file
104
vendor/doctrine/cache/lib/Doctrine/Common/Cache/XcacheCache.php
vendored
Normal file
@@ -0,0 +1,104 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use BadMethodCallException;
|
||||
use const XC_TYPE_VAR;
|
||||
use function ini_get;
|
||||
use function serialize;
|
||||
use function unserialize;
|
||||
use function xcache_clear_cache;
|
||||
use function xcache_get;
|
||||
use function xcache_info;
|
||||
use function xcache_isset;
|
||||
use function xcache_set;
|
||||
use function xcache_unset;
|
||||
|
||||
/**
|
||||
* Xcache cache driver.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class XcacheCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return $this->doContains($id) ? unserialize(xcache_get($id)) : false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return xcache_isset($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return xcache_set($id, serialize($data), (int) $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return xcache_unset($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$this->checkAuthorization();
|
||||
|
||||
xcache_clear_cache(XC_TYPE_VAR);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks that xcache.admin.enable_auth is Off.
|
||||
*
|
||||
* @return void
|
||||
*
|
||||
* @throws BadMethodCallException When xcache.admin.enable_auth is On.
|
||||
*/
|
||||
protected function checkAuthorization()
|
||||
{
|
||||
if (ini_get('xcache.admin.enable_auth')) {
|
||||
throw new BadMethodCallException(
|
||||
'To use all features of \Doctrine\Common\Cache\XcacheCache, '
|
||||
. 'you must set "xcache.admin.enable_auth" to "Off" in your php.ini.'
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
$this->checkAuthorization();
|
||||
|
||||
$info = xcache_info(XC_TYPE_VAR, 0);
|
||||
|
||||
return [
|
||||
Cache::STATS_HITS => $info['hits'],
|
||||
Cache::STATS_MISSES => $info['misses'],
|
||||
Cache::STATS_UPTIME => null,
|
||||
Cache::STATS_MEMORY_USAGE => $info['size'],
|
||||
Cache::STATS_MEMORY_AVAILABLE => $info['avail'],
|
||||
];
|
||||
}
|
||||
}
|
||||
69
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
vendored
Normal file
69
vendor/doctrine/cache/lib/Doctrine/Common/Cache/ZendDataCache.php
vendored
Normal file
@@ -0,0 +1,69 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\Common\Cache;
|
||||
|
||||
use function zend_shm_cache_clear;
|
||||
use function zend_shm_cache_delete;
|
||||
use function zend_shm_cache_fetch;
|
||||
use function zend_shm_cache_store;
|
||||
|
||||
/**
|
||||
* Zend Data Cache cache driver.
|
||||
*
|
||||
* @link www.doctrine-project.org
|
||||
*/
|
||||
class ZendDataCache extends CacheProvider
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFetch($id)
|
||||
{
|
||||
return zend_shm_cache_fetch($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doContains($id)
|
||||
{
|
||||
return zend_shm_cache_fetch($id) !== false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doSave($id, $data, $lifeTime = 0)
|
||||
{
|
||||
return zend_shm_cache_store($id, $data, $lifeTime);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doDelete($id)
|
||||
{
|
||||
return zend_shm_cache_delete($id);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doFlush()
|
||||
{
|
||||
$namespace = $this->getNamespace();
|
||||
if (empty($namespace)) {
|
||||
return zend_shm_cache_clear();
|
||||
}
|
||||
|
||||
return zend_shm_cache_clear($namespace);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function doGetStats()
|
||||
{
|
||||
return null;
|
||||
}
|
||||
}
|
||||
55
vendor/doctrine/dbal/.doctrine-project.json
vendored
Normal file
55
vendor/doctrine/dbal/.doctrine-project.json
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
{
|
||||
"active": true,
|
||||
"name": "Database Abstraction Layer",
|
||||
"shortName": "DBAL",
|
||||
"slug": "dbal",
|
||||
"docsSlug": "doctrine-dbal",
|
||||
"versions": [
|
||||
{
|
||||
"name": "3.0",
|
||||
"branchName": "develop",
|
||||
"slug": "latest",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "2.10",
|
||||
"branchName": "master",
|
||||
"slug": "2.10",
|
||||
"upcoming": true
|
||||
},
|
||||
{
|
||||
"name": "2.9",
|
||||
"branchName": "2.9",
|
||||
"slug": "2.9",
|
||||
"current": true,
|
||||
"aliases": [
|
||||
"current",
|
||||
"stable"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "2.8",
|
||||
"branchName": "2.8",
|
||||
"slug": "2.8",
|
||||
"maintained": false
|
||||
},
|
||||
{
|
||||
"name": "2.7",
|
||||
"branchName": "2.7",
|
||||
"slug": "2.7",
|
||||
"maintained": false
|
||||
},
|
||||
{
|
||||
"name": "2.6",
|
||||
"branchName": "2.6",
|
||||
"slug": "2.6",
|
||||
"maintained": false
|
||||
},
|
||||
{
|
||||
"name": "2.5",
|
||||
"branchName": "2.5",
|
||||
"slug": "2.5",
|
||||
"maintained": false
|
||||
}
|
||||
]
|
||||
}
|
||||
19
vendor/doctrine/dbal/LICENSE
vendored
Normal file
19
vendor/doctrine/dbal/LICENSE
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
Copyright (c) 2006-2018 Doctrine Project
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
the Software without restriction, including without limitation the rights to
|
||||
use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies
|
||||
of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
46
vendor/doctrine/dbal/README.md
vendored
Normal file
46
vendor/doctrine/dbal/README.md
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
# Doctrine DBAL
|
||||
|
||||
| [Master][Master] | [2.9][2.9] | [Develop][develop] |
|
||||
|:----------------:|:----------:|:------------------:|
|
||||
| [![Build status][Master image]][Master] | [![Build status][2.9 image]][2.9] | [![Build status][develop image]][develop] |
|
||||
| [![Build Status][ContinuousPHP image]][ContinuousPHP] | [![Build Status][ContinuousPHP 2.9 image]][ContinuousPHP] | [![Build Status][ContinuousPHP develop image]][ContinuousPHP] |
|
||||
| [![Code Coverage][Coverage image]][Scrutinizer Master] | [![Code Coverage][Coverage 2.9 image]][Scrutinizer 2.9] | [![Code Coverage][Coverage develop image]][Scrutinizer develop] |
|
||||
| [![Code Quality][Quality image]][Scrutinizer Master] | [![Code Quality][Quality 2.9 image]][Scrutinizer 2.9] | [![Code Quality][Quality develop image]][Scrutinizer develop] |
|
||||
| [![AppVeyor][AppVeyor master image]][AppVeyor master] | [![AppVeyor][AppVeyor 2.9 image]][AppVeyor 2.9] | [![AppVeyor][AppVeyor develop image]][AppVeyor develop] |
|
||||
|
||||
Powerful database abstraction layer with many features for database schema introspection, schema management and PDO abstraction.
|
||||
|
||||
## More resources:
|
||||
|
||||
* [Website](http://www.doctrine-project.org/projects/dbal.html)
|
||||
* [Documentation](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/)
|
||||
* [Issue Tracker](https://github.com/doctrine/dbal/issues)
|
||||
|
||||
[Master image]: https://img.shields.io/travis/doctrine/dbal/master.svg?style=flat-square
|
||||
[Coverage image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/master.svg?style=flat-square
|
||||
[Quality image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/master.svg?style=flat-square
|
||||
[ContinuousPHP image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/master.svg?style=flat-square
|
||||
[Master]: https://travis-ci.org/doctrine/dbal
|
||||
[Scrutinizer Master]: https://scrutinizer-ci.com/g/doctrine/dbal/
|
||||
[AppVeyor master]: https://ci.appveyor.com/project/doctrine/dbal/branch/master
|
||||
[AppVeyor master image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/master?svg=true
|
||||
[ContinuousPHP]: https://continuousphp.com/git-hub/doctrine/dbal
|
||||
|
||||
[2.9 image]: https://img.shields.io/travis/doctrine/dbal/2.9.svg?style=flat-square
|
||||
[Coverage 2.9 image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/2.9.svg?style=flat-square
|
||||
[Quality 2.9 image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/2.9.svg?style=flat-square
|
||||
[ContinuousPHP 2.9 image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/2.9.svg?style=flat-square
|
||||
[2.9]: https://github.com/doctrine/dbal/tree/2.9
|
||||
[Scrutinizer 2.9]: https://scrutinizer-ci.com/g/doctrine/dbal/?branch=2.9
|
||||
[AppVeyor 2.9]: https://ci.appveyor.com/project/doctrine/dbal/branch/2.9
|
||||
[AppVeyor 2.9 image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/2.9?svg=true
|
||||
|
||||
[develop]: https://github.com/doctrine/dbal/tree/develop
|
||||
[develop image]: https://img.shields.io/travis/doctrine/dbal/develop.svg?style=flat-square
|
||||
[Coverage develop image]: https://img.shields.io/scrutinizer/coverage/g/doctrine/dbal/develop.svg?style=flat-square
|
||||
[Quality develop image]: https://img.shields.io/scrutinizer/g/doctrine/dbal/develop.svg?style=flat-square
|
||||
[ContinuousPHP develop image]: https://img.shields.io/continuousphp/git-hub/doctrine/dbal/develop.svg?style=flat-square
|
||||
[develop]: https://github.com/doctrine/dbal/tree/develop
|
||||
[Scrutinizer develop]: https://scrutinizer-ci.com/g/doctrine/dbal/?branch=develop
|
||||
[AppVeyor develop]: https://ci.appveyor.com/project/doctrine/dbal/branch/develop
|
||||
[AppVeyor develop image]: https://ci.appveyor.com/api/projects/status/i88kitq8qpbm0vie/branch/develop?svg=true
|
||||
14
vendor/doctrine/dbal/SECURITY.md
vendored
Normal file
14
vendor/doctrine/dbal/SECURITY.md
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
Security
|
||||
========
|
||||
|
||||
The Doctrine library is operating very close to your database and as such needs
|
||||
to handle and make assumptions about SQL injection vulnerabilities.
|
||||
|
||||
It is vital that you understand how Doctrine approaches security, because
|
||||
we cannot protect you from SQL injection.
|
||||
|
||||
Please read the documentation chapter on Security in Doctrine DBAL to
|
||||
understand the assumptions we make.
|
||||
|
||||
- [Latest security.rst page on Github](https://github.com/doctrine/dbal/blob/master/docs/en/reference/security.rst)
|
||||
- [Security Page in rendered documentation](http://docs.doctrine-project.org/projects/doctrine-dbal/en/latest/reference/security.html)
|
||||
452
vendor/doctrine/dbal/UPGRADE.md
vendored
Normal file
452
vendor/doctrine/dbal/UPGRADE.md
vendored
Normal file
@@ -0,0 +1,452 @@
|
||||
# Upgrade to 2.10
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Event\ConnectionEventArgs` methods
|
||||
|
||||
The usage of the `getDriver()`, `getDatabasePlatform()` and `getSchemaManager()` methods of the `ConnectionEventArgs` class has been deprecated. Obtain the underlying connection via `getConnection()` and call the corresponding methods on the connection instance.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Event\SchemaColumnDefinitionEventArgs` methods
|
||||
|
||||
The usage of the `getDatabasePlatform()` method of the `SchemaColumnDefinitionEventArgs` class has been deprecated. Obtain the underlying connection via `getConnection()` and call the corresponding method on the connection instance.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Connection` methods
|
||||
|
||||
The usage of the `getHost()`, `getPort()`, `getUsername()` and `getPassword()` methods of the `Connection` class has been deprecated as they leak implementation details.
|
||||
|
||||
## Deprecated array of statements in `addSql()` of `SchemaEventArgs`-based classes.
|
||||
|
||||
Passing multiple SQL statements as an array to `SchemaAlterTableAddColumnEventArgs::addSql()` and the same method in other `SchemaEventArgs`-based classes is deprecated. Pass each statement as an individual argument instead.
|
||||
|
||||
## Deprecated calling `AbstractSchemaManager::tablesExist()` with a string argument.
|
||||
|
||||
Instead of passing a string, pass a one-element array.
|
||||
|
||||
## Deprecated calling `OracleSchemaManager::createDatabase()` without an argument or by passing NULL.
|
||||
|
||||
In order to create a database, always pass the database name.
|
||||
|
||||
## Deprecated unused schema manager methods.
|
||||
|
||||
The following methods have been deprecated as unused:
|
||||
|
||||
- `AbstractSchemaManager::_getPortableFunctionsList()`,
|
||||
- `AbstractSchemaManager::_getPortableFunctionDefinition()`,
|
||||
- `OracleSchemaManager::_getPortableFunctionDefinition()`,
|
||||
- `SqliteSchemaManager::_getPortableTableIndexDefinition()`.
|
||||
|
||||
# Deprecations in `Doctrine\DBAL\Driver`
|
||||
|
||||
- The usage of NULL to indicate empty `$username` or `$password` when calling `connect()` is deprecated. Use an empty string instead.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Platforms::_getAlterTableIndexForeignKeySQL()`
|
||||
|
||||
Method `Doctrine\DBAL\Platforms::_getAlterTableIndexForeignKeySQL()` has been deprecated as no longer used.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Driver\OCI8\OCI8Statement::$_PARAM`
|
||||
|
||||
Property `Doctrine\DBAL\Driver\OCI8\OCI8Statement::$_PARAM` has been deprecated as not used.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Driver::getName()`
|
||||
|
||||
Relying on the name of the driver is discouraged. For referencing the driver, use its class name.
|
||||
|
||||
## Deprecated usage of user-provided `PDO` instance
|
||||
|
||||
The usage of user-provided `PDO` instance is deprecated. The known use cases are:
|
||||
|
||||
1. **Persistent PDO connections.** DBAL 3.0 will supported establishing persistent connections, therefore, providing a pre-created persistent PDO connection will be no longer needed.
|
||||
2. **Sharing `PDO` instance between DBAL and legacy components.** In order to share a PDO instance, initialize the connection in DBAL and access it using `Connection::getWrappedConnection()->getWrappedConnection()`.
|
||||
|
||||
## MINOR BC BREAK: Default values are no longer handled as SQL expressions
|
||||
|
||||
They are converted to SQL literals (e.g. escaped). Clients must now specify default values in their initial form, not in the form of an SQL literal (e.g. escaped).
|
||||
|
||||
Before:
|
||||
|
||||
$column->setDefault('Foo\\\\Bar\\\\Baz');
|
||||
|
||||
After:
|
||||
|
||||
$column->setDefault('Foo\\Bar\\Baz');
|
||||
|
||||
## Deprecated `Type::*` constants
|
||||
|
||||
The constants for built-in types have been moved from `Doctrine\DBAL\Types\Type` to a separate class `Doctrine\DBAL\Types\Types`.
|
||||
|
||||
Some of the constants were renamed in the process:
|
||||
* `TARRAY`-> `ARRAY`
|
||||
* `DATE` -> `DATE_MUTABLE`
|
||||
* `DATETIME` -> `DATETIME_MUTABLE`
|
||||
* `DATETIMETZ` -> `DATETIMETZ_MUTABLE`
|
||||
* `TIME` -> `TIME_MUTABLE`
|
||||
|
||||
## Deprecated `SQLSrvStatement::LAST_INSERT_ID_SQL` constant
|
||||
|
||||
The `Doctrine\DBAL\Driver\SQLSrv\SQLSrvStatement::LAST_INSERT_ID_SQL` constant has been deprecated and will be made private in 3.0.
|
||||
|
||||
## Deprecated `SQLParserUtils` constants
|
||||
|
||||
The constants in `Doctrine\DBAL\SQLParserUtils` have been deprecated and will be made private in 3.0.
|
||||
|
||||
## Deprecated `LoggerChain::addLogger` method
|
||||
|
||||
The `Doctrine\DBAL\Logging\LoggerChain::addLogger` method has been deprecated. Inject list of loggers via constructor instead.
|
||||
|
||||
# Upgrade to 2.9
|
||||
|
||||
## Deprecated `Statement::fetchColumn()` with an invalid index
|
||||
|
||||
Calls to `Statement::fetchColumn()` with an invalid column index currently return `NULL`. In the future, such calls will result in a exception.
|
||||
|
||||
## Deprecated `Configuration::getFilterSchemaAssetsExpression()`, `::setFilterSchemaAssetsExpression()` and `AbstractSchemaManager::getFilterSchemaAssetsExpression()`.
|
||||
|
||||
Regular expression-based filters are hard to extend by combining together. Instead, you may use callback-based filers via `::getSchemaAssetsFilter()` and `::getSchemaAssetsFilter()`. Callbacks can use regular expressions internally.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Types\Type::getDefaultLength()`
|
||||
|
||||
This method was never used by DBAL internally. It is now deprecated and will be removed in DBAL 3.0.
|
||||
|
||||
## Deprecated `Doctrine\DBAL\Types\Type::__toString()`
|
||||
|
||||
Relying on string representation is discouraged and will be removed in DBAL 3.0.
|
||||
|
||||
## Deprecated `NULL` value of `$offset` in LIMIT queries
|
||||
|
||||
The `NULL` value of the `$offset` argument in `AbstractPlatform::(do)?ModifyLimitQuery()` methods is deprecated. If explicitly used in the method call, the absence of the offset should be indicated with a `0`.
|
||||
|
||||
## Deprecated dbal:import CLI command
|
||||
|
||||
The `dbal:import` CLI command has been deprecated since it only works with PDO-based drivers by relying on a non-documented behavior of the extension, and it's impossible to make it work with other drivers.
|
||||
Please use other database client applications for import, e.g.:
|
||||
|
||||
* For MySQL and MariaDB: `mysql [dbname] < data.sql`.
|
||||
* For PostgreSQL: `psql [dbname] < data.sql`.
|
||||
* For SQLite: `sqlite3 /path/to/file.db < data.sql`.
|
||||
|
||||
# Upgrade to 2.8
|
||||
|
||||
## Deprecated usage of DB-generated UUIDs
|
||||
|
||||
The format of DB-generated UUIDs is inconsistent across supported platforms and therefore is not portable. Some of the platforms produce UUIDv1, some produce UUIDv4, some produce the values which are not even UUID.
|
||||
|
||||
Unless UUIDs are used in stored procedures which DBAL doesn't support, there's no real benefit of DB-generated UUIDs comparing to the application-generated ones.
|
||||
|
||||
Use a PHP library (e.g. [ramsey/uuid](https://packagist.org/packages/ramsey/uuid)) to generate UUIDs on the application side.
|
||||
|
||||
## Deprecated usage of binary fields whose length exceeds the platform maximum
|
||||
|
||||
- The usage of binary fields whose length exceeds the maximum field size on a given platform is deprecated.
|
||||
Use binary fields of a size which fits all target platforms, or use blob explicitly instead.
|
||||
|
||||
## Removed dependency on doctrine/common
|
||||
|
||||
The dependency on doctrine/common package has been removed.
|
||||
DBAL now depends on doctrine/cache and doctrine/event-manager instead.
|
||||
If you are using any other component from doctrine/common package,
|
||||
you will have to add an explicit dependency to your composer.json.
|
||||
|
||||
## Corrected exception thrown by ``Doctrine\DBAL\Platforms\SQLAnywhere16Platform::getAdvancedIndexOptionsSQL()``
|
||||
|
||||
This method now throws SPL ``UnexpectedValueException`` instead of accidentally throwing ``Doctrine\Common\Proxy\Exception\UnexpectedValueException``.
|
||||
|
||||
# Upgrade to 2.7
|
||||
|
||||
## Doctrine\DBAL\Platforms\AbstractPlatform::DATE_INTERVAL_UNIT_* constants deprecated
|
||||
|
||||
``Doctrine\DBAL\Platforms\AbstractPlatform::DATE_INTERVAL_UNIT_*`` constants were moved into ``Doctrine\DBAL\Platforms\DateIntervalUnit`` class without the ``DATE_INTERVAL_UNIT_`` prefix.
|
||||
|
||||
## Doctrine\DBAL\Platforms\AbstractPlatform::TRIM_* constants deprecated
|
||||
|
||||
``Doctrine\DBAL\Platforms\AbstractPlatform::TRIM_*`` constants were moved into ``Doctrine\DBAL\Platforms\TrimMode`` class without the ``TRIM_`` prefix.
|
||||
|
||||
## Doctrine\DBAL\Connection::TRANSACTION_* constants deprecated
|
||||
|
||||
``Doctrine\DBAL\Connection::TRANSACTION_*`` were moved into ``Doctrine\DBAL\TransactionIsolationLevel`` class without the ``TRANSACTION_`` prefix.
|
||||
|
||||
## DEPRECATION: direct usage of the PDO APIs in the DBAL API
|
||||
|
||||
1. When calling `Doctrine\DBAL\Driver\Statement` methods, instead of `PDO::PARAM_*` constants, `Doctrine\DBAL\ParameterType` constants should be used.
|
||||
2. When calling `Doctrine\DBAL\Driver\ResultStatement` methods, instead of `PDO::FETCH_*` constants, `Doctrine\DBAL\FetchMode` constants should be used.
|
||||
3. When configuring `Doctrine\DBAL\Portability\Connection`, instead of `PDO::CASE_*` constants, `Doctrine\DBAL\ColumnCase` constants should be used.
|
||||
4. Usage of `PDO::PARAM_INPUT_OUTPUT` in `Doctrine\DBAL\Driver\Statement::bindValue()` is deprecated.
|
||||
5. Usage of `PDO::FETCH_FUNC` in `Doctrine\DBAL\Driver\ResultStatement::fetch()` is deprecated.
|
||||
6. Calls to `\PDOStatement` methods on a `\Doctrine\DBAL\Driver\PDOStatement` instance (e.g. `fetchObject()`) are deprecated.
|
||||
|
||||
# Upgrade to 2.6
|
||||
|
||||
## MINOR BC BREAK: `fetch()` and `fetchAll()` method signatures in `Doctrine\DBAL\Driver\ResultStatement`
|
||||
|
||||
1. ``Doctrine\DBAL\Driver\ResultStatement::fetch()`` now has 3 arguments instead of 1, respecting
|
||||
``PDO::fetch()`` signature.
|
||||
|
||||
Before:
|
||||
|
||||
Doctrine\DBAL\Driver\ResultStatement::fetch($fetchMode);
|
||||
|
||||
After:
|
||||
|
||||
Doctrine\DBAL\Driver\ResultStatement::fetch($fetchMode, $cursorOrientation, $cursorOffset);
|
||||
|
||||
2. ``Doctrine\DBAL\Driver\ResultStatement::fetchAll()`` now has 3 arguments instead of 1, respecting
|
||||
``PDO::fetchAll()`` signature.
|
||||
|
||||
Before:
|
||||
|
||||
Doctrine\DBAL\Driver\ResultStatement::fetchAll($fetchMode);
|
||||
|
||||
After:
|
||||
|
||||
Doctrine\DBAL\Driver\ResultStatement::fetch($fetchMode, $fetchArgument, $ctorArgs);
|
||||
|
||||
|
||||
## MINOR BC BREAK: URL-style DSN with percentage sign in password
|
||||
|
||||
URL-style DSNs (e.g. ``mysql://foo@bar:localhost/db``) are now assumed to be percent-encoded
|
||||
in order to allow certain special characters in usernames, paswords and database names. If
|
||||
you are using a URL-style DSN and have a username, password or database name containing a
|
||||
percentage sign, you need to update your DSN. If your password is, say, ``foo%foo``, it
|
||||
should be encoded as ``foo%25foo``.
|
||||
|
||||
# Upgrade to 2.5.1
|
||||
|
||||
## MINOR BC BREAK: Doctrine\DBAL\Schema\Table
|
||||
|
||||
When adding indexes to ``Doctrine\DBAL\Schema\Table`` via ``addIndex()`` or ``addUniqueIndex()``,
|
||||
duplicate indexes are not silently ignored/dropped anymore (based on semantics, not naming!).
|
||||
Duplicate indexes are considered indexes that pass ``isFullfilledBy()`` or ``overrules()``
|
||||
in ``Doctrine\DBAL\Schema\Index``.
|
||||
This is required to make the index renaming feature introduced in 2.5.0 work properly and avoid
|
||||
issues in the ORM schema tool / DBAL schema manager which pretends users from updating
|
||||
their schemas and migrate to DBAL 2.5.*.
|
||||
Additionally it offers more flexibility in declaring indexes for the user and potentially fixes
|
||||
related issues in the ORM.
|
||||
With this change, the responsibility to decide which index is a "duplicate" is completely deferred
|
||||
to the user.
|
||||
Please also note that adding foreign key constraints to a table via ``addForeignKeyConstraint()``,
|
||||
``addUnnamedForeignKeyConstraint()`` or ``addNamedForeignKeyConstraint()`` now first checks if an
|
||||
appropriate index is already present and avoids adding an additional auto-generated one eventually.
|
||||
|
||||
# Upgrade to 2.5
|
||||
|
||||
## BC BREAK: time type resets date fields to UNIX epoch
|
||||
|
||||
When mapping `time` type field to PHP's `DateTime` instance all unused date fields are
|
||||
reset to UNIX epoch (i.e. 1970-01-01). This might break any logic which relies on comparing
|
||||
`DateTime` instances with date fields set to the current date.
|
||||
|
||||
Use `!` format prefix (see http://php.net/manual/en/datetime.createfromformat.php) for parsing
|
||||
time strings to prevent having different date fields when comparing user input and `DateTime`
|
||||
instances as mapped by Doctrine.
|
||||
|
||||
## BC BREAK: Doctrine\DBAL\Schema\Table
|
||||
|
||||
The methods ``addIndex()`` and ``addUniqueIndex()`` in ``Doctrine\DBAL\Schema\Table``
|
||||
have an additional, optional parameter. If you override these methods, you should
|
||||
add this new parameter to the declaration of your overridden methods.
|
||||
|
||||
## BC BREAK: Doctrine\DBAL\Connection
|
||||
|
||||
The visibility of the property ``$_platform`` in ``Doctrine\DBAL\Connection``
|
||||
was changed from protected to private. If you have subclassed ``Doctrine\DBAL\Connection``
|
||||
in your application and accessed ``$_platform`` directly, you have to change the code
|
||||
portions to use ``getDatabasePlatform()`` instead to retrieve the underlying database
|
||||
platform.
|
||||
The reason for this change is the new automatic platform version detection feature,
|
||||
which lazily evaluates the appropriate platform class to use for the underlying database
|
||||
server version at runtime.
|
||||
Please also note, that calling ``getDatabasePlatform()`` now needs to establish a connection
|
||||
in order to evaluate the appropriate platform class if ``Doctrine\DBAL\Connection`` is not
|
||||
already connected. Under the following circumstances, it is not possible anymore to retrieve
|
||||
the platform instance from the connection object without having to do a real connect:
|
||||
|
||||
1. ``Doctrine\DBAL\Connection`` was instantiated without the ``platform`` connection parameter.
|
||||
2. ``Doctrine\DBAL\Connection`` was instantiated without the ``serverVersion`` connection parameter.
|
||||
3. The underlying driver is "version aware" and can provide different platform instances
|
||||
for different versions.
|
||||
4. The underlying driver connection is "version aware" and can provide the database server
|
||||
version without having to query for it.
|
||||
|
||||
If one of the above conditions is NOT met, there is no need for ``Doctrine\DBAL\Connection``
|
||||
to do a connect when calling ``getDatabasePlatform()``.
|
||||
|
||||
## datetime Type uses date_create() as fallback
|
||||
|
||||
Before 2.5 the DateTime type always required a specific format, defined in
|
||||
`$platform->getDateTimeFormatString()`, which could cause quite some troubles
|
||||
on platforms that had various microtime precision formats. Starting with 2.5
|
||||
whenever the parsing of a date fails with the predefined platform format,
|
||||
the `date_create()` function will be used to parse the date.
|
||||
|
||||
This could cause some troubles when your date format is weird and not parsed
|
||||
correctly by `date_create`, however since databases are rather strict on dates
|
||||
there should be no problem.
|
||||
|
||||
## Support for pdo_ibm driver removed
|
||||
|
||||
The ``pdo_ibm`` driver is buggy and does not work well with Doctrine. Therefore it will no
|
||||
longer be supported and has been removed from the ``Doctrine\DBAL\DriverManager`` drivers
|
||||
map. It is highly encouraged to to use `ibm_db2` driver instead if you want to connect
|
||||
to an IBM DB2 database as it is much more stable and secure.
|
||||
|
||||
If for some reason you have to utilize the ``pdo_ibm`` driver you can still use the `driverClass`
|
||||
connection parameter to explicitly specify the ``Doctrine\DBAL\Driver\PDOIbm\Driver`` class.
|
||||
However be aware that you are doing this at your own risk and it will not be guaranteed that
|
||||
Doctrine will work as expected.
|
||||
|
||||
# Upgrade to 2.4
|
||||
|
||||
## Doctrine\DBAL\Schema\Constraint
|
||||
|
||||
If you have custom classes that implement the constraint interface, you have to implement
|
||||
an additional method ``getQuotedColumns`` now. This method is used to build proper constraint
|
||||
SQL for columns that need to be quoted, like keywords reserved by the specific platform used.
|
||||
The method has to return the same values as ``getColumns`` only that those column names that
|
||||
need quotation have to be returned quoted for the given platform.
|
||||
|
||||
# Upgrade to 2.3
|
||||
|
||||
## Oracle Session Init now sets Numeric Character
|
||||
|
||||
Before 2.3 the Oracle Session Init did not care about the numeric character of the Session.
|
||||
This could lead to problems on non english locale systems that required a comma as a floating
|
||||
point seperator in Oracle. Since 2.3, using the Oracle Session Init on connection start the
|
||||
client session will be altered to set the numeric character to ".,":
|
||||
|
||||
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,'
|
||||
|
||||
See [DBAL-345](http://www.doctrine-project.org/jira/browse/DBAL-345) for more details.
|
||||
|
||||
## Doctrine\DBAL\Connection and Doctrine\DBAL\Statement
|
||||
|
||||
The query related methods including but not limited to executeQuery, exec, query, and executeUpdate
|
||||
now wrap the driver exceptions such as PDOException with DBALException to add more debugging
|
||||
information such as the executed SQL statement, and any bound parameters.
|
||||
|
||||
If you want to retrieve the driver specific exception, you can retrieve it by calling the
|
||||
``getPrevious()`` method on DBALException.
|
||||
|
||||
Before:
|
||||
|
||||
catch(\PDOException $ex) {
|
||||
// ...
|
||||
}
|
||||
|
||||
After:
|
||||
|
||||
catch(\Doctrine\DBAL\DBALException $ex) {
|
||||
$pdoException = $ex->getPrevious();
|
||||
// ...
|
||||
}
|
||||
|
||||
## Doctrine\DBAL\Connection#setCharsetSQL() removed
|
||||
|
||||
This method only worked on MySQL and it is considered unsafe on MySQL to use SET NAMES UTF-8 instead
|
||||
of setting the charset directly on connection already. Replace this behavior with the
|
||||
connection charset option:
|
||||
|
||||
Before:
|
||||
|
||||
$conn = DriverManager::getConnection(array(..));
|
||||
$conn->setCharset('UTF8');
|
||||
|
||||
After:
|
||||
|
||||
$conn = DriverManager::getConnection(array('charset' => 'UTF8', ..));
|
||||
|
||||
## Doctrine\DBAL\Schema\Table#renameColumn() removed
|
||||
|
||||
Doctrine\DBAL\Schema\Table#renameColumn() was removed, because it drops and recreates
|
||||
the column instead. There is no fix available, because a schema diff
|
||||
cannot reliably detect if a column was renamed or one column was created
|
||||
and another one dropped.
|
||||
|
||||
You should use explicit SQL ALTER TABLE statements to change columns names.
|
||||
|
||||
## Schema Filter paths
|
||||
|
||||
The Filter Schema assets expression is not wrapped in () anymore for the regexp automatically.
|
||||
|
||||
Before:
|
||||
|
||||
$config->setFilterSchemaAssetsExpression('foo');
|
||||
|
||||
After:
|
||||
|
||||
$config->setFilterSchemaAssetsExpression('(foo)');
|
||||
|
||||
## Creating MySQL Tables now defaults to UTF-8
|
||||
|
||||
If you are creating a new MySQL Table through the Doctrine API, charset/collate are
|
||||
now set to 'utf8'/'utf8_unicode_ci' by default. Previously the MySQL server defaults were used.
|
||||
|
||||
# Upgrade to 2.2
|
||||
|
||||
## Doctrine\DBAL\Connection#insert and Doctrine\DBAL\Connection#update
|
||||
|
||||
Both methods now accept an optional last parameter $types with binding types of the values passed.
|
||||
This can potentially break child classes that have overwritten one of these methods.
|
||||
|
||||
## Doctrine\DBAL\Connection#executeQuery
|
||||
|
||||
Doctrine\DBAL\Connection#executeQuery() got a new last parameter "QueryCacheProfile $qcp"
|
||||
|
||||
## Doctrine\DBAL\Driver\Statement split
|
||||
|
||||
The Driver statement was split into a ResultStatement and the normal statement extending from it.
|
||||
This separates the configuration and the retrieval API from a statement.
|
||||
|
||||
## MsSql Platform/SchemaManager renamed
|
||||
|
||||
The MsSqlPlatform was renamed to SQLServerPlatform, the MsSqlSchemaManager was renamed
|
||||
to SQLServerSchemaManager.
|
||||
|
||||
## Cleanup SQLServer Platform version mess
|
||||
|
||||
DBAL 2.1 and before were actually only compatible to SQL Server 2008, not earlier versions.
|
||||
Still other parts of the platform did use old features instead of newly introduced datatypes
|
||||
in SQL Server 2005. Starting with DBAL 2.2 you can pick the Doctrine abstraction exactly
|
||||
matching your SQL Server version.
|
||||
|
||||
The PDO SqlSrv driver now uses the new `SQLServer2008Platform` as default platform.
|
||||
This platform uses new features of SQL Server as of version 2008. This also includes a switch
|
||||
in the used fields for "text" and "blob" field types to:
|
||||
|
||||
"text" => "VARCHAR(MAX)"
|
||||
"blob" => "VARBINARY(MAX)"
|
||||
|
||||
Additionally `SQLServerPlatform` in DBAL 2.1 and before used "DATE", "TIME" and "DATETIME2" for dates.
|
||||
This types are only available since version 2008 and the introduction of an explicit
|
||||
SQLServer 2008 platform makes this dependency explicit.
|
||||
|
||||
An `SQLServer2005Platform` was also introduced to differentiate the features between
|
||||
versions 2003, earlier and 2005.
|
||||
|
||||
With this change the `SQLServerPlatform` now throws an exception for using limit queries
|
||||
with an offset, since SQLServer 2003 and lower do not support this feature.
|
||||
|
||||
To use the old SQL Server Platform, because you are using SQL Server 2003 and below use
|
||||
the following configuration code:
|
||||
|
||||
use Doctrine\DBAL\DriverManager;
|
||||
use Doctrine\DBAL\Platforms\SQLServerPlatform;
|
||||
use Doctrine\DBAL\Platforms\SQLServer2005Platform;
|
||||
|
||||
// You are using SQL Server 2003 or earlier
|
||||
$conn = DriverManager::getConnection(array(
|
||||
'driver' => 'pdo_sqlsrv',
|
||||
'platform' => new SQLServerPlatform()
|
||||
// .. additional parameters
|
||||
));
|
||||
|
||||
// You are using SQL Server 2005
|
||||
$conn = DriverManager::getConnection(array(
|
||||
'driver' => 'pdo_sqlsrv',
|
||||
'platform' => new SQLServer2005Platform()
|
||||
// .. additional parameters
|
||||
));
|
||||
|
||||
// You are using SQL Server 2008
|
||||
$conn = DriverManager::getConnection(array(
|
||||
'driver' => 'pdo_sqlsrv',
|
||||
// 2008 is default platform
|
||||
// .. additional parameters
|
||||
));
|
||||
4
vendor/doctrine/dbal/bin/doctrine-dbal
vendored
Executable file
4
vendor/doctrine/dbal/bin/doctrine-dbal
vendored
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/usr/bin/env php
|
||||
<?php
|
||||
|
||||
require __DIR__ . '/doctrine-dbal.php';
|
||||
57
vendor/doctrine/dbal/bin/doctrine-dbal.php
vendored
Normal file
57
vendor/doctrine/dbal/bin/doctrine-dbal.php
vendored
Normal file
@@ -0,0 +1,57 @@
|
||||
<?php
|
||||
|
||||
use Doctrine\DBAL\Tools\Console\ConsoleRunner;
|
||||
use Symfony\Component\Console\Helper\HelperSet;
|
||||
|
||||
$files = [__DIR__ . '/../vendor/autoload.php', __DIR__ . '/../../../autoload.php'];
|
||||
$loader = null;
|
||||
$cwd = getcwd();
|
||||
$directories = [$cwd, $cwd . DIRECTORY_SEPARATOR . 'config'];
|
||||
$configFile = null;
|
||||
|
||||
foreach ($files as $file) {
|
||||
if (file_exists($file)) {
|
||||
$loader = require $file;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (! $loader) {
|
||||
throw new RuntimeException('vendor/autoload.php could not be found. Did you run `php composer.phar install`?');
|
||||
}
|
||||
|
||||
foreach ($directories as $directory) {
|
||||
$configFile = $directory . DIRECTORY_SEPARATOR . 'cli-config.php';
|
||||
|
||||
if (file_exists($configFile)) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (! file_exists($configFile)) {
|
||||
ConsoleRunner::printCliConfigTemplate();
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
if (! is_readable($configFile)) {
|
||||
echo 'Configuration file [' . $configFile . '] does not have read permission.' . PHP_EOL;
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
||||
$commands = [];
|
||||
$helperSet = require $configFile;
|
||||
|
||||
if (! $helperSet instanceof HelperSet) {
|
||||
foreach ($GLOBALS as $helperSetCandidate) {
|
||||
if ($helperSetCandidate instanceof HelperSet) {
|
||||
$helperSet = $helperSetCandidate;
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ConsoleRunner::run($helperSet, $commands);
|
||||
66
vendor/doctrine/dbal/composer.json
vendored
Normal file
66
vendor/doctrine/dbal/composer.json
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
{
|
||||
"name": "doctrine/dbal",
|
||||
"type": "library",
|
||||
"description": "Powerful PHP database abstraction layer (DBAL) with many features for database schema introspection and management.",
|
||||
"keywords": [
|
||||
"abstraction",
|
||||
"database",
|
||||
"dbal",
|
||||
"db2",
|
||||
"mariadb",
|
||||
"mssql",
|
||||
"mysql",
|
||||
"pgsql",
|
||||
"postgresql",
|
||||
"oci8",
|
||||
"oracle",
|
||||
"pdo",
|
||||
"queryobject",
|
||||
"sasql",
|
||||
"sql",
|
||||
"sqlanywhere",
|
||||
"sqlite",
|
||||
"sqlserver",
|
||||
"sqlsrv"
|
||||
],
|
||||
"homepage": "https://www.doctrine-project.org/projects/dbal.html",
|
||||
"license": "MIT",
|
||||
"authors": [
|
||||
{"name": "Guilherme Blanco", "email": "guilhermeblanco@gmail.com"},
|
||||
{"name": "Roman Borschel", "email": "roman@code-factory.org"},
|
||||
{"name": "Benjamin Eberlei", "email": "kontakt@beberlei.de"},
|
||||
{"name": "Jonathan Wage", "email": "jonwage@gmail.com"}
|
||||
],
|
||||
"require": {
|
||||
"php": "^7.2",
|
||||
"ext-pdo": "*",
|
||||
"doctrine/cache": "^1.0",
|
||||
"doctrine/event-manager": "^1.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"doctrine/coding-standard": "^6.0",
|
||||
"jetbrains/phpstorm-stubs": "^2019.1",
|
||||
"phpstan/phpstan": "^0.11.3",
|
||||
"phpunit/phpunit": "^8.4.1",
|
||||
"symfony/console": "^2.0.5|^3.0|^4.0|^5.0"
|
||||
},
|
||||
"suggest": {
|
||||
"symfony/console": "For helpful console commands such as SQL execution and import of files."
|
||||
},
|
||||
"bin": ["bin/doctrine-dbal"],
|
||||
"config": {
|
||||
"sort-packages": true
|
||||
},
|
||||
"autoload": {
|
||||
"psr-4": { "Doctrine\\DBAL\\": "lib/Doctrine/DBAL" }
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": { "Doctrine\\Tests\\": "tests/Doctrine/Tests" }
|
||||
},
|
||||
"extra": {
|
||||
"branch-alias": {
|
||||
"dev-master": "2.10.x-dev",
|
||||
"dev-develop": "3.0.x-dev"
|
||||
}
|
||||
}
|
||||
}
|
||||
137
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php
vendored
Normal file
137
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ArrayStatement.php
vendored
Normal file
@@ -0,0 +1,137 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Cache;
|
||||
|
||||
use ArrayIterator;
|
||||
use Doctrine\DBAL\Driver\ResultStatement;
|
||||
use Doctrine\DBAL\FetchMode;
|
||||
use InvalidArgumentException;
|
||||
use IteratorAggregate;
|
||||
use PDO;
|
||||
use function array_merge;
|
||||
use function array_values;
|
||||
use function count;
|
||||
use function reset;
|
||||
|
||||
class ArrayStatement implements IteratorAggregate, ResultStatement
|
||||
{
|
||||
/** @var mixed[] */
|
||||
private $data;
|
||||
|
||||
/** @var int */
|
||||
private $columnCount = 0;
|
||||
|
||||
/** @var int */
|
||||
private $num = 0;
|
||||
|
||||
/** @var int */
|
||||
private $defaultFetchMode = FetchMode::MIXED;
|
||||
|
||||
/**
|
||||
* @param mixed[] $data
|
||||
*/
|
||||
public function __construct(array $data)
|
||||
{
|
||||
$this->data = $data;
|
||||
if (! count($data)) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->columnCount = count($data[0]);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function closeCursor()
|
||||
{
|
||||
unset($this->data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function columnCount()
|
||||
{
|
||||
return $this->columnCount;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)
|
||||
{
|
||||
if ($arg2 !== null || $arg3 !== null) {
|
||||
throw new InvalidArgumentException('Caching layer does not support 2nd/3rd argument to setFetchMode()');
|
||||
}
|
||||
|
||||
$this->defaultFetchMode = $fetchMode;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
$data = $this->fetchAll();
|
||||
|
||||
return new ArrayIterator($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
|
||||
{
|
||||
if (! isset($this->data[$this->num])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$row = $this->data[$this->num++];
|
||||
$fetchMode = $fetchMode ?: $this->defaultFetchMode;
|
||||
|
||||
if ($fetchMode === FetchMode::ASSOCIATIVE) {
|
||||
return $row;
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::NUMERIC) {
|
||||
return array_values($row);
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::MIXED) {
|
||||
return array_merge($row, array_values($row));
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
return reset($row);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Invalid fetch-style given for fetching result.');
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)
|
||||
{
|
||||
$rows = [];
|
||||
while ($row = $this->fetch($fetchMode)) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchColumn($columnIndex = 0)
|
||||
{
|
||||
$row = $this->fetch(FetchMode::NUMERIC);
|
||||
|
||||
// TODO: verify that return false is the correct behavior
|
||||
return $row[$columnIndex] ?? false;
|
||||
}
|
||||
}
|
||||
24
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php
vendored
Normal file
24
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/CacheException.php
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Cache;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
|
||||
class CacheException extends DBALException
|
||||
{
|
||||
/**
|
||||
* @return \Doctrine\DBAL\Cache\CacheException
|
||||
*/
|
||||
public static function noCacheKey()
|
||||
{
|
||||
return new self('No cache key was set.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\Cache\CacheException
|
||||
*/
|
||||
public static function noResultDriverConfigured()
|
||||
{
|
||||
return new self('Trying to cache a query but no result driver is configured.');
|
||||
}
|
||||
}
|
||||
121
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php
vendored
Normal file
121
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/QueryCacheProfile.php
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Cache;
|
||||
|
||||
use Doctrine\Common\Cache\Cache;
|
||||
use function hash;
|
||||
use function serialize;
|
||||
use function sha1;
|
||||
|
||||
/**
|
||||
* Query Cache Profile handles the data relevant for query caching.
|
||||
*
|
||||
* It is a value object, setter methods return NEW instances.
|
||||
*/
|
||||
class QueryCacheProfile
|
||||
{
|
||||
/** @var Cache|null */
|
||||
private $resultCacheDriver;
|
||||
|
||||
/** @var int */
|
||||
private $lifetime = 0;
|
||||
|
||||
/** @var string|null */
|
||||
private $cacheKey;
|
||||
|
||||
/**
|
||||
* @param int $lifetime
|
||||
* @param string|null $cacheKey
|
||||
*/
|
||||
public function __construct($lifetime = 0, $cacheKey = null, ?Cache $resultCache = null)
|
||||
{
|
||||
$this->lifetime = $lifetime;
|
||||
$this->cacheKey = $cacheKey;
|
||||
$this->resultCacheDriver = $resultCache;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return Cache|null
|
||||
*/
|
||||
public function getResultCacheDriver()
|
||||
{
|
||||
return $this->resultCacheDriver;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return int
|
||||
*/
|
||||
public function getLifetime()
|
||||
{
|
||||
return $this->lifetime;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return string
|
||||
*
|
||||
* @throws CacheException
|
||||
*/
|
||||
public function getCacheKey()
|
||||
{
|
||||
if ($this->cacheKey === null) {
|
||||
throw CacheException::noCacheKey();
|
||||
}
|
||||
|
||||
return $this->cacheKey;
|
||||
}
|
||||
|
||||
/**
|
||||
* Generates the real cache key from query, params, types and connection parameters.
|
||||
*
|
||||
* @param string $query
|
||||
* @param mixed[] $params
|
||||
* @param int[]|string[] $types
|
||||
* @param mixed[] $connectionParams
|
||||
*
|
||||
* @return string[]
|
||||
*/
|
||||
public function generateCacheKeys($query, $params, $types, array $connectionParams = [])
|
||||
{
|
||||
$realCacheKey = 'query=' . $query .
|
||||
'¶ms=' . serialize($params) .
|
||||
'&types=' . serialize($types) .
|
||||
'&connectionParams=' . hash('sha256', serialize($connectionParams));
|
||||
|
||||
// should the key be automatically generated using the inputs or is the cache key set?
|
||||
if ($this->cacheKey === null) {
|
||||
$cacheKey = sha1($realCacheKey);
|
||||
} else {
|
||||
$cacheKey = $this->cacheKey;
|
||||
}
|
||||
|
||||
return [$cacheKey, $realCacheKey];
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\Cache\QueryCacheProfile
|
||||
*/
|
||||
public function setResultCacheDriver(Cache $cache)
|
||||
{
|
||||
return new QueryCacheProfile($this->lifetime, $this->cacheKey, $cache);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $cacheKey
|
||||
*
|
||||
* @return \Doctrine\DBAL\Cache\QueryCacheProfile
|
||||
*/
|
||||
public function setCacheKey($cacheKey)
|
||||
{
|
||||
return new QueryCacheProfile($this->lifetime, $cacheKey, $this->resultCacheDriver);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $lifetime
|
||||
*
|
||||
* @return \Doctrine\DBAL\Cache\QueryCacheProfile
|
||||
*/
|
||||
public function setLifetime($lifetime)
|
||||
{
|
||||
return new QueryCacheProfile($lifetime, $this->cacheKey, $this->resultCacheDriver);
|
||||
}
|
||||
}
|
||||
212
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php
vendored
Normal file
212
vendor/doctrine/dbal/lib/Doctrine/DBAL/Cache/ResultCacheStatement.php
vendored
Normal file
@@ -0,0 +1,212 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Cache;
|
||||
|
||||
use ArrayIterator;
|
||||
use Doctrine\Common\Cache\Cache;
|
||||
use Doctrine\DBAL\Driver\ResultStatement;
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
use Doctrine\DBAL\FetchMode;
|
||||
use InvalidArgumentException;
|
||||
use IteratorAggregate;
|
||||
use PDO;
|
||||
use function array_merge;
|
||||
use function array_values;
|
||||
use function assert;
|
||||
use function reset;
|
||||
|
||||
/**
|
||||
* Cache statement for SQL results.
|
||||
*
|
||||
* A result is saved in multiple cache keys, there is the originally specified
|
||||
* cache key which is just pointing to result rows by key. The following things
|
||||
* have to be ensured:
|
||||
*
|
||||
* 1. lifetime of the original key has to be longer than that of all the individual rows keys
|
||||
* 2. if any one row key is missing the query has to be re-executed.
|
||||
*
|
||||
* Also you have to realize that the cache will load the whole result into memory at once to ensure 2.
|
||||
* This means that the memory usage for cached results might increase by using this feature.
|
||||
*/
|
||||
class ResultCacheStatement implements IteratorAggregate, ResultStatement
|
||||
{
|
||||
/** @var Cache */
|
||||
private $resultCache;
|
||||
|
||||
/** @var string */
|
||||
private $cacheKey;
|
||||
|
||||
/** @var string */
|
||||
private $realKey;
|
||||
|
||||
/** @var int */
|
||||
private $lifetime;
|
||||
|
||||
/** @var ResultStatement */
|
||||
private $statement;
|
||||
|
||||
/**
|
||||
* Did we reach the end of the statement?
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $emptied = false;
|
||||
|
||||
/** @var mixed[] */
|
||||
private $data;
|
||||
|
||||
/** @var int */
|
||||
private $defaultFetchMode = FetchMode::MIXED;
|
||||
|
||||
/**
|
||||
* @param string $cacheKey
|
||||
* @param string $realKey
|
||||
* @param int $lifetime
|
||||
*/
|
||||
public function __construct(ResultStatement $stmt, Cache $resultCache, $cacheKey, $realKey, $lifetime)
|
||||
{
|
||||
$this->statement = $stmt;
|
||||
$this->resultCache = $resultCache;
|
||||
$this->cacheKey = $cacheKey;
|
||||
$this->realKey = $realKey;
|
||||
$this->lifetime = $lifetime;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function closeCursor()
|
||||
{
|
||||
$this->statement->closeCursor();
|
||||
if (! $this->emptied || $this->data === null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
$data = $this->resultCache->fetch($this->cacheKey);
|
||||
if (! $data) {
|
||||
$data = [];
|
||||
}
|
||||
$data[$this->realKey] = $this->data;
|
||||
|
||||
$this->resultCache->save($this->cacheKey, $data, $this->lifetime);
|
||||
unset($this->data);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function columnCount()
|
||||
{
|
||||
return $this->statement->columnCount();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)
|
||||
{
|
||||
$this->defaultFetchMode = $fetchMode;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
$data = $this->fetchAll();
|
||||
|
||||
return new ArrayIterator($data);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
|
||||
{
|
||||
if ($this->data === null) {
|
||||
$this->data = [];
|
||||
}
|
||||
|
||||
$row = $this->statement->fetch(FetchMode::ASSOCIATIVE);
|
||||
|
||||
if ($row) {
|
||||
$this->data[] = $row;
|
||||
|
||||
$fetchMode = $fetchMode ?: $this->defaultFetchMode;
|
||||
|
||||
if ($fetchMode === FetchMode::ASSOCIATIVE) {
|
||||
return $row;
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::NUMERIC) {
|
||||
return array_values($row);
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::MIXED) {
|
||||
return array_merge($row, array_values($row));
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
return reset($row);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException('Invalid fetch-style given for caching result.');
|
||||
}
|
||||
|
||||
$this->emptied = true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)
|
||||
{
|
||||
$data = $this->statement->fetchAll($fetchMode, $fetchArgument, $ctorArgs);
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
foreach ($data as $key => $value) {
|
||||
$data[$key] = [$value];
|
||||
}
|
||||
}
|
||||
|
||||
$this->data = $data;
|
||||
$this->emptied = true;
|
||||
|
||||
return $this->data;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchColumn($columnIndex = 0)
|
||||
{
|
||||
$row = $this->fetch(FetchMode::NUMERIC);
|
||||
|
||||
// TODO: verify that return false is the correct behavior
|
||||
return $row[$columnIndex] ?? false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the number of rows affected by the last DELETE, INSERT, or UPDATE statement
|
||||
* executed by the corresponding object.
|
||||
*
|
||||
* If the last SQL statement executed by the associated Statement object was a SELECT statement,
|
||||
* some databases may return the number of rows returned by that statement. However,
|
||||
* this behaviour is not guaranteed for all databases and should not be
|
||||
* relied on for portable applications.
|
||||
*
|
||||
* @return int The number of rows.
|
||||
*/
|
||||
public function rowCount()
|
||||
{
|
||||
assert($this->statement instanceof Statement);
|
||||
|
||||
return $this->statement->rowCount();
|
||||
}
|
||||
}
|
||||
32
vendor/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php
vendored
Normal file
32
vendor/doctrine/dbal/lib/Doctrine/DBAL/ColumnCase.php
vendored
Normal file
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL;
|
||||
|
||||
use PDO;
|
||||
|
||||
/**
|
||||
* Contains portable column case conversions.
|
||||
*/
|
||||
final class ColumnCase
|
||||
{
|
||||
/**
|
||||
* Convert column names to upper case.
|
||||
*
|
||||
* @see \PDO::CASE_UPPER
|
||||
*/
|
||||
public const UPPER = PDO::CASE_UPPER;
|
||||
|
||||
/**
|
||||
* Convert column names to lower case.
|
||||
*
|
||||
* @see \PDO::CASE_LOWER
|
||||
*/
|
||||
public const LOWER = PDO::CASE_LOWER;
|
||||
|
||||
/**
|
||||
* This class cannot be instantiated.
|
||||
*/
|
||||
private function __construct()
|
||||
{
|
||||
}
|
||||
}
|
||||
160
vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php
vendored
Normal file
160
vendor/doctrine/dbal/lib/Doctrine/DBAL/Configuration.php
vendored
Normal file
@@ -0,0 +1,160 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL;
|
||||
|
||||
use Doctrine\Common\Cache\Cache;
|
||||
use Doctrine\DBAL\Logging\SQLLogger;
|
||||
use Doctrine\DBAL\Schema\AbstractAsset;
|
||||
use function preg_match;
|
||||
|
||||
/**
|
||||
* Configuration container for the Doctrine DBAL.
|
||||
*
|
||||
* @internal When adding a new configuration option just write a getter/setter
|
||||
* pair and add the option to the _attributes array with a proper default value.
|
||||
*/
|
||||
class Configuration
|
||||
{
|
||||
/**
|
||||
* The attributes that are contained in the configuration.
|
||||
* Values are default values.
|
||||
*
|
||||
* @var mixed[]
|
||||
*/
|
||||
protected $_attributes = [];
|
||||
|
||||
/**
|
||||
* Sets the SQL logger to use. Defaults to NULL which means SQL logging is disabled.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setSQLLogger(?SQLLogger $logger = null)
|
||||
{
|
||||
$this->_attributes['sqlLogger'] = $logger;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the SQL logger that is used.
|
||||
*
|
||||
* @return SQLLogger|null
|
||||
*/
|
||||
public function getSQLLogger()
|
||||
{
|
||||
return $this->_attributes['sqlLogger'] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the cache driver implementation that is used for query result caching.
|
||||
*
|
||||
* @return Cache|null
|
||||
*/
|
||||
public function getResultCacheImpl()
|
||||
{
|
||||
return $this->_attributes['resultCacheImpl'] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the cache driver implementation that is used for query result caching.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setResultCacheImpl(Cache $cacheImpl)
|
||||
{
|
||||
$this->_attributes['resultCacheImpl'] = $cacheImpl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the filter schema assets expression.
|
||||
*
|
||||
* Only include tables/sequences matching the filter expression regexp in
|
||||
* schema instances generated for the active connection when calling
|
||||
* {AbstractSchemaManager#createSchema()}.
|
||||
*
|
||||
* @deprecated Use Configuration::setSchemaAssetsFilter() instead
|
||||
*
|
||||
* @param string $filterExpression
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function setFilterSchemaAssetsExpression($filterExpression)
|
||||
{
|
||||
$this->_attributes['filterSchemaAssetsExpression'] = $filterExpression;
|
||||
if ($filterExpression) {
|
||||
$this->_attributes['filterSchemaAssetsExpressionCallable'] = $this->buildSchemaAssetsFilterFromExpression($filterExpression);
|
||||
} else {
|
||||
$this->_attributes['filterSchemaAssetsExpressionCallable'] = null;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns filter schema assets expression.
|
||||
*
|
||||
* @deprecated Use Configuration::getSchemaAssetsFilter() instead
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getFilterSchemaAssetsExpression()
|
||||
{
|
||||
return $this->_attributes['filterSchemaAssetsExpression'] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $filterExpression
|
||||
*/
|
||||
private function buildSchemaAssetsFilterFromExpression($filterExpression) : callable
|
||||
{
|
||||
return static function ($assetName) use ($filterExpression) {
|
||||
if ($assetName instanceof AbstractAsset) {
|
||||
$assetName = $assetName->getName();
|
||||
}
|
||||
|
||||
return preg_match($filterExpression, $assetName);
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the callable to use to filter schema assets.
|
||||
*/
|
||||
public function setSchemaAssetsFilter(?callable $callable = null) : ?callable
|
||||
{
|
||||
$this->_attributes['filterSchemaAssetsExpression'] = null;
|
||||
|
||||
return $this->_attributes['filterSchemaAssetsExpressionCallable'] = $callable;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the callable to use to filter schema assets.
|
||||
*/
|
||||
public function getSchemaAssetsFilter() : ?callable
|
||||
{
|
||||
return $this->_attributes['filterSchemaAssetsExpressionCallable'] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the default auto-commit mode for connections.
|
||||
*
|
||||
* If a connection is in auto-commit mode, then all its SQL statements will be executed and committed as individual
|
||||
* transactions. Otherwise, its SQL statements are grouped into transactions that are terminated by a call to either
|
||||
* the method commit or the method rollback. By default, new connections are in auto-commit mode.
|
||||
*
|
||||
* @see getAutoCommit
|
||||
*
|
||||
* @param bool $autoCommit True to enable auto-commit mode; false to disable it.
|
||||
*/
|
||||
public function setAutoCommit($autoCommit)
|
||||
{
|
||||
$this->_attributes['autoCommit'] = (bool) $autoCommit;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the default auto-commit mode for connections.
|
||||
*
|
||||
* @see setAutoCommit
|
||||
*
|
||||
* @return bool True if auto-commit mode is enabled by default for connections, false otherwise.
|
||||
*/
|
||||
public function getAutoCommit()
|
||||
{
|
||||
return $this->_attributes['autoCommit'] ?? true;
|
||||
}
|
||||
}
|
||||
1685
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php
vendored
Normal file
1685
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php
vendored
Normal file
File diff suppressed because it is too large
Load Diff
38
vendor/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php
vendored
Normal file
38
vendor/doctrine/dbal/lib/Doctrine/DBAL/ConnectionException.php
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL;
|
||||
|
||||
class ConnectionException extends DBALException
|
||||
{
|
||||
/**
|
||||
* @return \Doctrine\DBAL\ConnectionException
|
||||
*/
|
||||
public static function commitFailedRollbackOnly()
|
||||
{
|
||||
return new self('Transaction commit failed because the transaction has been marked for rollback only.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\ConnectionException
|
||||
*/
|
||||
public static function noActiveTransaction()
|
||||
{
|
||||
return new self('There is no active transaction.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\ConnectionException
|
||||
*/
|
||||
public static function savepointsNotSupported()
|
||||
{
|
||||
return new self('Savepoints are not supported by this driver.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\ConnectionException
|
||||
*/
|
||||
public static function mayNotAlterNestedTransactionWithSavepointsInTransaction()
|
||||
{
|
||||
return new self('May not alter the nested transaction with savepoints behavior while a transaction is open.');
|
||||
}
|
||||
}
|
||||
377
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php
vendored
Normal file
377
vendor/doctrine/dbal/lib/Doctrine/DBAL/Connections/MasterSlaveConnection.php
vendored
Normal file
@@ -0,0 +1,377 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Connections;
|
||||
|
||||
use Doctrine\Common\EventManager;
|
||||
use Doctrine\DBAL\Configuration;
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Driver\Connection as DriverConnection;
|
||||
use Doctrine\DBAL\Event\ConnectionEventArgs;
|
||||
use Doctrine\DBAL\Events;
|
||||
use InvalidArgumentException;
|
||||
use function array_rand;
|
||||
use function assert;
|
||||
use function count;
|
||||
use function func_get_args;
|
||||
|
||||
/**
|
||||
* Master-Slave Connection
|
||||
*
|
||||
* Connection can be used with master-slave setups.
|
||||
*
|
||||
* Important for the understanding of this connection should be how and when
|
||||
* it picks the slave or master.
|
||||
*
|
||||
* 1. Slave if master was never picked before and ONLY if 'getWrappedConnection'
|
||||
* or 'executeQuery' is used.
|
||||
* 2. Master picked when 'exec', 'executeUpdate', 'insert', 'delete', 'update', 'createSavepoint',
|
||||
* 'releaseSavepoint', 'beginTransaction', 'rollback', 'commit', 'query' or
|
||||
* 'prepare' is called.
|
||||
* 3. If master was picked once during the lifetime of the connection it will always get picked afterwards.
|
||||
* 4. One slave connection is randomly picked ONCE during a request.
|
||||
*
|
||||
* ATTENTION: You can write to the slave with this connection if you execute a write query without
|
||||
* opening up a transaction. For example:
|
||||
*
|
||||
* $conn = DriverManager::getConnection(...);
|
||||
* $conn->executeQuery("DELETE FROM table");
|
||||
*
|
||||
* Be aware that Connection#executeQuery is a method specifically for READ
|
||||
* operations only.
|
||||
*
|
||||
* This connection is limited to slave operations using the
|
||||
* Connection#executeQuery operation only, because it wouldn't be compatible
|
||||
* with the ORM or SchemaManager code otherwise. Both use all the other
|
||||
* operations in a context where writes could happen to a slave, which makes
|
||||
* this restricted approach necessary.
|
||||
*
|
||||
* You can manually connect to the master at any time by calling:
|
||||
*
|
||||
* $conn->connect('master');
|
||||
*
|
||||
* Instantiation through the DriverManager looks like:
|
||||
*
|
||||
* @example
|
||||
*
|
||||
* $conn = DriverManager::getConnection(array(
|
||||
* 'wrapperClass' => 'Doctrine\DBAL\Connections\MasterSlaveConnection',
|
||||
* 'driver' => 'pdo_mysql',
|
||||
* 'master' => array('user' => '', 'password' => '', 'host' => '', 'dbname' => ''),
|
||||
* 'slaves' => array(
|
||||
* array('user' => 'slave1', 'password', 'host' => '', 'dbname' => ''),
|
||||
* array('user' => 'slave2', 'password', 'host' => '', 'dbname' => ''),
|
||||
* )
|
||||
* ));
|
||||
*
|
||||
* You can also pass 'driverOptions' and any other documented option to each of this drivers to pass additional information.
|
||||
*/
|
||||
class MasterSlaveConnection extends Connection
|
||||
{
|
||||
/**
|
||||
* Master and slave connection (one of the randomly picked slaves).
|
||||
*
|
||||
* @var DriverConnection[]|null[]
|
||||
*/
|
||||
protected $connections = ['master' => null, 'slave' => null];
|
||||
|
||||
/**
|
||||
* You can keep the slave connection and then switch back to it
|
||||
* during the request if you know what you are doing.
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
protected $keepSlave = false;
|
||||
|
||||
/**
|
||||
* Creates Master Slave Connection.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @throws InvalidArgumentException
|
||||
*/
|
||||
public function __construct(array $params, Driver $driver, ?Configuration $config = null, ?EventManager $eventManager = null)
|
||||
{
|
||||
if (! isset($params['slaves'], $params['master'])) {
|
||||
throw new InvalidArgumentException('master or slaves configuration missing');
|
||||
}
|
||||
if (count($params['slaves']) === 0) {
|
||||
throw new InvalidArgumentException('You have to configure at least one slaves.');
|
||||
}
|
||||
|
||||
$params['master']['driver'] = $params['driver'];
|
||||
foreach ($params['slaves'] as $slaveKey => $slave) {
|
||||
$params['slaves'][$slaveKey]['driver'] = $params['driver'];
|
||||
}
|
||||
|
||||
$this->keepSlave = (bool) ($params['keepSlave'] ?? false);
|
||||
|
||||
parent::__construct($params, $driver, $config, $eventManager);
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the connection is currently towards the master or not.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isConnectedToMaster()
|
||||
{
|
||||
return $this->_conn !== null && $this->_conn === $this->connections['master'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function connect($connectionName = null)
|
||||
{
|
||||
$requestedConnectionChange = ($connectionName !== null);
|
||||
$connectionName = $connectionName ?: 'slave';
|
||||
|
||||
if ($connectionName !== 'slave' && $connectionName !== 'master') {
|
||||
throw new InvalidArgumentException('Invalid option to connect(), only master or slave allowed.');
|
||||
}
|
||||
|
||||
// If we have a connection open, and this is not an explicit connection
|
||||
// change request, then abort right here, because we are already done.
|
||||
// This prevents writes to the slave in case of "keepSlave" option enabled.
|
||||
if ($this->_conn !== null && ! $requestedConnectionChange) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$forceMasterAsSlave = false;
|
||||
|
||||
if ($this->getTransactionNestingLevel() > 0) {
|
||||
$connectionName = 'master';
|
||||
$forceMasterAsSlave = true;
|
||||
}
|
||||
|
||||
if (isset($this->connections[$connectionName])) {
|
||||
$this->_conn = $this->connections[$connectionName];
|
||||
|
||||
if ($forceMasterAsSlave && ! $this->keepSlave) {
|
||||
$this->connections['slave'] = $this->_conn;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($connectionName === 'master') {
|
||||
$this->connections['master'] = $this->_conn = $this->connectTo($connectionName);
|
||||
|
||||
// Set slave connection to master to avoid invalid reads
|
||||
if (! $this->keepSlave) {
|
||||
$this->connections['slave'] = $this->connections['master'];
|
||||
}
|
||||
} else {
|
||||
$this->connections['slave'] = $this->_conn = $this->connectTo($connectionName);
|
||||
}
|
||||
|
||||
if ($this->_eventManager->hasListeners(Events::postConnect)) {
|
||||
$eventArgs = new ConnectionEventArgs($this);
|
||||
$this->_eventManager->dispatchEvent(Events::postConnect, $eventArgs);
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Connects to a specific connection.
|
||||
*
|
||||
* @param string $connectionName
|
||||
*
|
||||
* @return DriverConnection
|
||||
*/
|
||||
protected function connectTo($connectionName)
|
||||
{
|
||||
$params = $this->getParams();
|
||||
|
||||
$driverOptions = $params['driverOptions'] ?? [];
|
||||
|
||||
$connectionParams = $this->chooseConnectionConfiguration($connectionName, $params);
|
||||
|
||||
$user = $connectionParams['user'] ?? null;
|
||||
$password = $connectionParams['password'] ?? null;
|
||||
|
||||
return $this->_driver->connect($connectionParams, $user, $password, $driverOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $connectionName
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected function chooseConnectionConfiguration($connectionName, $params)
|
||||
{
|
||||
if ($connectionName === 'master') {
|
||||
return $params['master'];
|
||||
}
|
||||
|
||||
$config = $params['slaves'][array_rand($params['slaves'])];
|
||||
|
||||
if (! isset($config['charset']) && isset($params['master']['charset'])) {
|
||||
$config['charset'] = $params['master']['charset'];
|
||||
}
|
||||
|
||||
return $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function executeUpdate($query, array $params = [], array $types = [])
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::executeUpdate($query, $params, $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function beginTransaction()
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::beginTransaction();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function commit()
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function rollBack()
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::rollBack();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function delete($tableName, array $identifier, array $types = [])
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::delete($tableName, $identifier, $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function close()
|
||||
{
|
||||
unset($this->connections['master'], $this->connections['slave']);
|
||||
|
||||
parent::close();
|
||||
|
||||
$this->_conn = null;
|
||||
$this->connections = ['master' => null, 'slave' => null];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function update($tableName, array $data, array $identifier, array $types = [])
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::update($tableName, $data, $identifier, $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function insert($tableName, array $data, array $types = [])
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::insert($tableName, $data, $types);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function exec($statement)
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::exec($statement);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function createSavepoint($savepoint)
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
parent::createSavepoint($savepoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function releaseSavepoint($savepoint)
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
parent::releaseSavepoint($savepoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function rollbackSavepoint($savepoint)
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
parent::rollbackSavepoint($savepoint);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
$this->connect('master');
|
||||
assert($this->_conn instanceof DriverConnection);
|
||||
|
||||
$args = func_get_args();
|
||||
|
||||
$logger = $this->getConfiguration()->getSQLLogger();
|
||||
if ($logger) {
|
||||
$logger->startQuery($args[0]);
|
||||
}
|
||||
|
||||
$statement = $this->_conn->query(...$args);
|
||||
|
||||
$statement->setFetchMode($this->defaultFetchMode);
|
||||
|
||||
if ($logger) {
|
||||
$logger->stopQuery();
|
||||
}
|
||||
|
||||
return $statement;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*/
|
||||
public function prepare($statement)
|
||||
{
|
||||
$this->connect('master');
|
||||
|
||||
return parent::prepare($statement);
|
||||
}
|
||||
}
|
||||
294
vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php
vendored
Normal file
294
vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php
vendored
Normal file
@@ -0,0 +1,294 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL;
|
||||
|
||||
use Doctrine\DBAL\Driver\DriverException as DriverExceptionInterface;
|
||||
use Doctrine\DBAL\Driver\ExceptionConverterDriver;
|
||||
use Doctrine\DBAL\Exception\DriverException;
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Types\Type;
|
||||
use Exception;
|
||||
use Throwable;
|
||||
use function array_map;
|
||||
use function bin2hex;
|
||||
use function get_class;
|
||||
use function gettype;
|
||||
use function implode;
|
||||
use function is_object;
|
||||
use function is_resource;
|
||||
use function is_string;
|
||||
use function json_encode;
|
||||
use function preg_replace;
|
||||
use function spl_object_hash;
|
||||
use function sprintf;
|
||||
|
||||
class DBALException extends Exception
|
||||
{
|
||||
/**
|
||||
* @param string $method
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function notSupported($method)
|
||||
{
|
||||
return new self(sprintf("Operation '%s' is not supported by platform.", $method));
|
||||
}
|
||||
|
||||
public static function invalidPlatformSpecified() : self
|
||||
{
|
||||
return new self(
|
||||
"Invalid 'platform' option specified, need to give an instance of " . AbstractPlatform::class . '.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $invalidPlatform
|
||||
*/
|
||||
public static function invalidPlatformType($invalidPlatform) : self
|
||||
{
|
||||
if (is_object($invalidPlatform)) {
|
||||
return new self(
|
||||
sprintf(
|
||||
"Option 'platform' must be a subtype of '%s', instance of '%s' given",
|
||||
AbstractPlatform::class,
|
||||
get_class($invalidPlatform)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return new self(
|
||||
sprintf(
|
||||
"Option 'platform' must be an object and subtype of '%s'. Got '%s'",
|
||||
AbstractPlatform::class,
|
||||
gettype($invalidPlatform)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a new instance for an invalid specified platform version.
|
||||
*
|
||||
* @param string $version The invalid platform version given.
|
||||
* @param string $expectedFormat The expected platform version format.
|
||||
*
|
||||
* @return DBALException
|
||||
*/
|
||||
public static function invalidPlatformVersionSpecified($version, $expectedFormat)
|
||||
{
|
||||
return new self(
|
||||
sprintf(
|
||||
'Invalid platform version "%s" specified. ' .
|
||||
'The platform version has to be specified in the format: "%s".',
|
||||
$version,
|
||||
$expectedFormat
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function invalidPdoInstance()
|
||||
{
|
||||
return new self(
|
||||
"The 'pdo' option was used in DriverManager::getConnection() but no " .
|
||||
'instance of PDO was given.'
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string|null $url The URL that was provided in the connection parameters (if any).
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function driverRequired($url = null)
|
||||
{
|
||||
if ($url) {
|
||||
return new self(
|
||||
sprintf(
|
||||
"The options 'driver' or 'driverClass' are mandatory if a connection URL without scheme " .
|
||||
'is given to DriverManager::getConnection(). Given URL: %s',
|
||||
$url
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return new self("The options 'driver' or 'driverClass' are mandatory if no PDO " .
|
||||
'instance is given to DriverManager::getConnection().');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $unknownDriverName
|
||||
* @param string[] $knownDrivers
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function unknownDriver($unknownDriverName, array $knownDrivers)
|
||||
{
|
||||
return new self("The given 'driver' " . $unknownDriverName . ' is unknown, ' .
|
||||
'Doctrine currently supports only the following drivers: ' . implode(', ', $knownDrivers));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $sql
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return self
|
||||
*/
|
||||
public static function driverExceptionDuringQuery(Driver $driver, Throwable $driverEx, $sql, array $params = [])
|
||||
{
|
||||
$msg = "An exception occurred while executing '" . $sql . "'";
|
||||
if ($params) {
|
||||
$msg .= ' with params ' . self::formatParameters($params);
|
||||
}
|
||||
$msg .= ":\n\n" . $driverEx->getMessage();
|
||||
|
||||
return static::wrapException($driver, $driverEx, $msg);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return self
|
||||
*/
|
||||
public static function driverException(Driver $driver, Throwable $driverEx)
|
||||
{
|
||||
return static::wrapException($driver, $driverEx, 'An exception occurred in driver: ' . $driverEx->getMessage());
|
||||
}
|
||||
|
||||
/**
|
||||
* @return self
|
||||
*/
|
||||
private static function wrapException(Driver $driver, Throwable $driverEx, $msg)
|
||||
{
|
||||
if ($driverEx instanceof DriverException) {
|
||||
return $driverEx;
|
||||
}
|
||||
if ($driver instanceof ExceptionConverterDriver && $driverEx instanceof DriverExceptionInterface) {
|
||||
return $driver->convertException($msg, $driverEx);
|
||||
}
|
||||
|
||||
return new self($msg, 0, $driverEx);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a human-readable representation of an array of parameters.
|
||||
* This properly handles binary data by returning a hex representation.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private static function formatParameters(array $params)
|
||||
{
|
||||
return '[' . implode(', ', array_map(static function ($param) {
|
||||
if (is_resource($param)) {
|
||||
return (string) $param;
|
||||
}
|
||||
|
||||
$json = @json_encode($param);
|
||||
|
||||
if (! is_string($json) || $json === 'null' && is_string($param)) {
|
||||
// JSON encoding failed, this is not a UTF-8 string.
|
||||
return sprintf('"%s"', preg_replace('/.{2}/', '\\x$0', bin2hex($param)));
|
||||
}
|
||||
|
||||
return $json;
|
||||
}, $params)) . ']';
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $wrapperClass
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function invalidWrapperClass($wrapperClass)
|
||||
{
|
||||
return new self("The given 'wrapperClass' " . $wrapperClass . ' has to be a ' .
|
||||
'subtype of \Doctrine\DBAL\Connection.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $driverClass
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function invalidDriverClass($driverClass)
|
||||
{
|
||||
return new self("The given 'driverClass' " . $driverClass . ' has to implement the ' . Driver::class . ' interface.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $tableName
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function invalidTableName($tableName)
|
||||
{
|
||||
return new self('Invalid table name specified: ' . $tableName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $tableName
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function noColumnsSpecifiedForTable($tableName)
|
||||
{
|
||||
return new self('No columns specified for table ' . $tableName);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function limitOffsetInvalid()
|
||||
{
|
||||
return new self('Invalid Offset in Limit Query, it has to be larger than or equal to 0.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function typeExists($name)
|
||||
{
|
||||
return new self('Type ' . $name . ' already exists.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function unknownColumnType($name)
|
||||
{
|
||||
return new self('Unknown column type "' . $name . '" requested. Any Doctrine type that you use has ' .
|
||||
'to be registered with \Doctrine\DBAL\Types\Type::addType(). You can get a list of all the ' .
|
||||
'known types with \Doctrine\DBAL\Types\Type::getTypesMap(). If this error occurs during database ' .
|
||||
'introspection then you might have forgotten to register all database types for a Doctrine Type. Use ' .
|
||||
'AbstractPlatform#registerDoctrineTypeMapping() or have your custom types implement ' .
|
||||
'Type#getMappedDatabaseTypes(). If the type name is empty you might ' .
|
||||
'have a problem with the cache or forgot some mapping information.');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $name
|
||||
*
|
||||
* @return \Doctrine\DBAL\DBALException
|
||||
*/
|
||||
public static function typeNotFound($name)
|
||||
{
|
||||
return new self('Type to be overwritten ' . $name . ' does not exist.');
|
||||
}
|
||||
|
||||
public static function typeNotRegistered(Type $type) : self
|
||||
{
|
||||
return new self(sprintf('Type of the class %s@%s is not registered.', get_class($type), spl_object_hash($type)));
|
||||
}
|
||||
|
||||
public static function typeAlreadyRegistered(Type $type) : self
|
||||
{
|
||||
return new self(
|
||||
sprintf('Type of the class %s@%s is already registered.', get_class($type), spl_object_hash($type))
|
||||
);
|
||||
}
|
||||
}
|
||||
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver.php
vendored
Normal file
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL;
|
||||
|
||||
use Doctrine\DBAL\Platforms\AbstractPlatform;
|
||||
use Doctrine\DBAL\Schema\AbstractSchemaManager;
|
||||
|
||||
/**
|
||||
* Driver interface.
|
||||
* Interface that all DBAL drivers must implement.
|
||||
*/
|
||||
interface Driver
|
||||
{
|
||||
/**
|
||||
* Attempts to create a connection with the database.
|
||||
*
|
||||
* The usage of NULL to indicate empty username or password is deprecated. Use an empty string instead.
|
||||
*
|
||||
* @param mixed[] $params All connection parameters passed by the user.
|
||||
* @param string|null $username The username to use when connecting.
|
||||
* @param string|null $password The password to use when connecting.
|
||||
* @param mixed[] $driverOptions The driver options to use when connecting.
|
||||
*
|
||||
* @return \Doctrine\DBAL\Driver\Connection The database connection.
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = []);
|
||||
|
||||
/**
|
||||
* Gets the DatabasePlatform instance that provides all the metadata about
|
||||
* the platform this driver connects to.
|
||||
*
|
||||
* @return AbstractPlatform The database platform.
|
||||
*/
|
||||
public function getDatabasePlatform();
|
||||
|
||||
/**
|
||||
* Gets the SchemaManager that can be used to inspect and change the underlying
|
||||
* database schema of the platform this driver connects to.
|
||||
*
|
||||
* @return AbstractSchemaManager
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn);
|
||||
|
||||
/**
|
||||
* Gets the name of the driver.
|
||||
*
|
||||
* @deprecated
|
||||
*
|
||||
* @return string The name of the driver.
|
||||
*/
|
||||
public function getName();
|
||||
|
||||
/**
|
||||
* Gets the name of the database connected to for this driver.
|
||||
*
|
||||
* @return string The name of the database.
|
||||
*/
|
||||
public function getDatabase(Connection $conn);
|
||||
}
|
||||
40
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php
vendored
Normal file
40
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDB2Driver.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Platforms\DB2Platform;
|
||||
use Doctrine\DBAL\Schema\DB2SchemaManager;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for IBM DB2 based drivers.
|
||||
*/
|
||||
abstract class AbstractDB2Driver implements Driver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['dbname'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new DB2Platform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new DB2SchemaManager($conn);
|
||||
}
|
||||
}
|
||||
54
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php
vendored
Normal file
54
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractDriverException.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Exception;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link DriverException} interface.
|
||||
*/
|
||||
abstract class AbstractDriverException extends Exception implements DriverException
|
||||
{
|
||||
/**
|
||||
* The driver specific error code.
|
||||
*
|
||||
* @var int|string|null
|
||||
*/
|
||||
private $errorCode;
|
||||
|
||||
/**
|
||||
* The SQLSTATE of the driver.
|
||||
*
|
||||
* @var string|null
|
||||
*/
|
||||
private $sqlState;
|
||||
|
||||
/**
|
||||
* @param string $message The driver error message.
|
||||
* @param string|null $sqlState The SQLSTATE the driver is in at the time the error occurred, if any.
|
||||
* @param int|string|null $errorCode The driver specific error code if any.
|
||||
*/
|
||||
public function __construct($message, $sqlState = null, $errorCode = null)
|
||||
{
|
||||
parent::__construct($message);
|
||||
|
||||
$this->errorCode = $errorCode;
|
||||
$this->sqlState = $sqlState;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getErrorCode()
|
||||
{
|
||||
return $this->errorCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSQLState()
|
||||
{
|
||||
return $this->sqlState;
|
||||
}
|
||||
}
|
||||
218
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php
vendored
Normal file
218
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractMySQLDriver.php
vendored
Normal file
@@ -0,0 +1,218 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\MariaDb1027Platform;
|
||||
use Doctrine\DBAL\Platforms\MySQL57Platform;
|
||||
use Doctrine\DBAL\Platforms\MySQL80Platform;
|
||||
use Doctrine\DBAL\Platforms\MySqlPlatform;
|
||||
use Doctrine\DBAL\Schema\MySqlSchemaManager;
|
||||
use Doctrine\DBAL\VersionAwarePlatformDriver;
|
||||
use function preg_match;
|
||||
use function stripos;
|
||||
use function version_compare;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for MySQL based drivers.
|
||||
*/
|
||||
abstract class AbstractMySQLDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @link http://dev.mysql.com/doc/refman/5.7/en/error-messages-client.html
|
||||
* @link http://dev.mysql.com/doc/refman/5.7/en/error-messages-server.html
|
||||
*/
|
||||
public function convertException($message, DriverException $exception)
|
||||
{
|
||||
switch ($exception->getErrorCode()) {
|
||||
case '1213':
|
||||
return new Exception\DeadlockException($message, $exception);
|
||||
case '1205':
|
||||
return new Exception\LockWaitTimeoutException($message, $exception);
|
||||
case '1050':
|
||||
return new Exception\TableExistsException($message, $exception);
|
||||
|
||||
case '1051':
|
||||
case '1146':
|
||||
return new Exception\TableNotFoundException($message, $exception);
|
||||
|
||||
case '1216':
|
||||
case '1217':
|
||||
case '1451':
|
||||
case '1452':
|
||||
case '1701':
|
||||
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
|
||||
|
||||
case '1062':
|
||||
case '1557':
|
||||
case '1569':
|
||||
case '1586':
|
||||
return new Exception\UniqueConstraintViolationException($message, $exception);
|
||||
|
||||
case '1054':
|
||||
case '1166':
|
||||
case '1611':
|
||||
return new Exception\InvalidFieldNameException($message, $exception);
|
||||
|
||||
case '1052':
|
||||
case '1060':
|
||||
case '1110':
|
||||
return new Exception\NonUniqueFieldNameException($message, $exception);
|
||||
|
||||
case '1064':
|
||||
case '1149':
|
||||
case '1287':
|
||||
case '1341':
|
||||
case '1342':
|
||||
case '1343':
|
||||
case '1344':
|
||||
case '1382':
|
||||
case '1479':
|
||||
case '1541':
|
||||
case '1554':
|
||||
case '1626':
|
||||
return new Exception\SyntaxErrorException($message, $exception);
|
||||
|
||||
case '1044':
|
||||
case '1045':
|
||||
case '1046':
|
||||
case '1049':
|
||||
case '1095':
|
||||
case '1142':
|
||||
case '1143':
|
||||
case '1227':
|
||||
case '1370':
|
||||
case '1429':
|
||||
case '2002':
|
||||
case '2005':
|
||||
return new Exception\ConnectionException($message, $exception);
|
||||
|
||||
case '1048':
|
||||
case '1121':
|
||||
case '1138':
|
||||
case '1171':
|
||||
case '1252':
|
||||
case '1263':
|
||||
case '1364':
|
||||
case '1566':
|
||||
return new Exception\NotNullConstraintViolationException($message, $exception);
|
||||
}
|
||||
|
||||
return new Exception\DriverException($message, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @throws DBALException
|
||||
*/
|
||||
public function createDatabasePlatformForVersion($version)
|
||||
{
|
||||
$mariadb = stripos($version, 'mariadb') !== false;
|
||||
if ($mariadb && version_compare($this->getMariaDbMysqlVersionNumber($version), '10.2.7', '>=')) {
|
||||
return new MariaDb1027Platform();
|
||||
}
|
||||
|
||||
if (! $mariadb) {
|
||||
$oracleMysqlVersion = $this->getOracleMysqlVersionNumber($version);
|
||||
if (version_compare($oracleMysqlVersion, '8', '>=')) {
|
||||
return new MySQL80Platform();
|
||||
}
|
||||
if (version_compare($oracleMysqlVersion, '5.7.9', '>=')) {
|
||||
return new MySQL57Platform();
|
||||
}
|
||||
}
|
||||
|
||||
return $this->getDatabasePlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a normalized 'version number' from the server string
|
||||
* returned by Oracle MySQL servers.
|
||||
*
|
||||
* @param string $versionString Version string returned by the driver, i.e. '5.7.10'
|
||||
*
|
||||
* @throws DBALException
|
||||
*/
|
||||
private function getOracleMysqlVersionNumber(string $versionString) : string
|
||||
{
|
||||
if (! preg_match(
|
||||
'/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+))?)?/',
|
||||
$versionString,
|
||||
$versionParts
|
||||
)) {
|
||||
throw DBALException::invalidPlatformVersionSpecified(
|
||||
$versionString,
|
||||
'<major_version>.<minor_version>.<patch_version>'
|
||||
);
|
||||
}
|
||||
$majorVersion = $versionParts['major'];
|
||||
$minorVersion = $versionParts['minor'] ?? 0;
|
||||
$patchVersion = $versionParts['patch'] ?? null;
|
||||
|
||||
if ($majorVersion === '5' && $minorVersion === '7' && $patchVersion === null) {
|
||||
$patchVersion = '9';
|
||||
}
|
||||
|
||||
return $majorVersion . '.' . $minorVersion . '.' . $patchVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* Detect MariaDB server version, including hack for some mariadb distributions
|
||||
* that starts with the prefix '5.5.5-'
|
||||
*
|
||||
* @param string $versionString Version string as returned by mariadb server, i.e. '5.5.5-Mariadb-10.0.8-xenial'
|
||||
*
|
||||
* @throws DBALException
|
||||
*/
|
||||
private function getMariaDbMysqlVersionNumber(string $versionString) : string
|
||||
{
|
||||
if (! preg_match(
|
||||
'/^(?:5\.5\.5-)?(mariadb-)?(?P<major>\d+)\.(?P<minor>\d+)\.(?P<patch>\d+)/i',
|
||||
$versionString,
|
||||
$versionParts
|
||||
)) {
|
||||
throw DBALException::invalidPlatformVersionSpecified(
|
||||
$versionString,
|
||||
'^(?:5\.5\.5-)?(mariadb-)?<major_version>.<minor_version>.<patch_version>'
|
||||
);
|
||||
}
|
||||
|
||||
return $versionParts['major'] . '.' . $versionParts['minor'] . '.' . $versionParts['patch'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['dbname'] ?? $conn->query('SELECT DATABASE()')->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @return MySqlPlatform
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new MySqlPlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @return MySqlSchemaManager
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new MySqlSchemaManager($conn);
|
||||
}
|
||||
}
|
||||
97
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php
vendored
Normal file
97
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver.php
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Driver\AbstractOracleDriver\EasyConnectString;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\OraclePlatform;
|
||||
use Doctrine\DBAL\Schema\OracleSchemaManager;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for Oracle based drivers.
|
||||
*/
|
||||
abstract class AbstractOracleDriver implements Driver, ExceptionConverterDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function convertException($message, DriverException $exception)
|
||||
{
|
||||
switch ($exception->getErrorCode()) {
|
||||
case '1':
|
||||
case '2299':
|
||||
case '38911':
|
||||
return new Exception\UniqueConstraintViolationException($message, $exception);
|
||||
|
||||
case '904':
|
||||
return new Exception\InvalidFieldNameException($message, $exception);
|
||||
|
||||
case '918':
|
||||
case '960':
|
||||
return new Exception\NonUniqueFieldNameException($message, $exception);
|
||||
|
||||
case '923':
|
||||
return new Exception\SyntaxErrorException($message, $exception);
|
||||
|
||||
case '942':
|
||||
return new Exception\TableNotFoundException($message, $exception);
|
||||
|
||||
case '955':
|
||||
return new Exception\TableExistsException($message, $exception);
|
||||
|
||||
case '1017':
|
||||
case '12545':
|
||||
return new Exception\ConnectionException($message, $exception);
|
||||
|
||||
case '1400':
|
||||
return new Exception\NotNullConstraintViolationException($message, $exception);
|
||||
|
||||
case '2266':
|
||||
case '2291':
|
||||
case '2292':
|
||||
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
|
||||
}
|
||||
|
||||
return new Exception\DriverException($message, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['user'];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new OraclePlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new OracleSchemaManager($conn);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns an appropriate Easy Connect String for the given parameters.
|
||||
*
|
||||
* @param mixed[] $params The connection parameters to return the Easy Connect String for.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getEasyConnectString(array $params)
|
||||
{
|
||||
return (string) EasyConnectString::fromConnectionParameters($params);
|
||||
}
|
||||
}
|
||||
121
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php
vendored
Normal file
121
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractOracleDriver/EasyConnectString.php
vendored
Normal file
@@ -0,0 +1,121 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
namespace Doctrine\DBAL\Driver\AbstractOracleDriver;
|
||||
|
||||
use function implode;
|
||||
use function is_array;
|
||||
use function sprintf;
|
||||
|
||||
/**
|
||||
* Represents an Oracle Easy Connect string
|
||||
*
|
||||
* @link https://docs.oracle.com/database/121/NETAG/naming.htm
|
||||
*/
|
||||
final class EasyConnectString
|
||||
{
|
||||
/** @var string */
|
||||
private $string;
|
||||
|
||||
private function __construct(string $string)
|
||||
{
|
||||
$this->string = $string;
|
||||
}
|
||||
|
||||
public function __toString() : string
|
||||
{
|
||||
return $this->string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the object from an array representation
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*/
|
||||
public static function fromArray(array $params) : self
|
||||
{
|
||||
return new self(self::renderParams($params));
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates the object from the given DBAL connection parameters.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*/
|
||||
public static function fromConnectionParameters(array $params) : self
|
||||
{
|
||||
if (! empty($params['connectstring'])) {
|
||||
return new self($params['connectstring']);
|
||||
}
|
||||
|
||||
if (empty($params['host'])) {
|
||||
return new self($params['dbname'] ?? '');
|
||||
}
|
||||
|
||||
$connectData = [];
|
||||
|
||||
if (isset($params['servicename']) || isset($params['dbname'])) {
|
||||
$serviceKey = 'SID';
|
||||
|
||||
if (! empty($params['service'])) {
|
||||
$serviceKey = 'SERVICE_NAME';
|
||||
}
|
||||
|
||||
$serviceName = $params['servicename'] ?? $params['dbname'];
|
||||
|
||||
$connectData[$serviceKey] = $serviceName;
|
||||
}
|
||||
|
||||
if (! empty($params['instancename'])) {
|
||||
$connectData['INSTANCE_NAME'] = $params['instancename'];
|
||||
}
|
||||
|
||||
if (! empty($params['pooled'])) {
|
||||
$connectData['SERVER'] = 'POOLED';
|
||||
}
|
||||
|
||||
return self::fromArray([
|
||||
'DESCRIPTION' => [
|
||||
'ADDRESS' => [
|
||||
'PROTOCOL' => 'TCP',
|
||||
'HOST' => $params['host'],
|
||||
'PORT' => $params['port'] ?? 1521,
|
||||
],
|
||||
'CONNECT_DATA' => $connectData,
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed[] $params
|
||||
*/
|
||||
private static function renderParams(array $params) : string
|
||||
{
|
||||
$chunks = [];
|
||||
|
||||
foreach ($params as $key => $value) {
|
||||
$string = self::renderValue($value);
|
||||
|
||||
if ($string === '') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$chunks[] = sprintf('(%s=%s)', $key, $string);
|
||||
}
|
||||
|
||||
return implode('', $chunks);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $value
|
||||
*/
|
||||
private static function renderValue($value) : string
|
||||
{
|
||||
if (is_array($value)) {
|
||||
return self::renderParams($value);
|
||||
}
|
||||
|
||||
return (string) $value;
|
||||
}
|
||||
}
|
||||
138
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php
vendored
Normal file
138
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractPostgreSQLDriver.php
vendored
Normal file
@@ -0,0 +1,138 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL100Platform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL91Platform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL92Platform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSQL94Platform;
|
||||
use Doctrine\DBAL\Platforms\PostgreSqlPlatform;
|
||||
use Doctrine\DBAL\Schema\PostgreSqlSchemaManager;
|
||||
use Doctrine\DBAL\VersionAwarePlatformDriver;
|
||||
use function preg_match;
|
||||
use function strpos;
|
||||
use function version_compare;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for PostgreSQL based drivers.
|
||||
*/
|
||||
abstract class AbstractPostgreSQLDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @link http://www.postgresql.org/docs/9.3/static/errcodes-appendix.html
|
||||
*/
|
||||
public function convertException($message, DriverException $exception)
|
||||
{
|
||||
switch ($exception->getSQLState()) {
|
||||
case '40001':
|
||||
case '40P01':
|
||||
return new Exception\DeadlockException($message, $exception);
|
||||
case '0A000':
|
||||
// Foreign key constraint violations during a TRUNCATE operation
|
||||
// are considered "feature not supported" in PostgreSQL.
|
||||
if (strpos($exception->getMessage(), 'truncate') !== false) {
|
||||
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
|
||||
}
|
||||
|
||||
break;
|
||||
case '23502':
|
||||
return new Exception\NotNullConstraintViolationException($message, $exception);
|
||||
|
||||
case '23503':
|
||||
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
|
||||
|
||||
case '23505':
|
||||
return new Exception\UniqueConstraintViolationException($message, $exception);
|
||||
|
||||
case '42601':
|
||||
return new Exception\SyntaxErrorException($message, $exception);
|
||||
|
||||
case '42702':
|
||||
return new Exception\NonUniqueFieldNameException($message, $exception);
|
||||
|
||||
case '42703':
|
||||
return new Exception\InvalidFieldNameException($message, $exception);
|
||||
|
||||
case '42P01':
|
||||
return new Exception\TableNotFoundException($message, $exception);
|
||||
|
||||
case '42P07':
|
||||
return new Exception\TableExistsException($message, $exception);
|
||||
|
||||
case '7':
|
||||
// In some case (mainly connection errors) the PDO exception does not provide a SQLSTATE via its code.
|
||||
// The exception code is always set to 7 here.
|
||||
// We have to match against the SQLSTATE in the error message in these cases.
|
||||
if (strpos($exception->getMessage(), 'SQLSTATE[08006]') !== false) {
|
||||
return new Exception\ConnectionException($message, $exception);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
return new Exception\DriverException($message, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createDatabasePlatformForVersion($version)
|
||||
{
|
||||
if (! preg_match('/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+))?)?/', $version, $versionParts)) {
|
||||
throw DBALException::invalidPlatformVersionSpecified(
|
||||
$version,
|
||||
'<major_version>.<minor_version>.<patch_version>'
|
||||
);
|
||||
}
|
||||
|
||||
$majorVersion = $versionParts['major'];
|
||||
$minorVersion = $versionParts['minor'] ?? 0;
|
||||
$patchVersion = $versionParts['patch'] ?? 0;
|
||||
$version = $majorVersion . '.' . $minorVersion . '.' . $patchVersion;
|
||||
|
||||
switch (true) {
|
||||
case version_compare($version, '10.0', '>='):
|
||||
return new PostgreSQL100Platform();
|
||||
case version_compare($version, '9.4', '>='):
|
||||
return new PostgreSQL94Platform();
|
||||
case version_compare($version, '9.2', '>='):
|
||||
return new PostgreSQL92Platform();
|
||||
case version_compare($version, '9.1', '>='):
|
||||
return new PostgreSQL91Platform();
|
||||
default:
|
||||
return new PostgreSqlPlatform();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['dbname'] ?? $conn->query('SELECT CURRENT_DATABASE()')->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new PostgreSqlPlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new PostgreSqlSchemaManager($conn);
|
||||
}
|
||||
}
|
||||
127
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php
vendored
Normal file
127
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLAnywhereDriver.php
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\SQLAnywhere11Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLAnywhere12Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLAnywhere16Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLAnywherePlatform;
|
||||
use Doctrine\DBAL\Schema\SQLAnywhereSchemaManager;
|
||||
use Doctrine\DBAL\VersionAwarePlatformDriver;
|
||||
use function preg_match;
|
||||
use function version_compare;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for SAP Sybase SQL Anywhere based drivers.
|
||||
*/
|
||||
abstract class AbstractSQLAnywhereDriver implements Driver, ExceptionConverterDriver, VersionAwarePlatformDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @link http://dcx.sybase.com/index.html#sa160/en/saerrors/sqlerror.html
|
||||
*/
|
||||
public function convertException($message, DriverException $exception)
|
||||
{
|
||||
switch ($exception->getErrorCode()) {
|
||||
case '-306':
|
||||
case '-307':
|
||||
case '-684':
|
||||
return new Exception\DeadlockException($message, $exception);
|
||||
case '-210':
|
||||
case '-1175':
|
||||
case '-1281':
|
||||
return new Exception\LockWaitTimeoutException($message, $exception);
|
||||
case '-100':
|
||||
case '-103':
|
||||
case '-832':
|
||||
return new Exception\ConnectionException($message, $exception);
|
||||
case '-143':
|
||||
return new Exception\InvalidFieldNameException($message, $exception);
|
||||
case '-193':
|
||||
case '-196':
|
||||
return new Exception\UniqueConstraintViolationException($message, $exception);
|
||||
case '-194':
|
||||
case '-198':
|
||||
return new Exception\ForeignKeyConstraintViolationException($message, $exception);
|
||||
case '-144':
|
||||
return new Exception\NonUniqueFieldNameException($message, $exception);
|
||||
case '-184':
|
||||
case '-195':
|
||||
return new Exception\NotNullConstraintViolationException($message, $exception);
|
||||
case '-131':
|
||||
return new Exception\SyntaxErrorException($message, $exception);
|
||||
case '-110':
|
||||
return new Exception\TableExistsException($message, $exception);
|
||||
case '-141':
|
||||
case '-1041':
|
||||
return new Exception\TableNotFoundException($message, $exception);
|
||||
}
|
||||
|
||||
return new Exception\DriverException($message, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createDatabasePlatformForVersion($version)
|
||||
{
|
||||
if (! preg_match(
|
||||
'/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+)(?:\.(?P<build>\d+))?)?)?/',
|
||||
$version,
|
||||
$versionParts
|
||||
)) {
|
||||
throw DBALException::invalidPlatformVersionSpecified(
|
||||
$version,
|
||||
'<major_version>.<minor_version>.<patch_version>.<build_version>'
|
||||
);
|
||||
}
|
||||
|
||||
$majorVersion = $versionParts['major'];
|
||||
$minorVersion = $versionParts['minor'] ?? 0;
|
||||
$patchVersion = $versionParts['patch'] ?? 0;
|
||||
$buildVersion = $versionParts['build'] ?? 0;
|
||||
$version = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;
|
||||
|
||||
switch (true) {
|
||||
case version_compare($version, '16', '>='):
|
||||
return new SQLAnywhere16Platform();
|
||||
case version_compare($version, '12', '>='):
|
||||
return new SQLAnywhere12Platform();
|
||||
case version_compare($version, '11', '>='):
|
||||
return new SQLAnywhere11Platform();
|
||||
default:
|
||||
return new SQLAnywherePlatform();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['dbname'] ?? $conn->query('SELECT DB_NAME()')->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new SQLAnywhere12Platform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new SQLAnywhereSchemaManager($conn);
|
||||
}
|
||||
}
|
||||
81
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php
vendored
Normal file
81
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLServerDriver.php
vendored
Normal file
@@ -0,0 +1,81 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Platforms\SQLServer2005Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLServer2008Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLServer2012Platform;
|
||||
use Doctrine\DBAL\Platforms\SQLServerPlatform;
|
||||
use Doctrine\DBAL\Schema\SQLServerSchemaManager;
|
||||
use Doctrine\DBAL\VersionAwarePlatformDriver;
|
||||
use function preg_match;
|
||||
use function version_compare;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for Microsoft SQL Server based drivers.
|
||||
*/
|
||||
abstract class AbstractSQLServerDriver implements Driver, VersionAwarePlatformDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createDatabasePlatformForVersion($version)
|
||||
{
|
||||
if (! preg_match(
|
||||
'/^(?P<major>\d+)(?:\.(?P<minor>\d+)(?:\.(?P<patch>\d+)(?:\.(?P<build>\d+))?)?)?/',
|
||||
$version,
|
||||
$versionParts
|
||||
)) {
|
||||
throw DBALException::invalidPlatformVersionSpecified(
|
||||
$version,
|
||||
'<major_version>.<minor_version>.<patch_version>.<build_version>'
|
||||
);
|
||||
}
|
||||
|
||||
$majorVersion = $versionParts['major'];
|
||||
$minorVersion = $versionParts['minor'] ?? 0;
|
||||
$patchVersion = $versionParts['patch'] ?? 0;
|
||||
$buildVersion = $versionParts['build'] ?? 0;
|
||||
$version = $majorVersion . '.' . $minorVersion . '.' . $patchVersion . '.' . $buildVersion;
|
||||
|
||||
switch (true) {
|
||||
case version_compare($version, '11.00.2100', '>='):
|
||||
return new SQLServer2012Platform();
|
||||
case version_compare($version, '10.00.1600', '>='):
|
||||
return new SQLServer2008Platform();
|
||||
case version_compare($version, '9.00.1399', '>='):
|
||||
return new SQLServer2005Platform();
|
||||
default:
|
||||
return new SQLServerPlatform();
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['dbname'] ?? $conn->query('SELECT DB_NAME()')->fetchColumn();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new SQLServer2008Platform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new SQLServerSchemaManager($conn);
|
||||
}
|
||||
}
|
||||
98
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php
vendored
Normal file
98
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/AbstractSQLiteDriver.php
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\Connection;
|
||||
use Doctrine\DBAL\Driver;
|
||||
use Doctrine\DBAL\Exception;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use Doctrine\DBAL\Schema\SqliteSchemaManager;
|
||||
use function strpos;
|
||||
|
||||
/**
|
||||
* Abstract base implementation of the {@link Doctrine\DBAL\Driver} interface for SQLite based drivers.
|
||||
*/
|
||||
abstract class AbstractSQLiteDriver implements Driver, ExceptionConverterDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @link http://www.sqlite.org/c3ref/c_abort.html
|
||||
*/
|
||||
public function convertException($message, DriverException $exception)
|
||||
{
|
||||
if (strpos($exception->getMessage(), 'database is locked') !== false) {
|
||||
return new Exception\LockWaitTimeoutException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'must be unique') !== false ||
|
||||
strpos($exception->getMessage(), 'is not unique') !== false ||
|
||||
strpos($exception->getMessage(), 'are not unique') !== false ||
|
||||
strpos($exception->getMessage(), 'UNIQUE constraint failed') !== false
|
||||
) {
|
||||
return new Exception\UniqueConstraintViolationException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'may not be NULL') !== false ||
|
||||
strpos($exception->getMessage(), 'NOT NULL constraint failed') !== false
|
||||
) {
|
||||
return new Exception\NotNullConstraintViolationException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'no such table:') !== false) {
|
||||
return new Exception\TableNotFoundException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'already exists') !== false) {
|
||||
return new Exception\TableExistsException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'has no column named') !== false) {
|
||||
return new Exception\InvalidFieldNameException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'ambiguous column name') !== false) {
|
||||
return new Exception\NonUniqueFieldNameException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'syntax error') !== false) {
|
||||
return new Exception\SyntaxErrorException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'attempt to write a readonly database') !== false) {
|
||||
return new Exception\ReadOnlyException($message, $exception);
|
||||
}
|
||||
|
||||
if (strpos($exception->getMessage(), 'unable to open database file') !== false) {
|
||||
return new Exception\ConnectionException($message, $exception);
|
||||
}
|
||||
|
||||
return new Exception\DriverException($message, $exception);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabase(Connection $conn)
|
||||
{
|
||||
$params = $conn->getParams();
|
||||
|
||||
return $params['path'] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new SqlitePlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(Connection $conn)
|
||||
{
|
||||
return new SqliteSchemaManager($conn);
|
||||
}
|
||||
}
|
||||
93
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php
vendored
Normal file
93
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Connection.php
vendored
Normal file
@@ -0,0 +1,93 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
|
||||
/**
|
||||
* Connection interface.
|
||||
* Driver connections must implement this interface.
|
||||
*
|
||||
* This resembles (a subset of) the PDO interface.
|
||||
*/
|
||||
interface Connection
|
||||
{
|
||||
/**
|
||||
* Prepares a statement for execution and returns a Statement object.
|
||||
*
|
||||
* @param string $prepareString
|
||||
*
|
||||
* @return Statement
|
||||
*/
|
||||
public function prepare($prepareString);
|
||||
|
||||
/**
|
||||
* Executes an SQL statement, returning a result set as a Statement object.
|
||||
*
|
||||
* @return Statement
|
||||
*/
|
||||
public function query();
|
||||
|
||||
/**
|
||||
* Quotes a string for use in a query.
|
||||
*
|
||||
* @param mixed $input
|
||||
* @param int $type
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function quote($input, $type = ParameterType::STRING);
|
||||
|
||||
/**
|
||||
* Executes an SQL statement and return the number of affected rows.
|
||||
*
|
||||
* @param string $statement
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function exec($statement);
|
||||
|
||||
/**
|
||||
* Returns the ID of the last inserted row or sequence value.
|
||||
*
|
||||
* @param string|null $name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function lastInsertId($name = null);
|
||||
|
||||
/**
|
||||
* Initiates a transaction.
|
||||
*
|
||||
* @return bool TRUE on success or FALSE on failure.
|
||||
*/
|
||||
public function beginTransaction();
|
||||
|
||||
/**
|
||||
* Commits a transaction.
|
||||
*
|
||||
* @return bool TRUE on success or FALSE on failure.
|
||||
*/
|
||||
public function commit();
|
||||
|
||||
/**
|
||||
* Rolls back the current transaction, as initiated by beginTransaction().
|
||||
*
|
||||
* @return bool TRUE on success or FALSE on failure.
|
||||
*/
|
||||
public function rollBack();
|
||||
|
||||
/**
|
||||
* Returns the error code associated with the last operation on the database handle.
|
||||
*
|
||||
* @return string|null The error code, or null if no operation has been run on the database handle.
|
||||
*/
|
||||
public function errorCode();
|
||||
|
||||
/**
|
||||
* Returns extended error information associated with the last operation on the database handle.
|
||||
*
|
||||
* @return mixed[]
|
||||
*/
|
||||
public function errorInfo();
|
||||
}
|
||||
40
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php
vendored
Normal file
40
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DriverException.php
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
* Contract for a driver exception.
|
||||
*
|
||||
* Driver exceptions provide the SQLSTATE of the driver
|
||||
* and the driver specific error code at the time the error occurred.
|
||||
*/
|
||||
interface DriverException extends Throwable
|
||||
{
|
||||
/**
|
||||
* Returns the driver specific error code if available.
|
||||
*
|
||||
* Returns null if no driver specific error code is available
|
||||
* for the error raised by the driver.
|
||||
*
|
||||
* @return int|string|null
|
||||
*/
|
||||
public function getErrorCode();
|
||||
|
||||
/**
|
||||
* Returns the driver error message.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMessage();
|
||||
|
||||
/**
|
||||
* Returns the SQLSTATE the driver was in at the time the error occurred.
|
||||
*
|
||||
* Returns null if the driver does not provide a SQLSTATE for the error occurred.
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getSQLState();
|
||||
}
|
||||
21
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php
vendored
Normal file
21
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Connection.php
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\DrizzlePDOMySql;
|
||||
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
|
||||
class Connection extends PDOConnection
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function quote($value, $type = ParameterType::STRING)
|
||||
{
|
||||
if ($type === ParameterType::BOOLEAN) {
|
||||
return $value ? 'true' : 'false';
|
||||
}
|
||||
|
||||
return parent::quote($value, $type);
|
||||
}
|
||||
}
|
||||
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php
vendored
Normal file
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/DrizzlePDOMySql/Driver.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\DrizzlePDOMySql;
|
||||
|
||||
use Doctrine\DBAL\Platforms\DrizzlePlatform;
|
||||
use Doctrine\DBAL\Schema\DrizzleSchemaManager;
|
||||
|
||||
/**
|
||||
* Drizzle driver using PDO MySql.
|
||||
*/
|
||||
class Driver extends \Doctrine\DBAL\Driver\PDOMySql\Driver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
return new Connection(
|
||||
$this->constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function createDatabasePlatformForVersion($version)
|
||||
{
|
||||
return $this->getDatabasePlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDatabasePlatform()
|
||||
{
|
||||
return new DrizzlePlatform();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSchemaManager(\Doctrine\DBAL\Connection $conn)
|
||||
{
|
||||
return new DrizzleSchemaManager($conn);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'drizzle_pdo_mysql';
|
||||
}
|
||||
}
|
||||
22
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php
vendored
Normal file
22
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/ExceptionConverterDriver.php
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
/**
|
||||
* Contract for a driver that is capable of converting DBAL driver exceptions into standardized DBAL driver exceptions.
|
||||
*/
|
||||
interface ExceptionConverterDriver
|
||||
{
|
||||
/**
|
||||
* Converts a given DBAL driver exception into a standardized DBAL driver exception.
|
||||
*
|
||||
* It evaluates the vendor specific error code and SQLSTATE and transforms
|
||||
* it into a unified {@link Doctrine\DBAL\Exception\DriverException} subclass.
|
||||
*
|
||||
* @param string $message The DBAL exception message to use.
|
||||
* @param DriverException $exception The DBAL driver exception to convert.
|
||||
*
|
||||
* @return \Doctrine\DBAL\Exception\DriverException An instance of one of the DriverException subclasses.
|
||||
*/
|
||||
public function convertException($message, DriverException $exception);
|
||||
}
|
||||
186
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php
vendored
Normal file
186
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Connection.php
vendored
Normal file
@@ -0,0 +1,186 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\IBMDB2;
|
||||
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use stdClass;
|
||||
use const DB2_AUTOCOMMIT_OFF;
|
||||
use const DB2_AUTOCOMMIT_ON;
|
||||
use function db2_autocommit;
|
||||
use function db2_commit;
|
||||
use function db2_conn_error;
|
||||
use function db2_conn_errormsg;
|
||||
use function db2_connect;
|
||||
use function db2_escape_string;
|
||||
use function db2_exec;
|
||||
use function db2_last_insert_id;
|
||||
use function db2_num_rows;
|
||||
use function db2_pconnect;
|
||||
use function db2_prepare;
|
||||
use function db2_rollback;
|
||||
use function db2_server_info;
|
||||
use function db2_stmt_errormsg;
|
||||
use function func_get_args;
|
||||
|
||||
class DB2Connection implements Connection, ServerInfoAwareConnection
|
||||
{
|
||||
/** @var resource */
|
||||
private $conn = null;
|
||||
|
||||
/**
|
||||
* @param mixed[] $params
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param mixed[] $driverOptions
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
public function __construct(array $params, $username, $password, $driverOptions = [])
|
||||
{
|
||||
$isPersistent = (isset($params['persistent']) && $params['persistent'] === true);
|
||||
|
||||
if ($isPersistent) {
|
||||
$conn = db2_pconnect($params['dbname'], $username, $password, $driverOptions);
|
||||
} else {
|
||||
$conn = db2_connect($params['dbname'], $username, $password, $driverOptions);
|
||||
}
|
||||
|
||||
if ($conn === false) {
|
||||
throw new DB2Exception(db2_conn_errormsg());
|
||||
}
|
||||
|
||||
$this->conn = $conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getServerVersion()
|
||||
{
|
||||
/** @var stdClass $serverInfo */
|
||||
$serverInfo = db2_server_info($this->conn);
|
||||
|
||||
return $serverInfo->DBMS_VER;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function requiresQueryForServerVersion()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function prepare($sql)
|
||||
{
|
||||
$stmt = @db2_prepare($this->conn, $sql);
|
||||
if (! $stmt) {
|
||||
throw new DB2Exception(db2_stmt_errormsg());
|
||||
}
|
||||
|
||||
return new DB2Statement($stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$sql = $args[0];
|
||||
$stmt = $this->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
return $stmt;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function quote($input, $type = ParameterType::STRING)
|
||||
{
|
||||
$input = db2_escape_string($input);
|
||||
|
||||
if ($type === ParameterType::INTEGER) {
|
||||
return $input;
|
||||
}
|
||||
|
||||
return "'" . $input . "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function exec($statement)
|
||||
{
|
||||
$stmt = @db2_exec($this->conn, $statement);
|
||||
|
||||
if ($stmt === false) {
|
||||
throw new DB2Exception(db2_stmt_errormsg());
|
||||
}
|
||||
|
||||
return db2_num_rows($stmt);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function lastInsertId($name = null)
|
||||
{
|
||||
return db2_last_insert_id($this->conn);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function beginTransaction()
|
||||
{
|
||||
db2_autocommit($this->conn, DB2_AUTOCOMMIT_OFF);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function commit()
|
||||
{
|
||||
if (! db2_commit($this->conn)) {
|
||||
throw new DB2Exception(db2_conn_errormsg($this->conn));
|
||||
}
|
||||
db2_autocommit($this->conn, DB2_AUTOCOMMIT_ON);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rollBack()
|
||||
{
|
||||
if (! db2_rollback($this->conn)) {
|
||||
throw new DB2Exception(db2_conn_errormsg($this->conn));
|
||||
}
|
||||
db2_autocommit($this->conn, DB2_AUTOCOMMIT_ON);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
return db2_conn_error($this->conn);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
return [
|
||||
0 => db2_conn_errormsg($this->conn),
|
||||
1 => $this->errorCode(),
|
||||
];
|
||||
}
|
||||
}
|
||||
49
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php
vendored
Normal file
49
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Driver.php
vendored
Normal file
@@ -0,0 +1,49 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\IBMDB2;
|
||||
|
||||
use Doctrine\DBAL\Driver\AbstractDB2Driver;
|
||||
|
||||
/**
|
||||
* IBM DB2 Driver.
|
||||
*/
|
||||
class DB2Driver extends AbstractDB2Driver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
if (! isset($params['protocol'])) {
|
||||
$params['protocol'] = 'TCPIP';
|
||||
}
|
||||
|
||||
if ($params['host'] !== 'localhost' && $params['host'] !== '127.0.0.1') {
|
||||
// if the host isn't localhost, use extended connection params
|
||||
$params['dbname'] = 'DRIVER={IBM DB2 ODBC DRIVER}' .
|
||||
';DATABASE=' . $params['dbname'] .
|
||||
';HOSTNAME=' . $params['host'] .
|
||||
';PROTOCOL=' . $params['protocol'] .
|
||||
';UID=' . $username .
|
||||
';PWD=' . $password . ';';
|
||||
if (isset($params['port'])) {
|
||||
$params['dbname'] .= 'PORT=' . $params['port'];
|
||||
}
|
||||
|
||||
$username = null;
|
||||
$password = null;
|
||||
}
|
||||
|
||||
return new DB2Connection($params, (string) $username, (string) $password, $driverOptions);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'ibm_db2';
|
||||
}
|
||||
}
|
||||
9
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php
vendored
Normal file
9
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Exception.php
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\IBMDB2;
|
||||
|
||||
use Exception;
|
||||
|
||||
class DB2Exception extends Exception
|
||||
{
|
||||
}
|
||||
454
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php
vendored
Normal file
454
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/IBMDB2/DB2Statement.php
vendored
Normal file
@@ -0,0 +1,454 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\IBMDB2;
|
||||
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
use Doctrine\DBAL\Driver\StatementIterator;
|
||||
use Doctrine\DBAL\FetchMode;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use IteratorAggregate;
|
||||
use PDO;
|
||||
use ReflectionClass;
|
||||
use ReflectionObject;
|
||||
use ReflectionProperty;
|
||||
use stdClass;
|
||||
use const CASE_LOWER;
|
||||
use const DB2_BINARY;
|
||||
use const DB2_CHAR;
|
||||
use const DB2_LONG;
|
||||
use const DB2_PARAM_FILE;
|
||||
use const DB2_PARAM_IN;
|
||||
use function array_change_key_case;
|
||||
use function db2_bind_param;
|
||||
use function db2_execute;
|
||||
use function db2_fetch_array;
|
||||
use function db2_fetch_assoc;
|
||||
use function db2_fetch_both;
|
||||
use function db2_fetch_object;
|
||||
use function db2_free_result;
|
||||
use function db2_num_fields;
|
||||
use function db2_num_rows;
|
||||
use function db2_stmt_error;
|
||||
use function db2_stmt_errormsg;
|
||||
use function error_get_last;
|
||||
use function fclose;
|
||||
use function func_get_args;
|
||||
use function func_num_args;
|
||||
use function fwrite;
|
||||
use function gettype;
|
||||
use function is_object;
|
||||
use function is_resource;
|
||||
use function is_string;
|
||||
use function ksort;
|
||||
use function sprintf;
|
||||
use function stream_copy_to_stream;
|
||||
use function stream_get_meta_data;
|
||||
use function strtolower;
|
||||
use function tmpfile;
|
||||
|
||||
class DB2Statement implements IteratorAggregate, Statement
|
||||
{
|
||||
/** @var resource */
|
||||
private $stmt;
|
||||
|
||||
/** @var mixed[] */
|
||||
private $bindParam = [];
|
||||
|
||||
/**
|
||||
* Map of LOB parameter positions to the tuples containing reference to the variable bound to the driver statement
|
||||
* and the temporary file handle bound to the underlying statement
|
||||
*
|
||||
* @var mixed[][]
|
||||
*/
|
||||
private $lobs = [];
|
||||
|
||||
/** @var string Name of the default class to instantiate when fetching class instances. */
|
||||
private $defaultFetchClass = '\stdClass';
|
||||
|
||||
/** @var mixed[] Constructor arguments for the default class to instantiate when fetching class instances. */
|
||||
private $defaultFetchClassCtorArgs = [];
|
||||
|
||||
/** @var int */
|
||||
private $defaultFetchMode = FetchMode::MIXED;
|
||||
|
||||
/**
|
||||
* Indicates whether the statement is in the state when fetching results is possible
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $result = false;
|
||||
|
||||
/**
|
||||
* @param resource $stmt
|
||||
*/
|
||||
public function __construct($stmt)
|
||||
{
|
||||
$this->stmt = $stmt;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindValue($param, $value, $type = ParameterType::STRING)
|
||||
{
|
||||
return $this->bindParam($param, $value, $type);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)
|
||||
{
|
||||
switch ($type) {
|
||||
case ParameterType::INTEGER:
|
||||
$this->bind($column, $variable, DB2_PARAM_IN, DB2_LONG);
|
||||
break;
|
||||
|
||||
case ParameterType::LARGE_OBJECT:
|
||||
if (isset($this->lobs[$column])) {
|
||||
[, $handle] = $this->lobs[$column];
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
$handle = $this->createTemporaryFile();
|
||||
$path = stream_get_meta_data($handle)['uri'];
|
||||
|
||||
$this->bind($column, $path, DB2_PARAM_FILE, DB2_BINARY);
|
||||
|
||||
$this->lobs[$column] = [&$variable, $handle];
|
||||
break;
|
||||
|
||||
default:
|
||||
$this->bind($column, $variable, DB2_PARAM_IN, DB2_CHAR);
|
||||
break;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param int $position Parameter position
|
||||
* @param mixed $variable
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
private function bind($position, &$variable, int $parameterType, int $dataType) : void
|
||||
{
|
||||
$this->bindParam[$position] =& $variable;
|
||||
|
||||
if (! db2_bind_param($this->stmt, $position, 'variable', $parameterType, $dataType)) {
|
||||
throw new DB2Exception(db2_stmt_errormsg());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function closeCursor()
|
||||
{
|
||||
$this->bindParam = [];
|
||||
|
||||
if (! db2_free_result($this->stmt)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->result = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function columnCount()
|
||||
{
|
||||
return db2_num_fields($this->stmt) ?: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
return db2_stmt_error();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
return [
|
||||
db2_stmt_errormsg(),
|
||||
db2_stmt_error(),
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function execute($params = null)
|
||||
{
|
||||
if ($params === null) {
|
||||
ksort($this->bindParam);
|
||||
|
||||
$params = [];
|
||||
|
||||
foreach ($this->bindParam as $column => $value) {
|
||||
$params[] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($this->lobs as [$source, $target]) {
|
||||
if (is_resource($source)) {
|
||||
$this->copyStreamToStream($source, $target);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$this->writeStringToStream($source, $target);
|
||||
}
|
||||
|
||||
$retval = db2_execute($this->stmt, $params);
|
||||
|
||||
foreach ($this->lobs as [, $handle]) {
|
||||
fclose($handle);
|
||||
}
|
||||
|
||||
$this->lobs = [];
|
||||
|
||||
if ($retval === false) {
|
||||
throw new DB2Exception(db2_stmt_errormsg());
|
||||
}
|
||||
|
||||
$this->result = true;
|
||||
|
||||
return $retval;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)
|
||||
{
|
||||
$this->defaultFetchMode = $fetchMode;
|
||||
$this->defaultFetchClass = $arg2 ?: $this->defaultFetchClass;
|
||||
$this->defaultFetchClassCtorArgs = $arg3 ? (array) $arg3 : $this->defaultFetchClassCtorArgs;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new StatementIterator($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
|
||||
{
|
||||
// do not try fetching from the statement if it's not expected to contain result
|
||||
// in order to prevent exceptional situation
|
||||
if (! $this->result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$fetchMode = $fetchMode ?: $this->defaultFetchMode;
|
||||
switch ($fetchMode) {
|
||||
case FetchMode::COLUMN:
|
||||
return $this->fetchColumn();
|
||||
|
||||
case FetchMode::MIXED:
|
||||
return db2_fetch_both($this->stmt);
|
||||
|
||||
case FetchMode::ASSOCIATIVE:
|
||||
return db2_fetch_assoc($this->stmt);
|
||||
|
||||
case FetchMode::CUSTOM_OBJECT:
|
||||
$className = $this->defaultFetchClass;
|
||||
$ctorArgs = $this->defaultFetchClassCtorArgs;
|
||||
|
||||
if (func_num_args() >= 2) {
|
||||
$args = func_get_args();
|
||||
$className = $args[1];
|
||||
$ctorArgs = $args[2] ?? [];
|
||||
}
|
||||
|
||||
$result = db2_fetch_object($this->stmt);
|
||||
|
||||
if ($result instanceof stdClass) {
|
||||
$result = $this->castObject($result, $className, $ctorArgs);
|
||||
}
|
||||
|
||||
return $result;
|
||||
|
||||
case FetchMode::NUMERIC:
|
||||
return db2_fetch_array($this->stmt);
|
||||
|
||||
case FetchMode::STANDARD_OBJECT:
|
||||
return db2_fetch_object($this->stmt);
|
||||
|
||||
default:
|
||||
throw new DB2Exception('Given Fetch-Style ' . $fetchMode . ' is not supported.');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)
|
||||
{
|
||||
$rows = [];
|
||||
|
||||
switch ($fetchMode) {
|
||||
case FetchMode::CUSTOM_OBJECT:
|
||||
while (($row = $this->fetch(...func_get_args())) !== false) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
break;
|
||||
case FetchMode::COLUMN:
|
||||
while (($row = $this->fetchColumn()) !== false) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
break;
|
||||
default:
|
||||
while (($row = $this->fetch($fetchMode)) !== false) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchColumn($columnIndex = 0)
|
||||
{
|
||||
$row = $this->fetch(FetchMode::NUMERIC);
|
||||
|
||||
if ($row === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $row[$columnIndex] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rowCount()
|
||||
{
|
||||
return @db2_num_rows($this->stmt) ? : 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Casts a stdClass object to the given class name mapping its' properties.
|
||||
*
|
||||
* @param stdClass $sourceObject Object to cast from.
|
||||
* @param string|object $destinationClass Name of the class or class instance to cast to.
|
||||
* @param mixed[] $ctorArgs Arguments to use for constructing the destination class instance.
|
||||
*
|
||||
* @return object
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
private function castObject(stdClass $sourceObject, $destinationClass, array $ctorArgs = [])
|
||||
{
|
||||
if (! is_string($destinationClass)) {
|
||||
if (! is_object($destinationClass)) {
|
||||
throw new DB2Exception(sprintf(
|
||||
'Destination class has to be of type string or object, %s given.',
|
||||
gettype($destinationClass)
|
||||
));
|
||||
}
|
||||
} else {
|
||||
$destinationClass = new ReflectionClass($destinationClass);
|
||||
$destinationClass = $destinationClass->newInstanceArgs($ctorArgs);
|
||||
}
|
||||
|
||||
$sourceReflection = new ReflectionObject($sourceObject);
|
||||
$destinationClassReflection = new ReflectionObject($destinationClass);
|
||||
/** @var ReflectionProperty[] $destinationProperties */
|
||||
$destinationProperties = array_change_key_case($destinationClassReflection->getProperties(), CASE_LOWER);
|
||||
|
||||
foreach ($sourceReflection->getProperties() as $sourceProperty) {
|
||||
$sourceProperty->setAccessible(true);
|
||||
|
||||
$name = $sourceProperty->getName();
|
||||
$value = $sourceProperty->getValue($sourceObject);
|
||||
|
||||
// Try to find a case-matching property.
|
||||
if ($destinationClassReflection->hasProperty($name)) {
|
||||
$destinationProperty = $destinationClassReflection->getProperty($name);
|
||||
|
||||
$destinationProperty->setAccessible(true);
|
||||
$destinationProperty->setValue($destinationClass, $value);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$name = strtolower($name);
|
||||
|
||||
// Try to find a property without matching case.
|
||||
// Fallback for the driver returning either all uppercase or all lowercase column names.
|
||||
if (isset($destinationProperties[$name])) {
|
||||
$destinationProperty = $destinationProperties[$name];
|
||||
|
||||
$destinationProperty->setAccessible(true);
|
||||
$destinationProperty->setValue($destinationClass, $value);
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
$destinationClass->$name = $value;
|
||||
}
|
||||
|
||||
return $destinationClass;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return resource
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
private function createTemporaryFile()
|
||||
{
|
||||
$handle = @tmpfile();
|
||||
|
||||
if ($handle === false) {
|
||||
throw new DB2Exception('Could not create temporary file: ' . error_get_last()['message']);
|
||||
}
|
||||
|
||||
return $handle;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param resource $source
|
||||
* @param resource $target
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
private function copyStreamToStream($source, $target) : void
|
||||
{
|
||||
if (@stream_copy_to_stream($source, $target) === false) {
|
||||
throw new DB2Exception('Could not copy source stream to temporary file: ' . error_get_last()['message']);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param resource $target
|
||||
*
|
||||
* @throws DB2Exception
|
||||
*/
|
||||
private function writeStringToStream(string $string, $target) : void
|
||||
{
|
||||
if (@fwrite($target, $string) === false) {
|
||||
throw new DB2Exception('Could not write string to temporary file: ' . error_get_last()['message']);
|
||||
}
|
||||
}
|
||||
}
|
||||
29
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php
vendored
Normal file
29
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/Driver.php
vendored
Normal file
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\Mysqli;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractMySQLDriver;
|
||||
|
||||
class Driver extends AbstractMySQLDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
return new MysqliConnection($params, (string) $username, (string) $password, $driverOptions);
|
||||
} catch (MysqliException $e) {
|
||||
throw DBALException::driverException($this, $e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'mysqli';
|
||||
}
|
||||
}
|
||||
303
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php
vendored
Normal file
303
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliConnection.php
vendored
Normal file
@@ -0,0 +1,303 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\Mysqli;
|
||||
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\PingableConnection;
|
||||
use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use mysqli;
|
||||
use const MYSQLI_INIT_COMMAND;
|
||||
use const MYSQLI_OPT_CONNECT_TIMEOUT;
|
||||
use const MYSQLI_OPT_LOCAL_INFILE;
|
||||
use const MYSQLI_READ_DEFAULT_FILE;
|
||||
use const MYSQLI_READ_DEFAULT_GROUP;
|
||||
use const MYSQLI_SERVER_PUBLIC_KEY;
|
||||
use function defined;
|
||||
use function floor;
|
||||
use function func_get_args;
|
||||
use function in_array;
|
||||
use function ini_get;
|
||||
use function mysqli_errno;
|
||||
use function mysqli_error;
|
||||
use function mysqli_init;
|
||||
use function mysqli_options;
|
||||
use function restore_error_handler;
|
||||
use function set_error_handler;
|
||||
use function sprintf;
|
||||
use function stripos;
|
||||
|
||||
class MysqliConnection implements Connection, PingableConnection, ServerInfoAwareConnection
|
||||
{
|
||||
/**
|
||||
* Name of the option to set connection flags
|
||||
*/
|
||||
public const OPTION_FLAGS = 'flags';
|
||||
|
||||
/** @var mysqli */
|
||||
private $conn;
|
||||
|
||||
/**
|
||||
* @param mixed[] $params
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param mixed[] $driverOptions
|
||||
*
|
||||
* @throws MysqliException
|
||||
*/
|
||||
public function __construct(array $params, $username, $password, array $driverOptions = [])
|
||||
{
|
||||
$port = $params['port'] ?? ini_get('mysqli.default_port');
|
||||
|
||||
// Fallback to default MySQL port if not given.
|
||||
if (! $port) {
|
||||
$port = 3306;
|
||||
}
|
||||
|
||||
$socket = $params['unix_socket'] ?? ini_get('mysqli.default_socket');
|
||||
$dbname = $params['dbname'] ?? null;
|
||||
|
||||
$flags = $driverOptions[static::OPTION_FLAGS] ?? null;
|
||||
|
||||
$this->conn = mysqli_init();
|
||||
|
||||
$this->setSecureConnection($params);
|
||||
$this->setDriverOptions($driverOptions);
|
||||
|
||||
set_error_handler(static function () {
|
||||
});
|
||||
try {
|
||||
if (! $this->conn->real_connect($params['host'], $username, $password, $dbname, $port, $socket, $flags)) {
|
||||
throw new MysqliException($this->conn->connect_error, $this->conn->sqlstate ?? 'HY000', $this->conn->connect_errno);
|
||||
}
|
||||
} finally {
|
||||
restore_error_handler();
|
||||
}
|
||||
|
||||
if (! isset($params['charset'])) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->conn->set_charset($params['charset']);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves mysqli native resource handle.
|
||||
*
|
||||
* Could be used if part of your application is not using DBAL.
|
||||
*
|
||||
* @return mysqli
|
||||
*/
|
||||
public function getWrappedResourceHandle()
|
||||
{
|
||||
return $this->conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* The server version detection includes a special case for MariaDB
|
||||
* to support '5.5.5-' prefixed versions introduced in Maria 10+
|
||||
*
|
||||
* @link https://jira.mariadb.org/browse/MDEV-4088
|
||||
*/
|
||||
public function getServerVersion()
|
||||
{
|
||||
$serverInfos = $this->conn->get_server_info();
|
||||
if (stripos($serverInfos, 'mariadb') !== false) {
|
||||
return $serverInfos;
|
||||
}
|
||||
|
||||
$majorVersion = floor($this->conn->server_version / 10000);
|
||||
$minorVersion = floor(($this->conn->server_version - $majorVersion * 10000) / 100);
|
||||
$patchVersion = floor($this->conn->server_version - $majorVersion * 10000 - $minorVersion * 100);
|
||||
|
||||
return $majorVersion . '.' . $minorVersion . '.' . $patchVersion;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function requiresQueryForServerVersion()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function prepare($prepareString)
|
||||
{
|
||||
return new MysqliStatement($this->conn, $prepareString);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$sql = $args[0];
|
||||
$stmt = $this->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
return $stmt;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function quote($input, $type = ParameterType::STRING)
|
||||
{
|
||||
return "'" . $this->conn->escape_string($input) . "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function exec($statement)
|
||||
{
|
||||
if ($this->conn->query($statement) === false) {
|
||||
throw new MysqliException($this->conn->error, $this->conn->sqlstate, $this->conn->errno);
|
||||
}
|
||||
|
||||
return $this->conn->affected_rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function lastInsertId($name = null)
|
||||
{
|
||||
return $this->conn->insert_id;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function beginTransaction()
|
||||
{
|
||||
$this->conn->query('START TRANSACTION');
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function commit()
|
||||
{
|
||||
return $this->conn->commit();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}non-PHPdoc)
|
||||
*/
|
||||
public function rollBack()
|
||||
{
|
||||
return $this->conn->rollback();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
return $this->conn->errno;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
return $this->conn->error;
|
||||
}
|
||||
|
||||
/**
|
||||
* Apply the driver options to the connection.
|
||||
*
|
||||
* @param mixed[] $driverOptions
|
||||
*
|
||||
* @throws MysqliException When one of of the options is not supported.
|
||||
* @throws MysqliException When applying doesn't work - e.g. due to incorrect value.
|
||||
*/
|
||||
private function setDriverOptions(array $driverOptions = [])
|
||||
{
|
||||
$supportedDriverOptions = [
|
||||
MYSQLI_OPT_CONNECT_TIMEOUT,
|
||||
MYSQLI_OPT_LOCAL_INFILE,
|
||||
MYSQLI_INIT_COMMAND,
|
||||
MYSQLI_READ_DEFAULT_FILE,
|
||||
MYSQLI_READ_DEFAULT_GROUP,
|
||||
];
|
||||
|
||||
if (defined('MYSQLI_SERVER_PUBLIC_KEY')) {
|
||||
$supportedDriverOptions[] = MYSQLI_SERVER_PUBLIC_KEY;
|
||||
}
|
||||
|
||||
$exceptionMsg = "%s option '%s' with value '%s'";
|
||||
|
||||
foreach ($driverOptions as $option => $value) {
|
||||
if ($option === static::OPTION_FLAGS) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (! in_array($option, $supportedDriverOptions, true)) {
|
||||
throw new MysqliException(
|
||||
sprintf($exceptionMsg, 'Unsupported', $option, $value)
|
||||
);
|
||||
}
|
||||
|
||||
if (@mysqli_options($this->conn, $option, $value)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$msg = sprintf($exceptionMsg, 'Failed to set', $option, $value);
|
||||
$msg .= sprintf(', error: %s (%d)', mysqli_error($this->conn), mysqli_errno($this->conn));
|
||||
|
||||
throw new MysqliException(
|
||||
$msg,
|
||||
$this->conn->sqlstate,
|
||||
$this->conn->errno
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Pings the server and re-connects when `mysqli.reconnect = 1`
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function ping()
|
||||
{
|
||||
return $this->conn->ping();
|
||||
}
|
||||
|
||||
/**
|
||||
* Establish a secure connection
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @throws MysqliException
|
||||
*/
|
||||
private function setSecureConnection(array $params)
|
||||
{
|
||||
if (! isset($params['ssl_key']) &&
|
||||
! isset($params['ssl_cert']) &&
|
||||
! isset($params['ssl_ca']) &&
|
||||
! isset($params['ssl_capath']) &&
|
||||
! isset($params['ssl_cipher'])
|
||||
) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->conn->ssl_set(
|
||||
$params['ssl_key'] ?? null,
|
||||
$params['ssl_cert'] ?? null,
|
||||
$params['ssl_ca'] ?? null,
|
||||
$params['ssl_capath'] ?? null,
|
||||
$params['ssl_cipher'] ?? null
|
||||
);
|
||||
}
|
||||
}
|
||||
12
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php
vendored
Normal file
12
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliException.php
vendored
Normal file
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\Mysqli;
|
||||
|
||||
use Doctrine\DBAL\Driver\AbstractDriverException;
|
||||
|
||||
/**
|
||||
* Exception thrown in case the mysqli driver errors.
|
||||
*/
|
||||
class MysqliException extends AbstractDriverException
|
||||
{
|
||||
}
|
||||
453
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php
vendored
Normal file
453
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/Mysqli/MysqliStatement.php
vendored
Normal file
@@ -0,0 +1,453 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\Mysqli;
|
||||
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
use Doctrine\DBAL\Driver\StatementIterator;
|
||||
use Doctrine\DBAL\Exception\InvalidArgumentException;
|
||||
use Doctrine\DBAL\FetchMode;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use IteratorAggregate;
|
||||
use mysqli;
|
||||
use mysqli_stmt;
|
||||
use PDO;
|
||||
use function array_combine;
|
||||
use function array_fill;
|
||||
use function assert;
|
||||
use function count;
|
||||
use function feof;
|
||||
use function fread;
|
||||
use function get_resource_type;
|
||||
use function is_array;
|
||||
use function is_int;
|
||||
use function is_resource;
|
||||
use function sprintf;
|
||||
use function str_repeat;
|
||||
|
||||
class MysqliStatement implements IteratorAggregate, Statement
|
||||
{
|
||||
/** @var string[] */
|
||||
protected static $_paramTypeMap = [
|
||||
ParameterType::STRING => 's',
|
||||
ParameterType::BINARY => 's',
|
||||
ParameterType::BOOLEAN => 'i',
|
||||
ParameterType::NULL => 's',
|
||||
ParameterType::INTEGER => 'i',
|
||||
ParameterType::LARGE_OBJECT => 'b',
|
||||
];
|
||||
|
||||
/** @var mysqli */
|
||||
protected $_conn;
|
||||
|
||||
/** @var mysqli_stmt */
|
||||
protected $_stmt;
|
||||
|
||||
/** @var string[]|false|null */
|
||||
protected $_columnNames;
|
||||
|
||||
/** @var mixed[] */
|
||||
protected $_rowBindedValues = [];
|
||||
|
||||
/** @var mixed[] */
|
||||
protected $_bindedValues;
|
||||
|
||||
/** @var string */
|
||||
protected $types;
|
||||
|
||||
/**
|
||||
* Contains ref values for bindValue().
|
||||
*
|
||||
* @var mixed[]
|
||||
*/
|
||||
protected $_values = [];
|
||||
|
||||
/** @var int */
|
||||
protected $_defaultFetchMode = FetchMode::MIXED;
|
||||
|
||||
/**
|
||||
* Indicates whether the statement is in the state when fetching results is possible
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $result = false;
|
||||
|
||||
/**
|
||||
* @param string $prepareString
|
||||
*
|
||||
* @throws MysqliException
|
||||
*/
|
||||
public function __construct(mysqli $conn, $prepareString)
|
||||
{
|
||||
$this->_conn = $conn;
|
||||
|
||||
$stmt = $conn->prepare($prepareString);
|
||||
|
||||
if ($stmt === false) {
|
||||
throw new MysqliException($this->_conn->error, $this->_conn->sqlstate, $this->_conn->errno);
|
||||
}
|
||||
|
||||
$this->_stmt = $stmt;
|
||||
|
||||
$paramCount = $this->_stmt->param_count;
|
||||
if (0 >= $paramCount) {
|
||||
return;
|
||||
}
|
||||
|
||||
$this->types = str_repeat('s', $paramCount);
|
||||
$this->_bindedValues = array_fill(1, $paramCount, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)
|
||||
{
|
||||
assert(is_int($column));
|
||||
|
||||
if (! isset(self::$_paramTypeMap[$type])) {
|
||||
throw new MysqliException(sprintf("Unknown type: '%s'", $type));
|
||||
}
|
||||
|
||||
$this->_bindedValues[$column] =& $variable;
|
||||
$this->types[$column - 1] = self::$_paramTypeMap[$type];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindValue($param, $value, $type = ParameterType::STRING)
|
||||
{
|
||||
assert(is_int($param));
|
||||
|
||||
if (! isset(self::$_paramTypeMap[$type])) {
|
||||
throw new MysqliException(sprintf("Unknown type: '%s'", $type));
|
||||
}
|
||||
|
||||
$this->_values[$param] = $value;
|
||||
$this->_bindedValues[$param] =& $this->_values[$param];
|
||||
$this->types[$param - 1] = self::$_paramTypeMap[$type];
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function execute($params = null)
|
||||
{
|
||||
if ($this->_bindedValues !== null) {
|
||||
if ($params !== null) {
|
||||
if (! $this->bindUntypedValues($params)) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->errno);
|
||||
}
|
||||
} else {
|
||||
$this->bindTypedParameters();
|
||||
}
|
||||
}
|
||||
|
||||
if (! $this->_stmt->execute()) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);
|
||||
}
|
||||
|
||||
if ($this->_columnNames === null) {
|
||||
$meta = $this->_stmt->result_metadata();
|
||||
if ($meta !== false) {
|
||||
$fields = $meta->fetch_fields();
|
||||
assert(is_array($fields));
|
||||
|
||||
$columnNames = [];
|
||||
foreach ($fields as $col) {
|
||||
$columnNames[] = $col->name;
|
||||
}
|
||||
|
||||
$meta->free();
|
||||
|
||||
$this->_columnNames = $columnNames;
|
||||
} else {
|
||||
$this->_columnNames = false;
|
||||
}
|
||||
}
|
||||
|
||||
if ($this->_columnNames !== false) {
|
||||
// Store result of every execution which has it. Otherwise it will be impossible
|
||||
// to execute a new statement in case if the previous one has non-fetched rows
|
||||
// @link http://dev.mysql.com/doc/refman/5.7/en/commands-out-of-sync.html
|
||||
$this->_stmt->store_result();
|
||||
|
||||
// Bind row values _after_ storing the result. Otherwise, if mysqli is compiled with libmysql,
|
||||
// it will have to allocate as much memory as it may be needed for the given column type
|
||||
// (e.g. for a LONGBLOB field it's 4 gigabytes)
|
||||
// @link https://bugs.php.net/bug.php?id=51386#1270673122
|
||||
//
|
||||
// Make sure that the values are bound after each execution. Otherwise, if closeCursor() has been
|
||||
// previously called on the statement, the values are unbound making the statement unusable.
|
||||
//
|
||||
// It's also important that row values are bound after _each_ call to store_result(). Otherwise,
|
||||
// if mysqli is compiled with libmysql, subsequently fetched string values will get truncated
|
||||
// to the length of the ones fetched during the previous execution.
|
||||
$this->_rowBindedValues = array_fill(0, count($this->_columnNames), null);
|
||||
|
||||
$refs = [];
|
||||
foreach ($this->_rowBindedValues as $key => &$value) {
|
||||
$refs[$key] =& $value;
|
||||
}
|
||||
|
||||
if (! $this->_stmt->bind_result(...$refs)) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);
|
||||
}
|
||||
}
|
||||
|
||||
$this->result = true;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Binds parameters with known types previously bound to the statement
|
||||
*/
|
||||
private function bindTypedParameters()
|
||||
{
|
||||
$streams = $values = [];
|
||||
$types = $this->types;
|
||||
|
||||
foreach ($this->_bindedValues as $parameter => $value) {
|
||||
if (! isset($types[$parameter - 1])) {
|
||||
$types[$parameter - 1] = static::$_paramTypeMap[ParameterType::STRING];
|
||||
}
|
||||
|
||||
if ($types[$parameter - 1] === static::$_paramTypeMap[ParameterType::LARGE_OBJECT]) {
|
||||
if (is_resource($value)) {
|
||||
if (get_resource_type($value) !== 'stream') {
|
||||
throw new InvalidArgumentException('Resources passed with the LARGE_OBJECT parameter type must be stream resources.');
|
||||
}
|
||||
$streams[$parameter] = $value;
|
||||
$values[$parameter] = null;
|
||||
continue;
|
||||
}
|
||||
|
||||
$types[$parameter - 1] = static::$_paramTypeMap[ParameterType::STRING];
|
||||
}
|
||||
|
||||
$values[$parameter] = $value;
|
||||
}
|
||||
|
||||
if (! $this->_stmt->bind_param($types, ...$values)) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);
|
||||
}
|
||||
|
||||
$this->sendLongData($streams);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle $this->_longData after regular query parameters have been bound
|
||||
*
|
||||
* @throws MysqliException
|
||||
*/
|
||||
private function sendLongData($streams)
|
||||
{
|
||||
foreach ($streams as $paramNr => $stream) {
|
||||
while (! feof($stream)) {
|
||||
$chunk = fread($stream, 8192);
|
||||
|
||||
if ($chunk === false) {
|
||||
throw new MysqliException("Failed reading the stream resource for parameter offset ${paramNr}.");
|
||||
}
|
||||
|
||||
if (! $this->_stmt->send_long_data($paramNr - 1, $chunk)) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Binds a array of values to bound parameters.
|
||||
*
|
||||
* @param mixed[] $values
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
private function bindUntypedValues(array $values)
|
||||
{
|
||||
$params = [];
|
||||
$types = str_repeat('s', count($values));
|
||||
|
||||
foreach ($values as &$v) {
|
||||
$params[] =& $v;
|
||||
}
|
||||
|
||||
return $this->_stmt->bind_param($types, ...$params);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return mixed[]|false|null
|
||||
*/
|
||||
private function _fetch()
|
||||
{
|
||||
$ret = $this->_stmt->fetch();
|
||||
|
||||
if ($ret === true) {
|
||||
$values = [];
|
||||
foreach ($this->_rowBindedValues as $v) {
|
||||
$values[] = $v;
|
||||
}
|
||||
|
||||
return $values;
|
||||
}
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
|
||||
{
|
||||
// do not try fetching from the statement if it's not expected to contain result
|
||||
// in order to prevent exceptional situation
|
||||
if (! $this->result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$fetchMode = $fetchMode ?: $this->_defaultFetchMode;
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
return $this->fetchColumn();
|
||||
}
|
||||
|
||||
$values = $this->_fetch();
|
||||
|
||||
if ($values === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($values === false) {
|
||||
throw new MysqliException($this->_stmt->error, $this->_stmt->sqlstate, $this->_stmt->errno);
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::NUMERIC) {
|
||||
return $values;
|
||||
}
|
||||
|
||||
assert(is_array($this->_columnNames));
|
||||
$assoc = array_combine($this->_columnNames, $values);
|
||||
assert(is_array($assoc));
|
||||
|
||||
switch ($fetchMode) {
|
||||
case FetchMode::ASSOCIATIVE:
|
||||
return $assoc;
|
||||
|
||||
case FetchMode::MIXED:
|
||||
return $assoc + $values;
|
||||
|
||||
case FetchMode::STANDARD_OBJECT:
|
||||
return (object) $assoc;
|
||||
|
||||
default:
|
||||
throw new MysqliException(sprintf("Unknown fetch type '%s'", $fetchMode));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)
|
||||
{
|
||||
$fetchMode = $fetchMode ?: $this->_defaultFetchMode;
|
||||
|
||||
$rows = [];
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
while (($row = $this->fetchColumn()) !== false) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
} else {
|
||||
while (($row = $this->fetch($fetchMode)) !== false) {
|
||||
$rows[] = $row;
|
||||
}
|
||||
}
|
||||
|
||||
return $rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchColumn($columnIndex = 0)
|
||||
{
|
||||
$row = $this->fetch(FetchMode::NUMERIC);
|
||||
|
||||
if ($row === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $row[$columnIndex] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
return $this->_stmt->errno;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
return $this->_stmt->error;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function closeCursor()
|
||||
{
|
||||
$this->_stmt->free_result();
|
||||
$this->result = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rowCount()
|
||||
{
|
||||
if ($this->_columnNames === false) {
|
||||
return $this->_stmt->affected_rows;
|
||||
}
|
||||
|
||||
return $this->_stmt->num_rows;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function columnCount()
|
||||
{
|
||||
return $this->_stmt->field_count;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)
|
||||
{
|
||||
$this->_defaultFetchMode = $fetchMode;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new StatementIterator($this);
|
||||
}
|
||||
}
|
||||
54
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php
vendored
Normal file
54
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/Driver.php
vendored
Normal file
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\OCI8;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractOracleDriver;
|
||||
use const OCI_DEFAULT;
|
||||
|
||||
/**
|
||||
* A Doctrine DBAL driver for the Oracle OCI8 PHP extensions.
|
||||
*/
|
||||
class Driver extends AbstractOracleDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
return new OCI8Connection(
|
||||
(string) $username,
|
||||
(string) $password,
|
||||
$this->_constructDsn($params),
|
||||
$params['charset'] ?? '',
|
||||
$params['sessionMode'] ?? OCI_DEFAULT,
|
||||
$params['persistent'] ?? false
|
||||
);
|
||||
} catch (OCI8Exception $e) {
|
||||
throw DBALException::driverException($this, $e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the Oracle DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
protected function _constructDsn(array $params)
|
||||
{
|
||||
return $this->getEasyConnectString($params);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'oci8';
|
||||
}
|
||||
}
|
||||
241
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php
vendored
Normal file
241
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php
vendored
Normal file
@@ -0,0 +1,241 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\OCI8;
|
||||
|
||||
use Doctrine\DBAL\Driver\Connection;
|
||||
use Doctrine\DBAL\Driver\ServerInfoAwareConnection;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use UnexpectedValueException;
|
||||
use const OCI_COMMIT_ON_SUCCESS;
|
||||
use const OCI_DEFAULT;
|
||||
use const OCI_NO_AUTO_COMMIT;
|
||||
use function addcslashes;
|
||||
use function func_get_args;
|
||||
use function is_float;
|
||||
use function is_int;
|
||||
use function oci_commit;
|
||||
use function oci_connect;
|
||||
use function oci_error;
|
||||
use function oci_pconnect;
|
||||
use function oci_rollback;
|
||||
use function oci_server_version;
|
||||
use function preg_match;
|
||||
use function sprintf;
|
||||
use function str_replace;
|
||||
|
||||
/**
|
||||
* OCI8 implementation of the Connection interface.
|
||||
*/
|
||||
class OCI8Connection implements Connection, ServerInfoAwareConnection
|
||||
{
|
||||
/** @var resource */
|
||||
protected $dbh;
|
||||
|
||||
/** @var int */
|
||||
protected $executeMode = OCI_COMMIT_ON_SUCCESS;
|
||||
|
||||
/**
|
||||
* Creates a Connection to an Oracle Database using oci8 extension.
|
||||
*
|
||||
* @param string $username
|
||||
* @param string $password
|
||||
* @param string $db
|
||||
* @param string $charset
|
||||
* @param int $sessionMode
|
||||
* @param bool $persistent
|
||||
*
|
||||
* @throws OCI8Exception
|
||||
*/
|
||||
public function __construct(
|
||||
$username,
|
||||
$password,
|
||||
$db,
|
||||
$charset = '',
|
||||
$sessionMode = OCI_DEFAULT,
|
||||
$persistent = false
|
||||
) {
|
||||
$dbh = $persistent
|
||||
? @oci_pconnect($username, $password, $db, $charset, $sessionMode)
|
||||
: @oci_connect($username, $password, $db, $charset, $sessionMode);
|
||||
|
||||
if ($dbh === false) {
|
||||
throw OCI8Exception::fromErrorInfo(oci_error());
|
||||
}
|
||||
|
||||
$this->dbh = $dbh;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @throws UnexpectedValueException If the version string returned by the database server
|
||||
* does not contain a parsable version number.
|
||||
*/
|
||||
public function getServerVersion()
|
||||
{
|
||||
$version = oci_server_version($this->dbh);
|
||||
|
||||
if ($version === false) {
|
||||
throw OCI8Exception::fromErrorInfo(oci_error($this->dbh));
|
||||
}
|
||||
|
||||
if (! preg_match('/\s+(\d+\.\d+\.\d+\.\d+\.\d+)\s+/', $version, $matches)) {
|
||||
throw new UnexpectedValueException(
|
||||
sprintf(
|
||||
'Unexpected database version string "%s". Cannot parse an appropriate version number from it. ' .
|
||||
'Please report this database version string to the Doctrine team.',
|
||||
$version
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
return $matches[1];
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function requiresQueryForServerVersion()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function prepare($prepareString)
|
||||
{
|
||||
return new OCI8Statement($this->dbh, $prepareString, $this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
$args = func_get_args();
|
||||
$sql = $args[0];
|
||||
//$fetchMode = $args[1];
|
||||
$stmt = $this->prepare($sql);
|
||||
$stmt->execute();
|
||||
|
||||
return $stmt;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function quote($value, $type = ParameterType::STRING)
|
||||
{
|
||||
if (is_int($value) || is_float($value)) {
|
||||
return $value;
|
||||
}
|
||||
$value = str_replace("'", "''", $value);
|
||||
|
||||
return "'" . addcslashes($value, "\000\n\r\\\032") . "'";
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function exec($statement)
|
||||
{
|
||||
$stmt = $this->prepare($statement);
|
||||
$stmt->execute();
|
||||
|
||||
return $stmt->rowCount();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function lastInsertId($name = null)
|
||||
{
|
||||
if ($name === null) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$sql = 'SELECT ' . $name . '.CURRVAL FROM DUAL';
|
||||
$stmt = $this->query($sql);
|
||||
$result = $stmt->fetchColumn();
|
||||
|
||||
if ($result === false) {
|
||||
throw new OCI8Exception('lastInsertId failed: Query was executed but no result was returned.');
|
||||
}
|
||||
|
||||
return (int) $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the current execution mode.
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getExecuteMode()
|
||||
{
|
||||
return $this->executeMode;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function beginTransaction()
|
||||
{
|
||||
$this->executeMode = OCI_NO_AUTO_COMMIT;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function commit()
|
||||
{
|
||||
if (! oci_commit($this->dbh)) {
|
||||
throw OCI8Exception::fromErrorInfo($this->errorInfo());
|
||||
}
|
||||
$this->executeMode = OCI_COMMIT_ON_SUCCESS;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rollBack()
|
||||
{
|
||||
if (! oci_rollback($this->dbh)) {
|
||||
throw OCI8Exception::fromErrorInfo($this->errorInfo());
|
||||
}
|
||||
$this->executeMode = OCI_COMMIT_ON_SUCCESS;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
$error = oci_error($this->dbh);
|
||||
if ($error !== false) {
|
||||
$error = $error['code'];
|
||||
}
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
$error = oci_error($this->dbh);
|
||||
|
||||
if ($error === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $error;
|
||||
}
|
||||
}
|
||||
22
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php
vendored
Normal file
22
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Exception.php
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\OCI8;
|
||||
|
||||
use Doctrine\DBAL\Driver\AbstractDriverException;
|
||||
|
||||
class OCI8Exception extends AbstractDriverException
|
||||
{
|
||||
/**
|
||||
* @param mixed[]|false $error
|
||||
*
|
||||
* @return \Doctrine\DBAL\Driver\OCI8\OCI8Exception
|
||||
*/
|
||||
public static function fromErrorInfo($error)
|
||||
{
|
||||
if ($error === false) {
|
||||
return new self('Database error occurred but no error information was retrieved from the driver.');
|
||||
}
|
||||
|
||||
return new self($error['message'], null, $error['code']);
|
||||
}
|
||||
}
|
||||
531
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php
vendored
Normal file
531
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/OCI8/OCI8Statement.php
vendored
Normal file
@@ -0,0 +1,531 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\OCI8;
|
||||
|
||||
use Doctrine\DBAL\Driver\Statement;
|
||||
use Doctrine\DBAL\Driver\StatementIterator;
|
||||
use Doctrine\DBAL\FetchMode;
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use InvalidArgumentException;
|
||||
use IteratorAggregate;
|
||||
use PDO;
|
||||
use const OCI_ASSOC;
|
||||
use const OCI_B_BIN;
|
||||
use const OCI_B_BLOB;
|
||||
use const OCI_BOTH;
|
||||
use const OCI_D_LOB;
|
||||
use const OCI_FETCHSTATEMENT_BY_COLUMN;
|
||||
use const OCI_FETCHSTATEMENT_BY_ROW;
|
||||
use const OCI_NUM;
|
||||
use const OCI_RETURN_LOBS;
|
||||
use const OCI_RETURN_NULLS;
|
||||
use const OCI_TEMP_BLOB;
|
||||
use const PREG_OFFSET_CAPTURE;
|
||||
use const SQLT_CHR;
|
||||
use function array_key_exists;
|
||||
use function assert;
|
||||
use function count;
|
||||
use function implode;
|
||||
use function is_int;
|
||||
use function is_resource;
|
||||
use function oci_bind_by_name;
|
||||
use function oci_cancel;
|
||||
use function oci_error;
|
||||
use function oci_execute;
|
||||
use function oci_fetch_all;
|
||||
use function oci_fetch_array;
|
||||
use function oci_fetch_object;
|
||||
use function oci_new_descriptor;
|
||||
use function oci_num_fields;
|
||||
use function oci_num_rows;
|
||||
use function oci_parse;
|
||||
use function preg_match;
|
||||
use function preg_quote;
|
||||
use function sprintf;
|
||||
use function substr;
|
||||
|
||||
/**
|
||||
* The OCI8 implementation of the Statement interface.
|
||||
*/
|
||||
class OCI8Statement implements IteratorAggregate, Statement
|
||||
{
|
||||
/** @var resource */
|
||||
protected $_dbh;
|
||||
|
||||
/** @var resource */
|
||||
protected $_sth;
|
||||
|
||||
/** @var OCI8Connection */
|
||||
protected $_conn;
|
||||
|
||||
/**
|
||||
* @deprecated
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected static $_PARAM = ':param';
|
||||
|
||||
/** @var int[] */
|
||||
protected static $fetchModeMap = [
|
||||
FetchMode::MIXED => OCI_BOTH,
|
||||
FetchMode::ASSOCIATIVE => OCI_ASSOC,
|
||||
FetchMode::NUMERIC => OCI_NUM,
|
||||
FetchMode::COLUMN => OCI_NUM,
|
||||
];
|
||||
|
||||
/** @var int */
|
||||
protected $_defaultFetchMode = FetchMode::MIXED;
|
||||
|
||||
/** @var string[] */
|
||||
protected $_paramMap = [];
|
||||
|
||||
/**
|
||||
* Holds references to bound parameter values.
|
||||
*
|
||||
* This is a new requirement for PHP7's oci8 extension that prevents bound values from being garbage collected.
|
||||
*
|
||||
* @var mixed[]
|
||||
*/
|
||||
private $boundValues = [];
|
||||
|
||||
/**
|
||||
* Indicates whether the statement is in the state when fetching results is possible
|
||||
*
|
||||
* @var bool
|
||||
*/
|
||||
private $result = false;
|
||||
|
||||
/**
|
||||
* Creates a new OCI8Statement that uses the given connection handle and SQL statement.
|
||||
*
|
||||
* @param resource $dbh The connection handle.
|
||||
* @param string $query The SQL query.
|
||||
*/
|
||||
public function __construct($dbh, $query, OCI8Connection $conn)
|
||||
{
|
||||
[$query, $paramMap] = self::convertPositionalToNamedPlaceholders($query);
|
||||
|
||||
$stmt = oci_parse($dbh, $query);
|
||||
assert(is_resource($stmt));
|
||||
|
||||
$this->_sth = $stmt;
|
||||
$this->_dbh = $dbh;
|
||||
$this->_paramMap = $paramMap;
|
||||
$this->_conn = $conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts positional (?) into named placeholders (:param<num>).
|
||||
*
|
||||
* Oracle does not support positional parameters, hence this method converts all
|
||||
* positional parameters into artificially named parameters. Note that this conversion
|
||||
* is not perfect. All question marks (?) in the original statement are treated as
|
||||
* placeholders and converted to a named parameter.
|
||||
*
|
||||
* The algorithm uses a state machine with two possible states: InLiteral and NotInLiteral.
|
||||
* Question marks inside literal strings are therefore handled correctly by this method.
|
||||
* This comes at a cost, the whole sql statement has to be looped over.
|
||||
*
|
||||
* @param string $statement The SQL statement to convert.
|
||||
*
|
||||
* @return mixed[] [0] => the statement value (string), [1] => the paramMap value (array).
|
||||
*
|
||||
* @throws OCI8Exception
|
||||
*
|
||||
* @todo extract into utility class in Doctrine\DBAL\Util namespace
|
||||
* @todo review and test for lost spaces. we experienced missing spaces with oci8 in some sql statements.
|
||||
*/
|
||||
public static function convertPositionalToNamedPlaceholders($statement)
|
||||
{
|
||||
$fragmentOffset = $tokenOffset = 0;
|
||||
$fragments = $paramMap = [];
|
||||
$currentLiteralDelimiter = null;
|
||||
|
||||
do {
|
||||
if (! $currentLiteralDelimiter) {
|
||||
$result = self::findPlaceholderOrOpeningQuote(
|
||||
$statement,
|
||||
$tokenOffset,
|
||||
$fragmentOffset,
|
||||
$fragments,
|
||||
$currentLiteralDelimiter,
|
||||
$paramMap
|
||||
);
|
||||
} else {
|
||||
$result = self::findClosingQuote($statement, $tokenOffset, $currentLiteralDelimiter);
|
||||
}
|
||||
} while ($result);
|
||||
|
||||
if ($currentLiteralDelimiter) {
|
||||
throw new OCI8Exception(sprintf(
|
||||
'The statement contains non-terminated string literal starting at offset %d',
|
||||
$tokenOffset - 1
|
||||
));
|
||||
}
|
||||
|
||||
$fragments[] = substr($statement, $fragmentOffset);
|
||||
$statement = implode('', $fragments);
|
||||
|
||||
return [$statement, $paramMap];
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds next placeholder or opening quote.
|
||||
*
|
||||
* @param string $statement The SQL statement to parse
|
||||
* @param string $tokenOffset The offset to start searching from
|
||||
* @param int $fragmentOffset The offset to build the next fragment from
|
||||
* @param string[] $fragments Fragments of the original statement not containing placeholders
|
||||
* @param string|null $currentLiteralDelimiter The delimiter of the current string literal
|
||||
* or NULL if not currently in a literal
|
||||
* @param array<int, string> $paramMap Mapping of the original parameter positions to their named replacements
|
||||
*
|
||||
* @return bool Whether the token was found
|
||||
*/
|
||||
private static function findPlaceholderOrOpeningQuote(
|
||||
$statement,
|
||||
&$tokenOffset,
|
||||
&$fragmentOffset,
|
||||
&$fragments,
|
||||
&$currentLiteralDelimiter,
|
||||
&$paramMap
|
||||
) {
|
||||
$token = self::findToken($statement, $tokenOffset, '/[?\'"]/');
|
||||
|
||||
if (! $token) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($token === '?') {
|
||||
$position = count($paramMap) + 1;
|
||||
$param = ':param' . $position;
|
||||
$fragments[] = substr($statement, $fragmentOffset, $tokenOffset - $fragmentOffset);
|
||||
$fragments[] = $param;
|
||||
$paramMap[$position] = $param;
|
||||
$tokenOffset += 1;
|
||||
$fragmentOffset = $tokenOffset;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
$currentLiteralDelimiter = $token;
|
||||
++$tokenOffset;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds closing quote
|
||||
*
|
||||
* @param string $statement The SQL statement to parse
|
||||
* @param string $tokenOffset The offset to start searching from
|
||||
* @param string $currentLiteralDelimiter The delimiter of the current string literal
|
||||
*
|
||||
* @return bool Whether the token was found
|
||||
*/
|
||||
private static function findClosingQuote(
|
||||
$statement,
|
||||
&$tokenOffset,
|
||||
&$currentLiteralDelimiter
|
||||
) {
|
||||
$token = self::findToken(
|
||||
$statement,
|
||||
$tokenOffset,
|
||||
'/' . preg_quote($currentLiteralDelimiter, '/') . '/'
|
||||
);
|
||||
|
||||
if (! $token) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$currentLiteralDelimiter = false;
|
||||
++$tokenOffset;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the token described by regex starting from the given offset. Updates the offset with the position
|
||||
* where the token was found.
|
||||
*
|
||||
* @param string $statement The SQL statement to parse
|
||||
* @param int $offset The offset to start searching from
|
||||
* @param string $regex The regex containing token pattern
|
||||
*
|
||||
* @return string|null Token or NULL if not found
|
||||
*/
|
||||
private static function findToken($statement, &$offset, $regex)
|
||||
{
|
||||
if (preg_match($regex, $statement, $matches, PREG_OFFSET_CAPTURE, $offset)) {
|
||||
$offset = $matches[0][1];
|
||||
|
||||
return $matches[0][0];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindValue($param, $value, $type = ParameterType::STRING)
|
||||
{
|
||||
return $this->bindParam($param, $value, $type, null);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function bindParam($column, &$variable, $type = ParameterType::STRING, $length = null)
|
||||
{
|
||||
$column = $this->_paramMap[$column];
|
||||
|
||||
if ($type === ParameterType::LARGE_OBJECT) {
|
||||
$lob = oci_new_descriptor($this->_dbh, OCI_D_LOB);
|
||||
|
||||
$class = 'OCI-Lob';
|
||||
assert($lob instanceof $class);
|
||||
|
||||
$lob->writeTemporary($variable, OCI_TEMP_BLOB);
|
||||
|
||||
$variable =& $lob;
|
||||
}
|
||||
|
||||
$this->boundValues[$column] =& $variable;
|
||||
|
||||
return oci_bind_by_name(
|
||||
$this->_sth,
|
||||
$column,
|
||||
$variable,
|
||||
$length ?? -1,
|
||||
$this->convertParameterType($type)
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts DBAL parameter type to oci8 parameter type
|
||||
*/
|
||||
private function convertParameterType(int $type) : int
|
||||
{
|
||||
switch ($type) {
|
||||
case ParameterType::BINARY:
|
||||
return OCI_B_BIN;
|
||||
|
||||
case ParameterType::LARGE_OBJECT:
|
||||
return OCI_B_BLOB;
|
||||
|
||||
default:
|
||||
return SQLT_CHR;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function closeCursor()
|
||||
{
|
||||
// not having the result means there's nothing to close
|
||||
if (! $this->result) {
|
||||
return true;
|
||||
}
|
||||
|
||||
oci_cancel($this->_sth);
|
||||
|
||||
$this->result = false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function columnCount()
|
||||
{
|
||||
return oci_num_fields($this->_sth) ?: 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorCode()
|
||||
{
|
||||
$error = oci_error($this->_sth);
|
||||
if ($error !== false) {
|
||||
$error = $error['code'];
|
||||
}
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function errorInfo()
|
||||
{
|
||||
$error = oci_error($this->_sth);
|
||||
|
||||
if ($error === false) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $error;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function execute($params = null)
|
||||
{
|
||||
if ($params) {
|
||||
$hasZeroIndex = array_key_exists(0, $params);
|
||||
|
||||
foreach ($params as $key => $val) {
|
||||
if ($hasZeroIndex && is_int($key)) {
|
||||
$this->bindValue($key + 1, $val);
|
||||
} else {
|
||||
$this->bindValue($key, $val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$ret = @oci_execute($this->_sth, $this->_conn->getExecuteMode());
|
||||
if (! $ret) {
|
||||
throw OCI8Exception::fromErrorInfo($this->errorInfo());
|
||||
}
|
||||
|
||||
$this->result = true;
|
||||
|
||||
return $ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setFetchMode($fetchMode, $arg2 = null, $arg3 = null)
|
||||
{
|
||||
$this->_defaultFetchMode = $fetchMode;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getIterator()
|
||||
{
|
||||
return new StatementIterator($this);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetch($fetchMode = null, $cursorOrientation = PDO::FETCH_ORI_NEXT, $cursorOffset = 0)
|
||||
{
|
||||
// do not try fetching from the statement if it's not expected to contain result
|
||||
// in order to prevent exceptional situation
|
||||
if (! $this->result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$fetchMode = $fetchMode ?: $this->_defaultFetchMode;
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
return $this->fetchColumn();
|
||||
}
|
||||
|
||||
if ($fetchMode === FetchMode::STANDARD_OBJECT) {
|
||||
return oci_fetch_object($this->_sth);
|
||||
}
|
||||
|
||||
if (! isset(self::$fetchModeMap[$fetchMode])) {
|
||||
throw new InvalidArgumentException('Invalid fetch style: ' . $fetchMode);
|
||||
}
|
||||
|
||||
return oci_fetch_array(
|
||||
$this->_sth,
|
||||
self::$fetchModeMap[$fetchMode] | OCI_RETURN_NULLS | OCI_RETURN_LOBS
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchAll($fetchMode = null, $fetchArgument = null, $ctorArgs = null)
|
||||
{
|
||||
$fetchMode = $fetchMode ?: $this->_defaultFetchMode;
|
||||
|
||||
$result = [];
|
||||
|
||||
if ($fetchMode === FetchMode::STANDARD_OBJECT) {
|
||||
while ($row = $this->fetch($fetchMode)) {
|
||||
$result[] = $row;
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
if (! isset(self::$fetchModeMap[$fetchMode])) {
|
||||
throw new InvalidArgumentException('Invalid fetch style: ' . $fetchMode);
|
||||
}
|
||||
|
||||
if (self::$fetchModeMap[$fetchMode] === OCI_BOTH) {
|
||||
while ($row = $this->fetch($fetchMode)) {
|
||||
$result[] = $row;
|
||||
}
|
||||
} else {
|
||||
$fetchStructure = OCI_FETCHSTATEMENT_BY_ROW;
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
$fetchStructure = OCI_FETCHSTATEMENT_BY_COLUMN;
|
||||
}
|
||||
|
||||
// do not try fetching from the statement if it's not expected to contain result
|
||||
// in order to prevent exceptional situation
|
||||
if (! $this->result) {
|
||||
return [];
|
||||
}
|
||||
|
||||
oci_fetch_all(
|
||||
$this->_sth,
|
||||
$result,
|
||||
0,
|
||||
-1,
|
||||
self::$fetchModeMap[$fetchMode] | OCI_RETURN_NULLS | $fetchStructure | OCI_RETURN_LOBS
|
||||
);
|
||||
|
||||
if ($fetchMode === FetchMode::COLUMN) {
|
||||
$result = $result[0];
|
||||
}
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function fetchColumn($columnIndex = 0)
|
||||
{
|
||||
// do not try fetching from the statement if it's not expected to contain result
|
||||
// in order to prevent exceptional situation
|
||||
if (! $this->result) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$row = oci_fetch_array($this->_sth, OCI_NUM | OCI_RETURN_NULLS | OCI_RETURN_LOBS);
|
||||
|
||||
if ($row === false) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return $row[$columnIndex] ?? null;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function rowCount()
|
||||
{
|
||||
return oci_num_rows($this->_sth) ?: 0;
|
||||
}
|
||||
}
|
||||
115
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php
vendored
Normal file
115
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php
vendored
Normal file
@@ -0,0 +1,115 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
use Doctrine\DBAL\ParameterType;
|
||||
use PDO;
|
||||
use function assert;
|
||||
use function func_get_args;
|
||||
|
||||
/**
|
||||
* PDO implementation of the Connection interface.
|
||||
* Used by all PDO-based drivers.
|
||||
*/
|
||||
class PDOConnection extends PDO implements Connection, ServerInfoAwareConnection
|
||||
{
|
||||
/**
|
||||
* @param string $dsn
|
||||
* @param string|null $user
|
||||
* @param string|null $password
|
||||
* @param mixed[]|null $options
|
||||
*
|
||||
* @throws PDOException In case of an error.
|
||||
*/
|
||||
public function __construct($dsn, $user = null, $password = null, ?array $options = null)
|
||||
{
|
||||
try {
|
||||
parent::__construct($dsn, (string) $user, (string) $password, (array) $options);
|
||||
$this->setAttribute(PDO::ATTR_STATEMENT_CLASS, [PDOStatement::class, []]);
|
||||
$this->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
|
||||
} catch (\PDOException $exception) {
|
||||
throw new PDOException($exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function exec($statement)
|
||||
{
|
||||
try {
|
||||
return parent::exec($statement);
|
||||
} catch (\PDOException $exception) {
|
||||
throw new PDOException($exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getServerVersion()
|
||||
{
|
||||
return PDO::getAttribute(PDO::ATTR_SERVER_VERSION);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function prepare($prepareString, $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
return parent::prepare($prepareString, $driverOptions);
|
||||
} catch (\PDOException $exception) {
|
||||
throw new PDOException($exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function query()
|
||||
{
|
||||
$args = func_get_args();
|
||||
|
||||
try {
|
||||
$stmt = parent::query(...$args);
|
||||
assert($stmt instanceof \PDOStatement);
|
||||
|
||||
return $stmt;
|
||||
} catch (\PDOException $exception) {
|
||||
throw new PDOException($exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function quote($input, $type = ParameterType::STRING)
|
||||
{
|
||||
return parent::quote($input, $type);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function lastInsertId($name = null)
|
||||
{
|
||||
try {
|
||||
if ($name === null) {
|
||||
return parent::lastInsertId();
|
||||
}
|
||||
|
||||
return parent::lastInsertId($name);
|
||||
} catch (\PDOException $exception) {
|
||||
throw new PDOException($exception);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function requiresQueryForServerVersion()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
52
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php
vendored
Normal file
52
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOException.php
vendored
Normal file
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver;
|
||||
|
||||
/**
|
||||
* Tiny wrapper for PDOException instances to implement the {@link DriverException} interface.
|
||||
*/
|
||||
class PDOException extends \PDOException implements DriverException
|
||||
{
|
||||
/**
|
||||
* The driver specific error code.
|
||||
*
|
||||
* @var int|string|null
|
||||
*/
|
||||
private $errorCode;
|
||||
|
||||
/**
|
||||
* The SQLSTATE of the driver.
|
||||
*
|
||||
* @var string|null
|
||||
*/
|
||||
private $sqlState;
|
||||
|
||||
/**
|
||||
* @param \PDOException $exception The PDO exception to wrap.
|
||||
*/
|
||||
public function __construct(\PDOException $exception)
|
||||
{
|
||||
parent::__construct($exception->getMessage(), 0, $exception);
|
||||
|
||||
$this->code = $exception->getCode();
|
||||
$this->errorInfo = $exception->errorInfo;
|
||||
$this->errorCode = $exception->errorInfo[1] ?? $exception->getCode();
|
||||
$this->sqlState = $exception->errorInfo[0] ?? $exception->getCode();
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getErrorCode()
|
||||
{
|
||||
return $this->errorCode;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getSQLState()
|
||||
{
|
||||
return $this->sqlState;
|
||||
}
|
||||
}
|
||||
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php
vendored
Normal file
59
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOIbm/Driver.php
vendored
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\PDOIbm;
|
||||
|
||||
use Doctrine\DBAL\Driver\AbstractDB2Driver;
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
|
||||
/**
|
||||
* Driver for the PDO IBM extension.
|
||||
*/
|
||||
class Driver extends AbstractDB2Driver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
return new PDOConnection(
|
||||
$this->_constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the IBM PDO DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
private function _constructPdoDsn(array $params)
|
||||
{
|
||||
$dsn = 'ibm:';
|
||||
if (isset($params['host'])) {
|
||||
$dsn .= 'HOSTNAME=' . $params['host'] . ';';
|
||||
}
|
||||
if (isset($params['port'])) {
|
||||
$dsn .= 'PORT=' . $params['port'] . ';';
|
||||
}
|
||||
$dsn .= 'PROTOCOL=TCPIP;';
|
||||
if (isset($params['dbname'])) {
|
||||
$dsn .= 'DATABASE=' . $params['dbname'] . ';';
|
||||
}
|
||||
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'pdo_ibm';
|
||||
}
|
||||
}
|
||||
72
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php
vendored
Normal file
72
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOMySql/Driver.php
vendored
Normal file
@@ -0,0 +1,72 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\PDOMySql;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractMySQLDriver;
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
use PDOException;
|
||||
|
||||
/**
|
||||
* PDO MySql driver.
|
||||
*/
|
||||
class Driver extends AbstractMySQLDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
$conn = new PDOConnection(
|
||||
$this->constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
} catch (PDOException $e) {
|
||||
throw DBALException::driverException($this, $e);
|
||||
}
|
||||
|
||||
return $conn;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the MySql PDO DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
protected function constructPdoDsn(array $params)
|
||||
{
|
||||
$dsn = 'mysql:';
|
||||
if (isset($params['host']) && $params['host'] !== '') {
|
||||
$dsn .= 'host=' . $params['host'] . ';';
|
||||
}
|
||||
if (isset($params['port'])) {
|
||||
$dsn .= 'port=' . $params['port'] . ';';
|
||||
}
|
||||
if (isset($params['dbname'])) {
|
||||
$dsn .= 'dbname=' . $params['dbname'] . ';';
|
||||
}
|
||||
if (isset($params['unix_socket'])) {
|
||||
$dsn .= 'unix_socket=' . $params['unix_socket'] . ';';
|
||||
}
|
||||
if (isset($params['charset'])) {
|
||||
$dsn .= 'charset=' . $params['charset'] . ';';
|
||||
}
|
||||
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'pdo_mysql';
|
||||
}
|
||||
}
|
||||
62
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php
vendored
Normal file
62
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOOracle/Driver.php
vendored
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\PDOOracle;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractOracleDriver;
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
use PDOException;
|
||||
|
||||
/**
|
||||
* PDO Oracle driver.
|
||||
*
|
||||
* WARNING: This driver gives us segfaults in our testsuites on CLOB and other
|
||||
* stuff. PDO Oracle is not maintained by Oracle or anyone in the PHP community,
|
||||
* which leads us to the recommendation to use the "oci8" driver to connect
|
||||
* to Oracle instead.
|
||||
*/
|
||||
class Driver extends AbstractOracleDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
return new PDOConnection(
|
||||
$this->constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
} catch (PDOException $e) {
|
||||
throw DBALException::driverException($this, $e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the Oracle PDO DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
private function constructPdoDsn(array $params)
|
||||
{
|
||||
$dsn = 'oci:dbname=' . $this->getEasyConnectString($params);
|
||||
|
||||
if (isset($params['charset'])) {
|
||||
$dsn .= ';charset=' . $params['charset'];
|
||||
}
|
||||
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'pdo_oracle';
|
||||
}
|
||||
}
|
||||
118
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php
vendored
Normal file
118
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOPgSql/Driver.php
vendored
Normal file
@@ -0,0 +1,118 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\PDOPgSql;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractPostgreSQLDriver;
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
use PDO;
|
||||
use PDOException;
|
||||
use function defined;
|
||||
|
||||
/**
|
||||
* Driver that connects through pdo_pgsql.
|
||||
*/
|
||||
class Driver extends AbstractPostgreSQLDriver
|
||||
{
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
try {
|
||||
$pdo = new PDOConnection(
|
||||
$this->_constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
|
||||
if (defined('PDO::PGSQL_ATTR_DISABLE_PREPARES')
|
||||
&& (! isset($driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES])
|
||||
|| $driverOptions[PDO::PGSQL_ATTR_DISABLE_PREPARES] === true
|
||||
)
|
||||
) {
|
||||
$pdo->setAttribute(PDO::PGSQL_ATTR_DISABLE_PREPARES, true);
|
||||
}
|
||||
|
||||
/* defining client_encoding via SET NAMES to avoid inconsistent DSN support
|
||||
* - the 'client_encoding' connection param only works with postgres >= 9.1
|
||||
* - passing client_encoding via the 'options' param breaks pgbouncer support
|
||||
*/
|
||||
if (isset($params['charset'])) {
|
||||
$pdo->exec('SET NAMES \'' . $params['charset'] . '\'');
|
||||
}
|
||||
|
||||
return $pdo;
|
||||
} catch (PDOException $e) {
|
||||
throw DBALException::driverException($this, $e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the Postgres PDO DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
private function _constructPdoDsn(array $params)
|
||||
{
|
||||
$dsn = 'pgsql:';
|
||||
|
||||
if (isset($params['host']) && $params['host'] !== '') {
|
||||
$dsn .= 'host=' . $params['host'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['port']) && $params['port'] !== '') {
|
||||
$dsn .= 'port=' . $params['port'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['dbname'])) {
|
||||
$dsn .= 'dbname=' . $params['dbname'] . ';';
|
||||
} elseif (isset($params['default_dbname'])) {
|
||||
$dsn .= 'dbname=' . $params['default_dbname'] . ';';
|
||||
} else {
|
||||
// Used for temporary connections to allow operations like dropping the database currently connected to.
|
||||
// Connecting without an explicit database does not work, therefore "postgres" database is used
|
||||
// as it is mostly present in every server setup.
|
||||
$dsn .= 'dbname=postgres;';
|
||||
}
|
||||
|
||||
if (isset($params['sslmode'])) {
|
||||
$dsn .= 'sslmode=' . $params['sslmode'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['sslrootcert'])) {
|
||||
$dsn .= 'sslrootcert=' . $params['sslrootcert'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['sslcert'])) {
|
||||
$dsn .= 'sslcert=' . $params['sslcert'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['sslkey'])) {
|
||||
$dsn .= 'sslkey=' . $params['sslkey'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['sslcrl'])) {
|
||||
$dsn .= 'sslcrl=' . $params['sslcrl'] . ';';
|
||||
}
|
||||
|
||||
if (isset($params['application_name'])) {
|
||||
$dsn .= 'application_name=' . $params['application_name'] . ';';
|
||||
}
|
||||
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'pdo_pgsql';
|
||||
}
|
||||
}
|
||||
83
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php
vendored
Normal file
83
vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOSqlite/Driver.php
vendored
Normal file
@@ -0,0 +1,83 @@
|
||||
<?php
|
||||
|
||||
namespace Doctrine\DBAL\Driver\PDOSqlite;
|
||||
|
||||
use Doctrine\DBAL\DBALException;
|
||||
use Doctrine\DBAL\Driver\AbstractSQLiteDriver;
|
||||
use Doctrine\DBAL\Driver\PDOConnection;
|
||||
use Doctrine\DBAL\Platforms\SqlitePlatform;
|
||||
use PDOException;
|
||||
use function array_merge;
|
||||
|
||||
/**
|
||||
* The PDO Sqlite driver.
|
||||
*/
|
||||
class Driver extends AbstractSQLiteDriver
|
||||
{
|
||||
/** @var mixed[] */
|
||||
protected $_userDefinedFunctions = [
|
||||
'sqrt' => ['callback' => [SqlitePlatform::class, 'udfSqrt'], 'numArgs' => 1],
|
||||
'mod' => ['callback' => [SqlitePlatform::class, 'udfMod'], 'numArgs' => 2],
|
||||
'locate' => ['callback' => [SqlitePlatform::class, 'udfLocate'], 'numArgs' => -1],
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function connect(array $params, $username = null, $password = null, array $driverOptions = [])
|
||||
{
|
||||
if (isset($driverOptions['userDefinedFunctions'])) {
|
||||
$this->_userDefinedFunctions = array_merge(
|
||||
$this->_userDefinedFunctions,
|
||||
$driverOptions['userDefinedFunctions']
|
||||
);
|
||||
unset($driverOptions['userDefinedFunctions']);
|
||||
}
|
||||
|
||||
try {
|
||||
$pdo = new PDOConnection(
|
||||
$this->_constructPdoDsn($params),
|
||||
$username,
|
||||
$password,
|
||||
$driverOptions
|
||||
);
|
||||
} catch (PDOException $ex) {
|
||||
throw DBALException::driverException($this, $ex);
|
||||
}
|
||||
|
||||
foreach ($this->_userDefinedFunctions as $fn => $data) {
|
||||
$pdo->sqliteCreateFunction($fn, $data['callback'], $data['numArgs']);
|
||||
}
|
||||
|
||||
return $pdo;
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructs the Sqlite PDO DSN.
|
||||
*
|
||||
* @param mixed[] $params
|
||||
*
|
||||
* @return string The DSN.
|
||||
*/
|
||||
protected function _constructPdoDsn(array $params)
|
||||
{
|
||||
$dsn = 'sqlite:';
|
||||
if (isset($params['path'])) {
|
||||
$dsn .= $params['path'];
|
||||
} elseif (isset($params['memory'])) {
|
||||
$dsn .= ':memory:';
|
||||
}
|
||||
|
||||
return $dsn;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*
|
||||
* @deprecated
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return 'pdo_sqlite';
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user