Skip to content

Basttyy/reactphp-orm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Reactphp-ORM

A database ORM for reactphp based on illuminate/database and react/mysql

Project Informations

Code Coverage

Installation

Use php package manager composer to install reactphp-orm.

composer require basttyy/reactphp-orm

Usage

<?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 Features Coverage Map

  • query()
  • get()
  • insert()
  • delete
  • Update
  • 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

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

License

MIT

About

A database ORM for ReactPHP based on illuminate/database and react/mysql packages

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages