The Parse PHP SDK gives you access to the powerful Parse cloud platform from your PHP app or script.
Get Composer, the PHP package manager. Then create a composer.json file in your projects root folder, containing:
{"require":{"parse/php-sdk" : "1.0.*" } }Run "composer install" to download the SDK and set up the autoloader, and then require it from your PHP script:
require'vendor/autoload.php';If you don't want to use Composer, you can include the autoload.php file in your code to automatically load the Parse SDK classes.
require'autoload.php';Check out the Parse PHP Guide for the full documentation.
Add the "use" declarations where you'll be using the classes. For all of the sample code in this file:
useParse\ParseObject; useParse\ParseQuery; useParse\ParseACL; useParse\ParsePush; useParse\ParseUser; useParse\ParseInstallation; useParse\ParseException; useParse\ParseAnalytics; useParse\ParseFile; useParse\ParseCloud;Objects:
$object = ParseObject::create("TestObject"); $objectId = $object->getObjectId(); $php = $object->get("elephant"); // Set values:$object->set("elephant", "php"); $object->set("today", newDateTime()); $object->setArray("mylist", [1, 2, 3]); $object->setAssociativeArray( "languageTypes", array("php" => "awesome", "ruby" => "wtf") ); // Save:$object->save();Users:
// Signup$user = newParseUser(); $user->setUsername("foo"); $user->setPassword("Q2w#4!o)df"); try{$user->signUp()} catch (ParseException$ex){// error in $ex->getMessage(); } // Logintry{$user = ParseUser::logIn("foo", "Q2w#4!o)df")} catch(ParseException$ex){// error in $ex->getMessage(); } // Current user$user = ParseUser::getCurrentUser();Security:
// Access only by the ParseUser in $user$userACL = ParseACL::createACLWithUser($user); // Access only by master key$restrictedACL = newParseACL(); // Set individual access rights$acl = newParseACL(); $acl->setPublicReadAccess(true); $acl->setPublicWriteAccess(false); $acl->setUserWriteAccess($user, true); $acl->setRoleWriteAccessWithName("PHPFans", true);Queries:
$query = newParseQuery("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()});Cloud Functions:
$results = ParseCloud::run("aCloudFunction", array("from" => "php"));Analytics:
PFAnalytics::trackEvent("logoReaction", array( "saw" => "elephant", "said" => "cute" ));Files:
// 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");Push:
$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 ));See the CONTRIBUTORS.md file for information on testing and contributing to the Parse PHP SDK. We welcome fixes and enhancements.