| Server IP : 34.87.99.72 / Your IP : 216.73.217.31 Web Server : Apache/2.4.46 (Unix) OpenSSL/1.1.1n System : Linux zlock-bitnami-lamp-prod-v2-vm 4.19.0-16-cloud-amd64 #1 SMP Debian 4.19.181-1 (2021-03-19) x86_64 User : bitnami ( 1000) PHP Version : 7.4.18 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /opt/bitnami/apache/htdocs/app/vendor/ably/ably-php/src/Models/ |
Upload File : |
<?php
namespace Ably\Models;
use Ably\Log;
/**
* Base class for models with options
* Provides automatic loading of options from array or an object
*/
abstract class BaseOptions {
public function __construct( $options = [] ) {
$class = get_class( $this );
foreach ($options as $key => $value) {
if (property_exists( $class, $key )) {
$this->$key = $value;
}
}
}
public function toArray() {
$properties = call_user_func('get_object_vars', $this);
foreach ($properties as $k => $v) {
if ($v === null) {
unset($properties[$k]);
}
}
return $properties;
}
public function fromJSON( $json ) {
if (!is_string( $json )) {
$obj = $json;
} else {
$obj = @json_decode($json);
if (!$obj) {
throw new AblyException( 'Invalid object or JSON encoded object' );
}
}
$class = get_class( $this );
foreach ($obj as $key => $value) {
if (property_exists( $class, $key )) {
$this->$key = $value;
}
}
}
}