前言
如果前面的步骤你已经完成了,那么在这个PHP项目中,你已经安装了LeanCloud的SDK,这篇文章将开始编写PHP的代码
拓展检查
在编写代码之前,需要检查一些拓展是否启用,编辑php的配置文件,如果你不知道配置文件的位置,先执行这个命令
Windows
php -i | findstr php.ini
Linux
php -i | grep php.ini
其中有个Loaded Configuration File
,后面的路径就是配置文件,编辑这个文件,向下翻可以找到很多extension开头的行
将curl取消注释,Windows系统中还需要将openssl取消注释
创建文件
在项目中创建一个php文件,可以命名为main.php
或index.php
,这里我命名为main.php
,在文件中加入基本标志
<?php
接下来让composer装的包能够自动加载
include "vendor/autoload.php";
初始化客户端
使用LeanCloud的SDK之前,需要先初始化LeanCloud的客户端
use \LeanCloud\Client;
Client::initialize("AppID","AppKey","MasterKey");
其中initialize
中的3个值需要在LeanCloud后台的应用凭证中查看
查询评论
use \LeanCloud\Query;
$query = new Query("Comment");
$result = $query->find();
var_dump($result);
这段代码执行后将会输出Comment这个表中的全部数据,我实际测试中遇到了一个情况
会出现一个错误,提示说SSL证书验证错误,解决这个问题,最简单的方式就是禁用SSL验证,编辑文件vendor/leancloud/leancloud- sdk/src/LeanCloud/Client.php
,在文件中搜索CURLOPT_SSL_VERIFYPEER
,可以找到这样的代码
将CURLOPT_SSL_VERIFYPEER
后面的true
改成false
即可禁用SSL检查,接下来再次运行代码,就可以看到查询到的数据
可以看出,一个数组中装了很多个对象,但是这个对象不能通过基本的操作进行读取,而且如果直接将这个数据转成JSON字符串,将会丢失所有数据,那么我们需要对其遍历,做成一个新的数组
$data = [];
foreach ($result as $item) {
$data[] = [
"id" => $item->getObjectId(),
"nickname" => $item->get("nick"),
"updateAt" => $item->getUpdatedAt()->format('Y-m-d H:i:s'),
"mail" => $item->get("mail"),
"createdAt" => $item->getCreatedAt()->format('Y-m-d H:i:s'),
"link" => $item->get("link"),
"comment" => str_replace(["<", ">"], ["<", ">"], $item->get("comment")),
"url" => $item->get("url")
];
}
echo json_encode($data);
完整代码
<?php
include "vendor/autoload.php";
use \LeanCloud\Client;
use \LeanCloud\Query;
Client::initialize("AppID","AppKey","MasterKey");
$query = new Query("Comment");
$result = $query->find();
$data = [];
foreach ($result as $item) {
$data[] = [
"id" => $item->getObjectId(),
"nickname" => $item->get("nick"),
"updateAt" => $item->getUpdatedAt()->format('Y-m-d H:i:s'),
"mail" => $item->get("mail"),
"createdAt" => $item->getCreatedAt()->format('Y-m-d H:i:s'),
"link" => $item->get("link"),
"comment" => str_replace(["<", ">"], ["<", ">"], $item->get("comment")),
"url" => $item->get("url")
];
}
echo json_encode($data);
插入评论
插入数据的操作相对比较简单,只需要创建数据对象,填入数据,保存数据即可;首先创建数据对象
use \LeanCloud\LeanObject;
$comment = new LeanObject("Comment");
创建完对象后,通过set方法将数据填入对象中
$comment->set("comment","评论内容");
数据填完后,调用save方法将数据保存到数据库中
$comment->save();
保存时可能会出现错误,那么就需要捕获异常
try {
$comment->save();
} catch (CloudException $e) {
echo $e->getMessage();
}
完整代码
<?php
include "vendor/autoload.php";
use \LeanCloud\Client;
use \LeanCloud\CloudException;
use \LeanCloud\LeanObject;
Client::initialize("AppID","AppKey","MasterKey");
$comment = new LeanObject("Comment");
$comment->set("comment","评论内容");
$comment->set("ip","127.0.0.1");
$comment->set("link","https://schhz.cn");
$comment->set("mail","schlibra@163.com");
$comment->set("nick","schlibra");
$comment->set("ua",$_SERVER["HTTP_USER_AGENT"]);
try {
$comment->save();
} catch (CloudException $e) {
echo $e->getMessage();
}
执行完后,进入后台,会发现数据已经插入数据库了
删除评论
删除数据的代码是少之又少,只需要两步即可完成;首先创建数据对象,第一个参数为数据表的名称,第二个参数为数据的ID
$comment = LeanObject::create("Comment","objectID");
创建好数据对象后,只需要对其执行destory方法即可销毁数据
$comment->destroy();
销毁操作可能会出现错误,需要捕获异常
try {
$comment->destroy();
} catch (CloudException $e) {
echo $e->getMessage();
}
完整代码
<?php
include "vendor/autoload.php";
use \LeanCloud\Client;
use \LeanCloud\LeanObject;
use \LeanCloud\CloudException;
Client::initialize("AppID","AppKey","MasterKey");
$comment = LeanObject::create("Comment","objectID");
try {
$comment->destroy();
} catch (CloudException $e) {
echo $e->getMessage();
}
执行这段代码后,进入后台会发现刚才创建的数据已经被删除了
修改评论
修改数据的代码和新建数据的代码非常类似,首先创建一个数据对象,第一个参数为数据表的名称,第二个参数为数据的ID
$comment = LeanObject::create("Comment","objectID");
创建完后,通过set方法修改需要改的值,例如我要修改评论内容
$comment->set("comment","修改后的评论内容");
修改完后,通过save方法将数据保存到数据库
$comment->save();
保存操作可能会出现错误,需要捕获异常
try {
$comment->save();
} catch (CloudException $e) {
echo $e->getMessage();
}
完整代码
<?php
include "vendor/autoload.php";
use \LeanCloud\Client;
use \LeanCloud\LeanObject;
use \LeanCloud\CloudException;
Client::initialize("AppID","AppKey","MasterKey");
$comment = LeanObject::create("Comment","objectID");
$comment->set("comment","修改后的评论内容");
try {
$comment->save();
} catch (CloudException $e) {
echo $e->getMessage();
}
执行这段代码后,可以发现后台的数据被修改了;如果这条数据是由valine创建的,那么可能会被默认设为只读,将不能通过这个方法修改,需要删除数据重新添加。
结尾
这篇文章到这里就结束了,感谢耐心阅读,如果遇到问题可以在下方评论区中讨论。
评论区