using PHP SDK

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.1.*"

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.


After including the required files from the SDK, you need to initalize the ParseClient using your Parse API keys:

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

How to Use:

Check out the Parse PHP Guide for the full documentation.

Add the “use” declarations where you’ll be using the classes.

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;
use Parse\ParseClient;
$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]);
    "languageTypes", array("php" => "awesome", "ruby" => "wtf")

// Save:
// Signup
$user = new ParseUser();
try {
} 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->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();
Cloud Functions:
$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/", "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
    "channels" => ["PHPFans"],
    "data" => $data

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

About the author

PHP | MVC | Codeignitor | Zend | Yii | Smarty | Android | Laravel Expert Senior Software Developer.I love my job and feel happy to working on new ideas and technologies.

Leave a Comment

Comment (required)

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Name (required)
Email (required)