mkorkmaz / soupmix
This package is abandoned and no longer maintained.
The author suggests using the soupmix/base package instead.
Simple PHP database adapters to handle low level CRUD operations.
0.2.15
2016-05-14 07:47 UTC
Requires
- php: >=5.5
- elasticsearch/elasticsearch: ~2.0
- mongodb/mongodb: ^1.0.2
README
Simple PHP low level database adapters collection to handle CRUD operations. This library does not provide any ORM or ODM.
Adapters
- MongoDB: Exists
- Elasticsearch: Exists
- Couchbase: Planned
- MySQL: Planned
- PostgreSQL: Planned
Installation
It's recommended that you use Composer to install Soupmix.
$ composer require --prefer-dist mkorkmaz/soupmix "*"
This will install Soupmix and all required dependencies. Soupmix requires PHP 5.4.0 or newer, mongodb extension: 1.1.0 or newer, mongo-php-library library or newer form MongoDB, elasticsearch-php library or newer for Elasticsearch
Documentation
API Documentation: See details about the db adapters functions:
Usage
// Connect to MongoDB Service
$adapter_config = [];
$adapter_config['db_name'] ='db_name';
$adapter_config['connection_string']="mongodb://127.0.0.1";
$adapter_config['options'] =[];
$m=new Soupmix\Adapters\MongoDB($adapter_config);
// Connect to Elasticsearch Service
$adapter_config = [];
$adapter_config['db_name'] = 'indexname';
$adapter_config['hosts'] = ["127.0.0.1:9200"];
$adapter_config['options'] = [];
$e=new Soupmix\Adapters\ElasticSearch($adapter_config);
$docs = [];
$docs[] = [
"full_name" => "John Doe",
"age" => 33,
"email" => "johndoe@domain.com",
"siblings"=> [
"male"=> [
"count"=> 1,
"names"=> ["Jack"]
],
"female"=> [
"count" => 1,
"names" =>["Jane"]
]
]
];
$docs[] = [
"full_name" => "Jack Doe",
"age" => 38,
"email" => "jackdoe@domain.com",
"siblings"=> [
"male"=> [
"count"=> 1,
"names"=> ["John"]
],
"female"=> [
"count" => 1,
"names" =>["Jane"]
]
]
];
$docs[] = [
"full_name" => "Jane Doe",
"age" => 29,
"email" => "janedoe@domain.com",
"siblings"=> [
"male"=> [
"count"=> 2,
"names"=> ["Jack","John"]
],
"female"=> [
"count" => 0,
"names" =>[]
]
]
];
foreach($docs as $doc){
// insert user into database
$mongo_user_id = $m->insert("users",$doc);
$es_user_id = $e->insert("users",$doc);
}
// get user data using id
$es_user_data = $e->get('users', "AVPHZO1DY8UxeHDGBhPT");
$filter = ['age_gte'=>0];
// update users' data that has criteria encoded in $filter
$set = ['is_active'=>1,'is_deleted'=>0];
$e->update("users",$)
$filter = ["siblings.male.count__gte"=>2];
//delete users that has criteria encoded in $filter
$e->delete('users', $filter);
// user's age lower_than_and_equal to 34 or greater_than_and_equal 36 but not 38
$filter=[['age__lte'=>34,'age__gte'=>36],"age__not"=>38];
//find users that has criteria encoded in $filter
$docs = $e->find("users", $filter);
Contribute
- Open issue if found bugs or sent pull request.
- Feel free to ask if you have any questions.