cakephparangodb / arangodb
基于ArangoDb的模型和查询构建器,适用于Cakephp 3.x
Requires
- php: >=5.6.0
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);
这里有大量的示例,我们很快将更新。