ytake/laravel-voltdb

VoltDB 提供商用于 Laravel

资助包维护!
ytake

1.0.1 2015-02-04 15:22 UTC

This package is auto-updated.

Last update: 2024-09-04 23:12:37 UTC


README

VoltDB 提供商用于 Laravel
License Latest Version Total Downloads Dependency Status

Scrutinizer Code Quality Code Coverage Build Status

##for laravel5 Laravel4 Laravel.VoltDB

#安装 必需的 ext-voltdb, ext-curl
将包添加到您的 composer.json 并运行 composer update。

"require": {
    "php": ">=5.4.0",
    "ytake/laravel-voltdb": "1.*"
},

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

'providers' => [
    'Ytake\LaravelVoltDB\VoltDBServiceProvider',
];

在 app/config/app.php 中添加别名

'aliases' => [
    'VoltDBApi' => 'Ytake\LaravelVoltDB\VoltDBFacade',
];

服务提供者将注册 voltdb 数据库扩展
不支持 Eloquent, QueryBuilder
(VoltDB 支持使用 VoltDB PHP 客户端库进行 PHP 客户端应用程序开发。)

#配置 添加数据库连接

'voltdb' => [
    'driver' => 'voltdb',
    'host' => 'localhost',
    'username' => '',
    'password' => '',
    'port' => 21212
],

默认为 .env

DB_HOST=localhost
DB_DATABASE=voltdb
DB_USERNAME=username
DB_PASSWORD=secret

CACHE_DRIVER=voltdb
SESSION_DRIVER=voltdb

发布

$ php artisan vendor:publish 

#数据库扩展 ##@AdHoc 查询

$sql = "INSERT INTO users (user_id, username, password, remember_token, created_at)"
    ." VALUES (" . rand() . ", 'voltdb', '" . $pass . "', null, '" . date("Y-m-d H:i:s") . "')";
\DB::connection('voltdb')->exec($sql);
$sql = "SELECT * FROM users";
\DB::connection('voltdb')->select($sql);

不支持预编译语句
推荐存储过程 ##存储过程

\DB::connection('voltdb')->procedure('Auth_findUser', [1]);

#认证 包含 voltdb 认证驱动程序
config/auth.php

 'driver' => 'voltdb',

或 .env

#缓存 包含 voltdb 缓存驱动程序
config/cache.php

'driver' => 'voltdb',
'voltdb' => [
  'driver' => 'voltdb',
],

#会话 包含 voltdb 会话驱动程序
app/config/session.php

 'driver' => 'voltdb',

认证、缓存、会话使用存储过程(参见 schema/ddl.sql)

#发布认证、缓存、会话 ddl.sql

$ php artisan ytake:voltdb-schema-publish

选项
--发布 (-p) 发布到特定目录
默认存储/schema/ddl.sql

###DDL 默认 ddl

CREATE TABLE users (
   user_id INTEGER UNIQUE NOT NULL,
   username VARCHAR(40) NOT NULL,
   password VARCHAR(64) NOT NULL,
   remember_token VARCHAR(128) DEFAULT NULL,
   created_at TIMESTAMP NOT NULL,
   PRIMARY KEY(user_id)
);
CREATE INDEX UsersIndex ON users (username, password, remember_token);
CREATE TABLE caches (
  key VARCHAR(255) UNIQUE NOT NULL,
  value VARCHAR(262144),
  expiration INTEGER DEFAULT 0 NOT NULL,
  CONSTRAINT PK_cache PRIMARY KEY (key)
);
CREATE INDEX IX_cache_expires ON cache (expiration);
CREATE TABLE sessions (
  id VARCHAR(255) UNIQUE NOT NULL,
  payload VARCHAR(65535),
  last_activity INTEGER DEFAULT 0 NOT NULL
);
CREATE INDEX IX_session_id ON sessions (id);
CREATE INDEX IX_activity ON sessions (last_activity);

#Facades 支持用于 json 接口 API

// call stored procedure @SystemInformation
\VoltDBApi::request()->info()->getResult();

// basic
\VoltDBApi::request()->post([
    'Procedure' => 'addUser',
    'Parameters' => [1, "voltdb"]
])->getResult();

###异步存储过程参见 VoltDB.PHPClientWrapper

#控制台 ytake:voltdb-schema-publish 发布认证、缓存驱动程序的 DDL
ytake:voltdb-info 关于 ytake/laravel-voltdb 的信息
ytake:voltdb-system-catalog 渲染系统目录
##voltdb-system-catalog 选项:
--组件 (-c) 返回关于 VoltDB 数据库架构的信息,具体取决于您指定的组件关键字。 alt text

示例
例如 MySQL SHOW COLUMNS

$ php artisan ytake:voltdb-system-catalog -c COLUMNS

alt text