francimedia/parse-php-sdk

1.0.4 2014-11-17 21:17 UTC

README

Parse PHP SDK 允许您从 PHP 应用或脚本中访问强大的 Parse 云平台。

安装

获取 Composer,PHP 包管理器。然后在项目根目录中创建一个 composer.json 文件,包含

{
  "require": {
    "parse/php-sdk" : "1.0.*"
  }
}

运行 "composer install" 以下载 SDK 并设置自动加载器,然后在您的 PHP 脚本中引用它

require 'vendor/autoload.php';

注意:Parse PHP SDK 需要 PHP 5.4 或更高版本。

替代方法

如果您不想使用 Composer,可以将 autoload.php 文件包含到您的代码中,以自动加载 Parse SDK 类。

require 'autoload.php';

初始化

包含 SDK 所需的文件后,您需要使用您的 Parse API 密钥初始化 ParseClient

ParseClient::initialize( $app_id, $rest_key, $master_key );

用法

请参阅 Parse PHP 指南 获取完整文档。

在您将使用类的位置添加 "use" 声明。对于此文件中的所有示例代码

use Parse\ParseObject;
use Parse\ParseQuery;
use Parse\ParseACL;
use Parse\ParsePush;
use Parse\ParseUser;
use Parse\ParseInstallation;
use Parse\ParseException;
use Parse\ParseAnalytics;
use Parse\ParseFile;
use Parse\ParseCloud;

对象

$object = ParseObject::create("TestObject");
$objectId = $object->getObjectId();
$php = $object->get("elephant");

// Set values:
$object->set("elephant", "php");
$object->set("today", new DateTime());
$object->setArray("mylist", [1, 2, 3]);
$object->setAssociativeArray(
  "languageTypes", array("php" => "awesome", "ruby" => "wtf")
);

// Save:
$object->save();

用户

// Signup
$user = new ParseUser();
$user->setUsername("foo");
$user->setPassword("Q2w#4!o)df");
try {
  $user->signUp();
} catch (ParseException $ex) {
  // error in $ex->getMessage();
}

// Login
try {
  $user = ParseUser::logIn("foo", "Q2w#4!o)df");
} catch(ParseException $ex) {
  // error in $ex->getMessage();
}

// Current user
$user = ParseUser::getCurrentUser();

安全性

// Access only by the ParseUser in $user
$userACL = ParseACL::createACLWithUser($user);

// Access only by master key
$restrictedACL = new ParseACL();

// Set individual access rights
$acl = new ParseACL();
$acl->setPublicReadAccess(true);
$acl->setPublicWriteAccess(false);
$acl->setUserWriteAccess($user, true);
$acl->setRoleWriteAccessWithName("PHPFans", true);

查询

$query = new ParseQuery("TestObject");

// Get a specific object:
$object = $query->get("anObjectId");

$query->limit(10); // default 100, max 1000

// All results:
$results = $query->find();

// Just the first result:
$first = $query->first();

// Process ALL (without limit) results with "each".
// Will throw if sort, skip, or limit is used.
$query->each(function($obj) {
  echo $obj->getObjectId();
});

云函数

$results = ParseCloud::run("aCloudFunction", array("from" => "php"));

分析

ParseAnalytics::track("logoReaction", array(
  "saw" => "elephant",
  "said" => "cute"
));

文件

// Get from a Parse Object:
$file = $aParseObject->get("aFileColumn");
$name = $file->getName();
$url = $file->getURL();
// Download the contents:
$contents = $file->getData();

// Upload from a local file:
$file = ParseFile::createFromFile(
  "/tmp/foo.bar", "Parse.txt", "text/plain"
);

// Upload from variable contents (string, binary)
$file = ParseFile::createFromData($contents, "Parse.txt", "text/plain");

推送

$data = array("alert" => "Hi!");

// Push to Channels
ParsePush::send(array(
  "channels" => ["PHPFans"],
  "data" => $data
));

// Push to Query
$query = ParseInstallation::query();
$query->equalTo("design", "rad");
ParsePush::send(array(
  "where" => $query,
  "data" => $data
));

贡献/测试

请参阅 CONTRIBUTORS.md 文件以获取有关测试和为 Parse PHP SDK 贡献的信息。我们欢迎修复和增强。