Code Coverage
 
Lines
Functions and Methods
Classes and Traits
Total
44.44% covered (danger)
44.44%
4 / 9
50.00% covered (danger)
50.00%
1 / 2
CRAP
0.00% covered (danger)
0.00%
0 / 1
BaseOptions
44.44% covered (danger)
44.44%
4 / 9
50.00% covered (danger)
50.00%
1 / 2
12.17
0.00% covered (danger)
0.00%
0 / 1
 __construct
100.00% covered (success)
100.00%
4 / 4
100.00% covered (success)
100.00%
1 / 1
3
 toArray
0.00% covered (danger)
0.00%
0 / 5
0.00% covered (danger)
0.00%
0 / 1
12
1<?php
2namespace Ably\Models;
3
4use Ably\Log;
5
6/**
7 * Base class for models with options
8 * Provides automatic loading of options from array or an object
9 */
10abstract class BaseOptions {
11    public function __construct( $options = [] ) {
12        $class = get_class( $this );
13        
14        foreach ($options as $key => $value) {
15            if (property_exists( $class, $key )) {
16                $this->$key = $value;
17            }
18        }
19    }
20
21    public function toArray() {
22        $properties = call_user_func('get_object_vars', $this);
23        foreach ($properties as $k => $v) {
24            if ($v === null) {
25                unset($properties[$k]);
26            }
27        }
28        return $properties;
29    }
30}