dbyzero/laravel-cassandra

基于 Cassandra 的 Eloquent 模型和查询构建器,适用于 Laravel (Casloquent)

dev-master 2017-09-20 14:32 UTC

This package is not auto-updated.

Last update: 2024-09-29 03:25:57 UTC


README

Build Status Scrutinizer Code Quality Donate

基于 Cassandra 的 Eloquent 模型和查询构建器,适用于 Laravel (Casloquent)

警告:这是一个正在进行中的作品... 目前尚未准备好使用。

安装

Laravel 版本兼容性

请确保您已安装 Cassandra PHP 驱动程序(版本 1.2+)。更多信息请参阅 http://datastax.github.io/php-driver/

使用 composer 安装

composer require fuitad/laravel-cassandra

并在 config/app.php 中添加服务提供者

fuitad\LaravelCassandra\CassandraServiceProvider::class,

(尚未在 Lumen 上测试... TODO)

服务提供者将注册一个与原始数据库管理器一起使用的 Cassandra 数据库扩展。无需注册额外的外观或对象。当使用 Cassandra 连接时,Laravel 会自动为您提供相应的 Cassandra 对象。

对于 Laravel 之外的使用,请查看 Capsule 管理器 并添加

$capsule->getDatabaseManager()->extend('cassandra', function($config)
{
    return new fuitad\LaravelCassandra\Connection($config);
});

配置

config/database.php 中更改默认数据库连接名称

'default' => env('DB_CONNECTION', 'cassandra'),

并添加一个新的 Cassandra 连接

'cassandra' => [
    'driver'   => 'cassandra',
    'host'     => env('DB_HOST', 'localhost'),
    'port'     => env('DB_PORT', 9142),
    'keyspace' => env('DB_DATABASE'),
    'username' => env('DB_USERNAME'),
    'password' => env('DB_PASSWORD'),
],

您可以使用以下配置连接到多个服务器

'cassandra' => [
    'driver'   => 'cassandra',
    'host'     => ['server1', 'server2'],
    'port'     => env('DB_PORT', 9142),
    'keyspace' => env('DB_DATABASE'),
    'username' => env('DB_USERNAME'),
    'password' => env('DB_PASSWORD'),
],

Eloquent

TODO

查询构建器

数据库驱动程序直接集成到原始查询构建器。当使用 Cassandra 连接时,您将能够构建流畅的查询以执行数据库操作。

$users = DB::table('users')->get();

$user = DB::table('users')->where('name', 'John')->first();

如果您未更改默认数据库连接,则在查询时需要指定它。

$user = DB::connection('cassandra')->table('users')->get();

有关查询构建器的更多信息,请参阅 https://laravel.net.cn/docs/queries

鸣谢

此包背后的很多逻辑都借鉴了优秀的 Laravel-MongoDB 包。