francimedia / parse-php-sdk
Parse PHP SDK
1.0.4
2014-11-17 21:17 UTC
Requires
- php: >=5.4.0
- ext-curl: *
- ext-json: *
Requires (Dev)
- phpdocumentor/phpdocumentor: ~2.5
- phpunit/phpunit: ~4.0
- squizlabs/php_codesniffer: ~1.5
This package is not auto-updated.
Last update: 2024-09-24 16:19:48 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 贡献的信息。我们欢迎修复和增强。