PubNub PHP SDK V4 Issues


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
PubNub PHP SDK V4 Issues

Any idea why this fails?

Here is a PubNub PHP SDK V4 working code which throws the error:

Code:
PHP Parse error:  syntax error, unexpected 'use' (T_USE) in  .....

According to the PubNub docs, V4 of the PHP SDK support PHP v5.6, so I'm really confused as to why this error.

Directly from this PubNub here:

Code:
<?php
require_once('vendor/autoload.php');

use PubNub\PubNub;
use PubNub\Enums\PNStatusCategory;
use PubNub\Callbacks\SubscribeCallback;
use PubNub\PNConfiguration;
 
class MySubscribeCallback extends SubscribeCallback {
    function status($pubnub, $status) {
        if ($status->getCategory() === PNStatusCategory::PNUnexpectedDisconnectCategory) {
            // This event happens when radio / connectivity is lost
        } else if ($status->getCategory() === PNStatusCategory::PNConnectedCategory) {
            // Connect event. You can do stuff like publish, and know you'll get it
            // Or just use the connected event to confirm you are subscribed for
            // UI / internal notifications, etc
        } else if ($status->getCategory() === PNStatusCategory::PNDecryptionErrorCategory) {
            // Handle message decryption error. Probably client configured to
            // encrypt messages and on live data feed it received plain text.
        }
    }
 
    function message($pubnub, $message) {
        // Handle new message stored in message.message
    }
 
    function presence($pubnub, $presence) {
        // handle incoming presence data
    }
}
 
$pnconf = new PNConfiguration();
$pubnub = new PubNub($pnconf);
 
$pnconf->setSubscribeKey("my_sub_key");
$pnconf->setPublishKey("my_pub_key");
 
$pubnub->addListener($subscribeCallback);
 
// Subscribe to a channel, this is not async.
$pubnub->subscribe()
    ->channels("hello_world")
    ->execute();
 
// Use the publish command separately from the Subscribe code shown above.
// Subscribe is not async and will block the execution until complete.
$result = $pubnub->publish()
              ->channel("hello_world")
              ->message("Hello PubNub")
              ->sync();
 
print_r($result);

# 2  
For PubNub PHP SDK V3, this bare bones should work (installed with composer):

Code:
<?php
require_once('/var/www/pubnub_v3/vendor/autoloader.php'); 

$skey = "my-sub-key"; 
$pkey =  "my-pub-key"; 

$pubnub = new Pubnub($pkey, $skey ); 
$pubnub->publish(array('channel' => 'ch1', 'message' => array('some_text' => 'hello!')));

But this also produces an error:

Code:
PHP Fatal error:  Class 'Pubnub' not found in .....

But I searched in the file and the class Pubnub is there.

I repeated this bare bones PHP SDK for V4 and have the same error.

Hmmm. What's up with all these broken PubNub SDKs, LOL ?
# 3  
Thanks to the excellent tech support team at PubNub, I have PubNub working with our PHP backend.

Thanks Trevor at PubNub.

This PubNub PHP SDK V4 test code works with PHP 5.6:

Code:
<?php
require __DIR__.'/vendor/autoload.php';

use PubNub\PNConfiguration;
use PubNub\PubNub;

date_default_timezone_set('GMT');

$pnconfig = new PNConfiguration();
$pnconfig->setPublishKey("demo");
$pnconfig->setSubscribeKey("demo");
$pubnub = new PubNub($pnconfig);

$data = array(
        "username" => "Server",
         "text" => "Test from PHP",
         "time" => time()
    );

$result = $pubnub->publish()->channel("demo")->message($data)->sync();

print_r($result);

?>

Great technical support from PubNub. Thank you!

Image
This User Gave Thanks to Neo For This Post:
# 4  
Code is working fine

Hey Neo,


There is some special character with the line require and it is giving error:
Code:
require_once('vendor/autoload.php');

Code:
See below code, it is working for me:
require_once('vendor/autoload.php');

use PubNub\PubNub;
use PubNub\Enums\PNStatusCategory;
use PubNub\Callbacks\SubscribeCallback;
use PubNub\PNConfiguration;
 
class MySubscribeCallback extends SubscribeCallback {
    function status($pubnub, $status) {
        if ($status->getCategory() === PNStatusCategory::PNUnexpectedDisconnectCategory) {
            // This event happens when radio / connectivity is lost
        } else if ($status->getCategory() === PNStatusCategory::PNConnectedCategory) {
            // Connect event. You can do stuff like publish, and know you'll get it
            // Or just use the connected event to confirm you are subscribed for
            // UI / internal notifications, etc
        } else if ($status->getCategory() === PNStatusCategory::PNDecryptionErrorCategory) {
            // Handle message decryption error. Probably client configured to
            // encrypt messages and on live data feed it received plain text.
        }
    }
 
    function message($pubnub, $message) {
        // Handle new message stored in message.message
    }
 
    function presence($pubnub, $presence) {
        // handle incoming presence data
    }
}
 
$pnconf = new PNConfiguration();
$pubnub = new PubNub($pnconf);

$pnconf->setSubscribeKey("demo");
$pnconf->setPublishKey("demo");
$subscribeCallback = new MySubscribeCallback();
$pubnub->addListener($subscribeCallback);
 
// Subscribe to a channel, this is not async.
$pubnub->subscribe()
    ->channels("hello_world")
    ->execute();
 
// Use the publish command separately from the Subscribe code shown above.
// Subscribe is not async and will block the execution until complete.
$result = $pubnub->publish()
              ->channel("hello_world")
              ->message("Hello PubNub")
              ->sync();
 
print_r($result);

Happy coding Smilie
This User Gave Thanks to hbmangal For This Post:
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Compile PHP in AIX: Loading issues
KarthikKannan
Finally I was able to compile PHP on AIX. When I try to load from Apache, I get the below error. /install/usr/local/apache2/bin:>apachectl -f /install/usr/local/apache2/conf/httpd.conf -k stop httpd: Syntax error on line 53 of /install/usr/local/apache2/conf/httpd.conf: Cannot load...... AIX
0
AIX
Autosys-SDK
ksswamy
Hi friends, I am trying to validate the jil file programmatically. I plan to use the SDK provided by Autosys. Is CA provide any interfaces for this? Another thing : What is Jil syntax checker or Jil verifier or Jil validator? Where is it available in autosys? I am using R11 SP2 version...... UNIX for Advanced & Expert Users
0
UNIX for Advanced & Expert Users
issues with simplexml_load_string/SimpleXMLElement on PHP 5.1/Linux
crmpicco
This works fine under WAMP with PHP 5.3 and Windows XP on my dev machine. But on a Unix/PHP 5.1 env it doesn't. I am looking to pull out "LineNumber" and "TaxAmount" from the XML for each iteration of the loop below, for each iteration "$tax_line" is always an object of simplexml_load_string (...... Shell Programming and Scripting
0
Shell Programming and Scripting
SDK For cdwriter
cs05pp2
I have a problem. I try to write a cd writer program ins c# but I can't find any sdk. Any one who knows? Thank you in advance :)... Programming
5
Programming
iPhone SDK?
Nintenman
Just need a little help learning to code using the iPhone SDK. HELP WOULD BE GREAT!!!... OS X (Apple)
1
OS X (Apple)