Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mhthnz/yii2-tarantool
Tarantool connector for yii2 framework. Allows to use activerecord, schemas, widgets and more.
https://github.com/mhthnz/yii2-tarantool
nosql php sql tarantool yii2 yii2-extension
Last synced: about 1 month ago
JSON representation
Tarantool connector for yii2 framework. Allows to use activerecord, schemas, widgets and more.
- Host: GitHub
- URL: https://github.com/mhthnz/yii2-tarantool
- Owner: mhthnz
- License: gpl-3.0
- Created: 2021-09-03T17:01:43.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2023-11-26T13:15:43.000Z (12 months ago)
- Last Synced: 2024-09-30T23:49:22.643Z (about 1 month ago)
- Topics: nosql, php, sql, tarantool, yii2, yii2-extension
- Language: PHP
- Homepage:
- Size: 300 KB
- Stars: 14
- Watchers: 3
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
Tarantool connector for yii2 framework
[![Latest Stable Version](http://poser.pugx.org/mhthnz/yii2-tarantool/v)](https://github.com/mhthnz/yii2-tarantool/releases/latest)
[![Latest Unstable Version](http://poser.pugx.org/mhthnz/yii2-tarantool/v/unstable)](https://packagist.org/packages/mhthnz/yii2-tarantool#dev-master)
![Master Branch Tests](https://github.com/mhthnz/yii2-tarantool/actions/workflows/php.yml/badge.svg?branch=master)
![Score](https://scrutinizer-ci.com/g/mhthnz/yii2-tarantool/badges/quality-score.png?b=master)
![Coverage](https://scrutinizer-ci.com/g/mhthnz/yii2-tarantool/badges/coverage.png?b=master)[Tarantool](https://www.tarantool.io/en/doc/latest/) connector for yii2 framework. Allows to perform SQL and NoSQL queries, framework abstractions such as ActiveRecord, Schema, TableSchema, Query, ActiveQuery and etc using tarantool database.
Documentation is here: [docs/README.md](docs/README.md)
Check out yii2 basic tarantool application: [https://github.com/mhthnz/yii2-basic-tarantool-app](https://github.com/mhthnz/yii2-basic-tarantool-app)
Reqirements
------------![Packagist PHP Version Support](https://img.shields.io/packagist/php-v/mhthnz/yii2-tarantool)
![Tarantool version](https://img.shields.io/badge/tarantool-%3E%3D%202.4.1%20&&%20%3C=%202.10.8-blue)
![Yii2 version](https://img.shields.io/badge/yii2-%3E%3D%202.0.35-blue)If you are using php **7.1**, try [1.0.6 version](https://github.com/mhthnz/yii2-tarantool/releases/tag/v1.0.6). Any later versions require php **7.2**.
Installation
------------The preferred way to install this extension is through [composer](http://getcomposer.org/download/).
Either run
```
php composer.phar require --prefer-dist mhthnz/yii2-tarantool "*"
```or add
```
"mhthnz/yii2-tarantool": "*"
```to the require section of your `composer.json` file.
Configuration
------------
* [Dsn options](https://github.com/tarantool-php/client#dsn-string)
```php
return [
'bootstrap' => ['debug'],
'components' => [
// Tarantool connection setup
'tarantool' => [
'class' => \mhthnz\tarantool\Connection::class,
'dsn' => 'tcp://username:password@localhost:3301/?connect_timeout=5&max_retries=3',
],
],
'modules' => [
//Debug panel setup
'debug' => [
'class' => 'yii\debug\Module',
'panels' => [
'tarantool' => [
'class' => \mhthnz\tarantool\debug\TarantoolPanel::class,
'db' => 'tarantool', // Tarantool component id
],
],
'allowedIPs' => ['127.0.0.1', '::1'],
],
],
];
```Features
------------
* Tarantool [`Connection`](docs/CONNECTION.md) has `Command` and `QueryBuilder`
* `ActiveRecord` models with `ActiveQuery` support
* `Schema` abstraction, `TableSchema` and `ColumnSchema`
* Compatible with AR validators `UniqueValidator`, `ExistsValidator`
* Supports data widgets like `DetailView`, `ListView`, `GridView` using `ActiveDataProvider`
* Debug panel with explain is able to show SQL and NoSQL requests.
* [Migrations](docs/MIGRATIONS.md)
* Nosql [`Query`](docs/NOSQL.md#query) and [`Command`](docs/NOSQL.md#command) [for performing nosql requests](docs/NOSQL.md)
* [Lua validator](docs/LUA-VALIDATOR.md)
* [Rbac db source](docs/RBAC.md)
* [Session](docs/SESSION.md)
* [Cache](docs/CACHE-EXPIRATIOND.md) (by [expirationd](https://github.com/tarantool/expirationd), [docs](https://tarantool.github.io/expirationd/))
* [I18n translate source](docs/I18N.md)
* [Gii code generator](docs/GII.md) (ActiveRecord models, controllers, search models)
* [Log target](docs/LOG.md)Future plans
------------* Transactions
* Connection slaves support
* QueueRunning tests
------------* First of all you need to run tarantool and bind it to localhost:3301
```bash
$ docker run --name mytarantool -p3301:3301 -d tarantool/tarantool:2.4.1
```
* Install php deps
```bash
$ sudo apt install php7.3-mbstring php7.3-dom php7.3-intl # specify php version
```* Install vendor
```bash
$ php composer install$ php7.3 composer.phar install # or specify php version
```* Run phpunit tests
```bash
$ php ./vendor/phpunit/phpunit/phpunit --bootstrap ./tests/_bootstrap.php --configuration ./phpunit.xml.dist
```