mkorkmaz/soupmix

该软件包已被放弃,不再维护。作者建议使用soupmix/base软件包。

简单的PHP数据库适配器,用于处理底层CRUD操作。

0.2.15 2016-05-14 07:47 UTC

This package is auto-updated.

Last update: 2022-02-01 12:57:07 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality

简单的PHP低级数据库适配器集合,用于处理CRUD操作。此库不提供任何ORM或ODM。

适配器

  • MongoDB:存在
  • Elasticsearch:存在
  • Couchbase:计划中
  • MySQL:计划中
  • PostgreSQL:计划中

安装

建议您使用Composer安装Soupmix。

$ composer require  --prefer-dist mkorkmaz/soupmix "*"

这将安装Soupmix及其所有依赖项。Soupmix需要PHP 5.4.0或更高版本,mongodb扩展:1.1.0或更高版本,MongoDB的mongo-php-library库或更高版本,Elasticsearch的elasticsearch-php库或更高版本

文档

API 文档:查看数据库适配器函数的详细信息

使用

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


贡献

  • 如果发现错误,请提交问题或发送pull请求。
  • 如果您有任何问题,请随时提问。