robclancy/schema-builder

该软件包的最新版本(dev-master)没有可用的许可证信息。

从 illuminate/database 分支出来,仅使用架构构建器。

dev-master / 1.0.x-dev 2013-04-13 03:23 UTC

This package is auto-updated.

Last update: 2024-09-22 04:12:48 UTC


README

这是 http://github.com/robclancy/schema-builder/blob/HEAD/illuminate/database 的一个端口,以提供没有所有额外功能的架构构建器。

Build Status

这个想法是在已经使用 PDO 的数据库层的项目中使用架构构建器。

您只需要一个 PDO 实例。如果您手动创建它,可以考虑使用 http://github.com/robclancy/db-connector,它也是 http://github.com/robclancy/schema-builder/blob/HEAD/illuminate/database 的一个分支,但仅用于连接数据库。使用您的 PDO 实例,创建一个 Robbo\SchemaBuilder\Connection 实例,然后调用 ->getSchemaBuilder() 开始。然后,您可以使用 [http://four.laravel.com/docs/schema](Laravel) 文档中描述的构建器,但是用您的实例替换 Schema::

安装

将以下内容添加到您的 composer.json 文件的 "require" 部分

	"robclancy/schema-builder": "1.0.x"

本地示例

以下示例将假设您有一个存储在 $pdo 中的 PDO 实例。

// Create the connection
$connection = new Robbo\SchemaBuilder\Connection\MySqlConnection($pdo, 'database_name', 'tableprefix_');

// Alternatively you can use a factory method to create an instance depending on the driver
// Drivers supported: mysql, pgsql, sqlite and sqlsrv
$connection = Robbo\SchemaBuilder\Connection::create('mysql', $pdo, 'database_name', 'tableprefix_')

$builder = $connection->getSchemaBuilder();

// Now you can use it like in the laravel docs...
$builder->create('users', function($table)
{
    $table->increments('id');
});

也支持使用 illuminate/database 的功能进行干燥运行。使用方法如下...

// $builder and $connection is the same from above

$queries = $connection->pretend(function($connection) use ($builder)
{
	// Could use $connection->getSchemaBuilder() here in place of $builder
	$builder->create('users', function($table)
	{
	    $table->increments('id');
	});
});

// Now $queries will contain all queries that were created