定制 ytake/laravel-voltdb 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ytake/laravel-voltdb

Composer 安装命令:

composer require ytake/laravel-voltdb

包简介

VoltDB providers for Laravel

README 文档

README

VoltDB providers for Laravel
License Latest Version Total Downloads Dependency Status

Scrutinizer Code Quality Code Coverage Build Status

##for laravel5 Laravel4 Laravel.VoltDB

#Install required ext-voltdb, ext-curl
Add the package to your composer.json and run composer update.

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

Add the service provider in app/config/app.php:

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

Add the aliases in app/config/app.php:

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

The service provider will register a voltdb database extension
not supported Eloquent, QueryBuilder
(VoltDB supports PHP client application development using VoltDB PHP client library.)

#Configure Add database connection

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

by default .env

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

CACHE_DRIVER=voltdb
SESSION_DRIVER=voltdb

publish

$ php artisan vendor:publish 

#Database Extension ##@AdHoc query

$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);

not supported prepared statement
Recommended stored procedure ##stored procedure

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

#Auth include voltdb auth driver
in config/auth.php:

 'driver' => 'voltdb',

or .env

#Cache include voltdb cache driver
in config/cache.php:

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

#Session include voltdb session driver
in app/config/session.php:

 'driver' => 'voltdb',

Auth, Cache, Session use Stored Procedure(see schema/ddl.sql)

#publish for auth, cache, session ddl.sql

$ php artisan ytake:voltdb-schema-publish

Options:
--publish (-p) Publish to a specific directory
default storage/schema/ddl.sql

###DDL default 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 supported for json interface API

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

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

###Async Stored Procedure see VoltDB.PHPClientWrapper

#Console ytake:voltdb-schema-publish publish DDL for auth, cache driver
ytake:voltdb-info information about ytake/laravel-voltdb
ytake:voltdb-system-catalog renderer system catalog
##voltdb-system-catalog Options:
--component (-c) returns information about the schema of the VoltDB database, depending upon the component keyword you specify. alt text

example
Such as MySQL SHOW COLUMNS

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

alt text

ytake/laravel-voltdb 适用场景与选型建议

ytake/laravel-voltdb 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 37 次下载、GitHub Stars 达 4, 最近一次更新时间为 2014 年 07 月 20 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「database」 「cache」 「session」 「auth」 「laravel」 「voltdb」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 ytake/laravel-voltdb 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 ytake/laravel-voltdb 我们能提供哪些服务?
定制开发 / 二次开发

基于 ytake/laravel-voltdb 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 37
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 4
  • 点击次数: 5
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 4
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-07-20