基于ArangoDb的模型和查询构建器,适用于Cakephp 3.x

dev-master 2018-09-28 04:29 UTC

This package is not auto-updated.

Last update: 2024-09-29 06:20:11 UTC


README



##### 目录表

描述

这是arangodb-php库的cakephp版本。该cakephp客户端允许您轻松地将模型转换为ArangoDb支持的模型。cakephp arangodb客户端还允许您使用类似于cake核心功能的cakephp find、save、delete、update和连接等。


要求

  • Cakephp版本3.0或更高

  • ArangoDB数据库服务器版本3.0或更高。

  • PHP版本5.6或更高

关于PHP版本支持的说明


安装Cakephp arangodb客户端

要开始,您需要PHP 5.6或更高版本以及运行在任何您能访问的主机上的ArangoDB服务器。

有两种获取Cakephp ArangoDb客户端的替代方法

  • 使用Composer
  • 克隆git仓库

替代方案1:使用Composer

composer require cakephparangodb/arangodb

注意:如果出现错误,请将minimum-stability和prefer-stable添加到您的composer.json中

示例

{
    "minimum-stability": "dev",
    "prefer-stable": true
}

替代方案2:克隆git仓库

您需要安装git客户端。要克隆此GitHub仓库,请在项目目录中执行以下命令

git clone "https://github.com/shubham715/Cakephp-ArangoDb-Package.git"

这将在您的当前目录中创建一个名为arangodb-php的子目录。它包含客户端库的所有文件。它还包括一个专门的自动加载器,您可以使用它来自动加载客户端库的类文件。要调用此自动加载器,请将以下行添加到将使用库的PHP文件中

替代方案3:直接调用自动加载器

如果您不想包含autoload.php来加载和设置自动加载器,您可以直接调用自动加载器

require 'cakephparangodb/lib/ArangoDBClient/autoloader.php';
\ArangoDBClient\Autoloader::init();

如何使用CAKEPHP客户端

设置连接选项

为了使用Cakephp ArangoDB,您需要指定连接选项。目前它仅从客户端的核心文件中提供,在未来的更新中我们将添加从app.php中更改数据库配置的功能。

目前,您需要打开您的项目目录中的project/vendor/cakephparangodb/arangodb/lib/ArangoDBClient/Connect.php,并根据您的数据库配置更改$_options中的数据库配置。

将Cakephp模型转换为ArangoDb支持的模型。将您的cakephp模型更改为以下示例

例如,我正在更改UsersTable模型。

<?php
namespace App\Model\Table;

use ArangoDBClient\Connect;

class UsersTable extends \ArangoDBClient\Eloquent\Model
{

}
?>

就是这样。现在,您可以通过使用loadModel在控制器中加载模型,并像以下示例那样将arangodb的用户表用于控制器

##以下是一些如何在控制器中使用模型的示例

##使用Find查询

使用Find

$data = $this->Users->find('all');

使用条件Find

$data = $this->Users->find('all',['conditions'=>['name'=>'test','email'=>'test@gmail.com']]);

使用findById()

$data = $this->Users->findById(10);

使用带有选择Find

$data = $this->Users->find('all',['select'=>['name','email','status']]);

使用FindOne

$data = $this->Users->findOne('all',['conditions'=>['email'=> $email]]);

带有选择、排序、限制的高级find

$data = $this->Users->find('all',['select'=>['name','email','status']]);
$data = $this->Users->find('all', ['conditions'=>['email'=>'test@gmail.com'],'order'=>['paydate'=> 'ASC'],'select'=>['name','email','status']]);

使用isUnique

$data = $this->Users->isUnique(['conditions'=>['email'=> $email]]);

使用Count

$data = $this->Users->count(['conditions'=>['email'=> $email]]);

##更新

使用updateById

$data = $this->Users->updateById(['email'=> $email],['id'=> 1]);

使用updateAll

$data = $this->Users->updateAll(['email'=> $email],['id'=> 1]);

##删除

deleteById

使用deleteById

$data = $this->Users->deleteById(1);

deleteAll

使用deleteAll

$data = $this->Users->deleteAll(['email'=> $email]);

使用createOrUpdate()

$data = $this->Users->createOrUpdate(['email'=> $email,'id'=> 10]);

连接

$data = $this->Users->findWithJoin('all',['contain'=> 'userdetails', 'conditions'=>['c.userid'=> 'u.id']]);
//Here c is refer for base table and u is for join table.

##保存数据

$data = ['name'=>'shubham715', email'=> 'shubhamsharma715@gmail.com', 'status'=> 1];
$saveData = $this->Users->save($financeEntity);

这里有大量的示例,我们很快将更新。