前言
如果前面的步骤你已经完成了,那么在这个PHP项目中,你已经安装了LeanCloud的SDK,这篇文章将开始编写PHP的代码
拓展检查
在编写代码之前,需要检查一些拓展是否启用,编辑php的配置文件,如果你不知道配置文件的位置,先执行这个命令
Windows
1
| php -i | findstr php.ini
|
Linux

其中有个Loaded Configuration File,后面的路径就是配置文件,编辑这个文件,向下翻可以找到很多extension开头的行

将curl取消注释,Windows系统中还需要将openssl取消注释
创建文件
在项目中创建一个php文件,可以命名为main.php或index.php,这里我命名为main.php,在文件中加入基本标志
接下来让composer装的包能够自动加载
1
| include "vendor/autoload.php";
|
初始化客户端
使用LeanCloud的SDK之前,需要先初始化LeanCloud的客户端
1 2
| use \LeanCloud\Client; Client::initialize("AppID","AppKey","MasterKey");
|
其中initialize中的3个值需要在LeanCloud后台的应用凭证中查看
查询评论
1 2 3 4
| 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字符串,将会丢失所有数据,那么我们需要对其遍历,做成一个新的数组
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| $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);
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?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);
|
插入评论
插入数据的操作相对比较简单,只需要创建数据对象,填入数据,保存数据即可;首先创建数据对象
1 2
| use \LeanCloud\LeanObject; $comment = new LeanObject("Comment");
|
创建完对象后,通过set方法将数据填入对象中
1
| $comment->set("comment","评论内容");
|
数据填完后,调用save方法将数据保存到数据库中
保存时可能会出现错误,那么就需要捕获异常
1 2 3 4 5
| try { $comment->save(); } catch (CloudException $e) { echo $e->getMessage(); }
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| <?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
1
| $comment = LeanObject::create("Comment","objectID");
|
创建好数据对象后,只需要对其执行destory方法即可销毁数据
销毁操作可能会出现错误,需要捕获异常
1 2 3 4 5
| try { $comment->destroy(); } catch (CloudException $e) { echo $e->getMessage(); }
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12
| <?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
1
| $comment = LeanObject::create("Comment","objectID");
|
创建完后,通过set方法修改需要改的值,例如我要修改评论内容
1
| $comment->set("comment","修改后的评论内容");
|
修改完后,通过save方法将数据保存到数据库
保存操作可能会出现错误,需要捕获异常
1 2 3 4 5
| try { $comment->save(); } catch (CloudException $e) { echo $e->getMessage(); }
|
完整代码
1 2 3 4 5 6 7 8 9 10 11 12 13
| <?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创建的,那么可能会被默认设为只读,将不能通过这个方法修改,需要删除数据重新添加。
结尾
这篇文章到这里就结束了,感谢耐心阅读,如果遇到问题可以在下方评论区中讨论。