classes/Schema.md

Schema

Overview:

Schema provides database schema introspection, allowing agents and application code to discover table structures, column types, and keys at runtime without reading source code.

Key behavior:

Public API:

Example:

// Describe a table directly
$columns = Schema::describe('users');
// [
//   ['name' => 'id', 'type' => 'integer', 'nullable' => false, 'default' => null, 'key' => 'PRI'],
//   ['name' => 'email', 'type' => 'text', 'nullable' => true, 'default' => null, 'key' => ''],
// ]

// List all tables
$tables = Schema::tables();
// ['users', 'posts', 'comments']

// Via a Model subclass
class User extends Model {
    public $id, $name, $email;
}
User::persistOn('users');

$fields = User::fields();
// ['id', 'name', 'email']

$schema = User::schema();
// Full column descriptors