basttyy/reactphp-orm

基于 illuminate/database 和 react/mysql 包的 ReactPHP 数据库 OMR

v0.1.1 2022-09-27 13:12 UTC

README

基于 illuminate/databasereact/mysql 的 reactphp 数据库 ORM

项目信息

Code Coverage

安装

使用 PHP 包管理器 composer 安装 reactphp-orm。

composer require basttyy/reactphp-orm

用法

<?php
//import
require './vendor/autoload.php';

use Basttyy\ReactphpOrm\QueryBuilderWrapper;
use Basttyy\ReactphpOrm\QueryBuilder;
use React\MySQL\Factory;
use React\MySQL\QueryResult;

#create react/mysql factory
$factory = new Factory();

#create querybuilder connection object
$connection = (new QueryBuilderWrapper($factory))->createLazyConnection('root:123456789@localhost/react-database');

#run an insert query
$values = [
    'username' => 'johndoe',
    'firstname' => 'john',
    'lastname' => 'doe',
    'email' => 'johndoe@mail.com'
];

$connection->from('users')->insert($values)->then(
    function (bool $status) {
        echo "inserted successfully ".PHP_EOL;
    },
    function (Exception $ex) {
        echo $ex->getMessage().PHP_EOL;
    }
);

#run a select where query
$connection->from('users')->where('status', 'active')->query()->then(
    function (QueryResult $command) {
        print_r($command->resultRows);
        echo count($command->resultRows) . ' row(s) in set' . PHP_EOL;
    },
    function (Exception $error) {
        echo 'Error: ' . $error->getMessage() . PHP_EOL;
    }
);

#run a get query
$connection->from('users')->where('status', 'active')->get()->then(
    function(Collection $data) {
        print_r($data->all());
        echo $data->count() . ' row(s) in set' . PHP_EOL;
    },
    function (Exception $error) {
        echo 'Error: ' . $error->getMessage() . PHP_EOL;
    }
);

查询功能覆盖图

  • query()
  • get()
  • insert()
  • delete
  • 更新
  • first()
  • find()
  • count
  • exists
  • InsertOrIgnore
  • InsertUsing
  • UpdateOrInsert
  • UpdateFrom
  • Upsert
  • pluck
  • doesntexist
  • existsor
  • doesntexistor
  • Increment
  • decrement
  • lock
  • lockforupdate
  • findor
  • value
  • paginate
  • simplepaginate
  • cursopaginate
  • getcountforpagination
  • getpaginationcountquery
  • cursor
  • min
  • max
  • sum
  • avg
  • average
  • aggregate
  • numericaggregate
  • truncate
  • newQuery
  • forSubQuery
  • getProcessor
  • useWritePDO
  • clone
  • cloneWithout
  • cloneWithoutBindings

贡献

欢迎 Pull requests。对于重大更改,请先创建一个 issue 来讨论您想更改的内容。

请确保根据需要更新测试。

许可

MIT