rolice/laravel-db-switch

为Laravel提供的简单轻量级数据库切换器。

1.0 2017-03-16 13:29 UTC

This package is not auto-updated.

Last update: 2024-09-14 20:14:50 UTC


README

Composer包,用于Laravel,可实现轻松替换数据库实例。该包非常适合运行相同程序不同副本的类似数据库。

此包在Laravel 5.3、Laravel 5.4和Lumen 5.4下开发和测试。然而,它应该与Laravel的较旧版本兼容,至少与版本5.0兼容。

先决条件

Composer

您需要Composer来设置项目。您很可能会跳过这一点,因为它是Laravel或Lumen项目必需的,但如果您对它不熟悉,您会发现官方Composer网站非常有用。您将找到详细的文档、用例和场景,以及有关下载和安装Composer的完整指令集,包括所有必要的下载文件。

Laravel/Lumen项目

我们假设您已经准备好并安装了您的Laravel或Lumen项目,并且您已经使用控制台/终端应用程序导航到其文件夹。

安装

该包通过Composer的传统方式安装。您可以在Laravel项目的文件夹中执行以下命令来完成此操作

composer require 'rolice/laravel-db-switch' # with globally installed composer

或者如果您没有与项目一起安装全局Composer,只有一个composer.phar文件

php /path/to/composer.phar require 'rolice/laravel-db-switch' # with local composer.phar file

上面的操作应该会直接将包添加到您的项目中。

或者,您可以在composer.json文件的require部分手动添加rolice/laravel-db-switch,然后您可以使用以下命令安装它

composer install

或者再次如果没有全局Composer安装

php /path/to/composer.phar install

注意:在上面的示例中,您必须将/path/to/composer.phar替换为您下载的官方composer.phar副本的实际路径。更多信息可以在上一节中的先决条件部分找到。

在您准备好包安装后,我们必须在应用程序配置中启用服务提供者。

对于Laravel:只需打开应用程序的{your/project/folder}/config/app.php文件(默认情况下应该位于那里)。

providers部分(数组)中添加服务提供者

Rolice\LaravelDbSwitch\DbSwitchServiceProvider::class,

最好放在类似下面的注释下面

/*
 * Package Service Providers...
 */
 Rolice\LaravelDbSwitch\DbSwitchServiceProvider::class,

对于Lumen:您应该在bootstrap/app.php中注册服务提供者

/*
|--------------------------------------------------------------------------
| Register Service Providers
|--------------------------------------------------------------------------
|
| Here we will register all of the application's servipoce providers which
| are used to bind services into the container. Service providers are
| totally optional, so you are not required to uncomment this line.
|
*/
// ...
$app->register(Rolice\LaravelDbSwitch\DbSwitchServiceProvider::class);
// ...

对于Laravel:现在您可以在同一文件config/app.php中名为aliases的部分(数组)中注册外观,如下所示

'DbSwitch' => Rolice\LaravelDbSwitch\Facades\DbSwitch::class,

对于Lumen:您可以使用以下方式启用外观并将它传递

$app->withFacades(true, [
    Rolice\LaravelDbSwitch\Facades\DbSwitch::class => 'DBSwitch'
]);

...或者您也可以直接以相同的方式启用它,但使用原始代码,例如

/*
|--------------------------------------------------------------------------
| Register Facades
|--------------------------------------------------------------------------
|
| A config section for registering facades through class aliases.
|
*/

class_alias(\Rolice\LaravelDbSwitch\Facades\DbSwitch::class, 'DbSwitch');

现在该包应该与您的项目可用并运行。

用法

您可以通过外观DbSwitch或通过Laravel的IoC服务容器中的单例实例来使用包服务

// Usage through the facade - DbSwitch
DbSwitch::to('my-cool-db'); // The defaut connection
DbSwitch::connectionTo('my-cool-conenction', 'my-cool-db'); // A specific connection database

// Usage through the Laravel Service Container (IoC)
app('db.switch')->to('my-cool-db'); // The defaut connection
app('db.switch')->connectionTo('my-cool-conenction', 'my-cool-db'); // A specific connection database

这就是本包的全部功能。

享受切换您的数据库吧! :P