ytake / laravel-voltdb
VoltDB 提供商用于 Laravel
Requires
- php: >=5.4.0
- ext-curl: *
- illuminate/auth: 5.*
- illuminate/cache: 5.*
- illuminate/config: 5.*
- illuminate/console: 5.*
- illuminate/container: 5.*
- illuminate/contracts: 5.*
- illuminate/database: 5.*
- illuminate/encryption: 5.*
- illuminate/events: 5.*
- illuminate/filesystem: 5.*
- illuminate/hashing: 5.*
- illuminate/http: 5.*
- illuminate/session: 5.*
- illuminate/support: 5.*
- ytake/voltdb-client-wrapper: 0.*
Requires (Dev)
- mockery/mockery: 0.*
- phpunit/phpunit: 4.*
- satooshi/php-coveralls: dev-master
- symfony/console: 2.*
- symfony/framework-bundle: 2.*
Suggests
- ext-voltdb: for AuthDriver, SessionDriver, CacheDriver. use extension https://github.com/VoltDB/voltdb-client-php/tree/native
This package is auto-updated.
Last update: 2024-09-04 23:12:37 UTC
README
##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 数据库架构的信息,具体取决于您指定的组件关键字。
示例
例如 MySQL SHOW COLUMNS
$ php artisan ytake:voltdb-system-catalog -c COLUMNS