<?php declare(strict_types=1); /** * CakePHP(tm) : Rapid Development Framework (https://cakephp.org) * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * * Licensed under The MIT License * For full copyright and license information, please see the LICENSE.txt * Redistributions of files must retain the above copyright notice. * * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org) * @link https://cakephp.org CakePHP(tm) Project * @since 4.0.0 * @license https://opensource.org/licenses/mit-license.php MIT License */ namespace Cake\Database\Schema; /** * Represents a database schema collection * * Used to access information about the tables, * and other data in a database. * * @method array<string> listTablesWithoutViews() Get the list of tables available in the current connection. * This will exclude any views in the schema. */ interface CollectionInterface { /** * Get the list of tables available in the current connection. * * @return array<string> The list of tables in the connected database/schema. */ public function listTables(): array; /** * Get the column metadata for a table. * * Caching will be applied if `cacheMetadata` key is present in the Connection * configuration options. Defaults to _cake_model_ when true. * * ### Options * * - `forceRefresh` - Set to true to force rebuilding the cached metadata. * Defaults to false. * * @param string $name The name of the table to describe. * @param array<string, mixed> $options The options to use, see above. * @return \Cake\Database\Schema\TableSchemaInterface Object with column metadata. * @throws \Cake\Database\Exception\DatabaseException when table cannot be described. */ public function describe(string $name, array $options = []): TableSchemaInterface; }