language: PHP (php 5.4.4)
date: 390 days 20 hours ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
 
class A
{
  protected static $deps = array('A.default.js', 'A.tablet.js');
  public function getDependencies($class)
  {
    $deps = array();
                
                $parent = new ReflectionClass($this);
                
                do 
                {
                        // ReflectionClass::getStaticPropertyValue() always throws ReflectionException with
                        // message "Class [class] does not have a property named deps"
                        // So I'm using ReflectionClass::getStaticProperties()
                        
                        $staticProps = $parent->getStaticProperties();
                        $deps = array_merge($deps, $staticProps['deps']);
                }
                while ($parent=$parent->getParentClass());
                
                return $deps;
  }
}
class B extends A
{
  protected static $deps = array('B.default.js');
}
 
class C extends B
{
  protected static $deps = array('C.default.js');
}
 
$obj = new C();
var_dump( $obj->getDependencies($obj) );