Skip to content

Commit ced817c

Browse files
adaamzdg
authored andcommitted
added support for class constants (#25)
1 parent 8605fd1 commit ced817c

File tree

5 files changed

+28
-1
lines changed

5 files changed

+28
-1
lines changed

src/PhpGenerator/Factory.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ public function fromClassReflection(\ReflectionClass $from): ClassType
4646
}
4747
}
4848
$class->setMethods($methods);
49+
$class->setConstants($from->getConstants());
4950
return $class;
5051
}
5152

tests/PhpGenerator/ClassType.from.expect

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,3 +64,9 @@ class Class3
6464
public $prop1;
6565

6666
}
67+
68+
class Class4
69+
{
70+
const THE_CONSTANT = 9;
71+
72+
}

tests/PhpGenerator/ClassType.from.php71.expect

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,4 +15,11 @@ class ClassA
1515
{
1616
}
1717

18-
}
18+
}
19+
20+
class ClassB
21+
{
22+
const THE_PRIVATE_CONSTANT = 9;
23+
const THE_PUBLIC_CONSTANT = 9;
24+
25+
}

tests/PhpGenerator/ClassType.from.php71.phpt

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@ class ClassA
2323
function func3(): void {}
2424
}
2525

26+
class ClassB
27+
{
28+
private const THE_PRIVATE_CONSTANT = 9;
29+
public const THE_PUBLIC_CONSTANT = 9;
30+
}
31+
2632

2733
$res[] = ClassType::from(ClassA::class);
34+
$res[] = ClassType::from(ClassB::class);
2835

2936
Assert::matchFile(__DIR__ . '/ClassType.from.php71.expect', implode("\n", $res));

tests/PhpGenerator/ClassType.from.phpt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,18 @@ class Class3
6969
public $prop1;
7070
}
7171

72+
class Class4
73+
{
74+
const THE_CONSTANT = 9;
75+
}
76+
7277
$res[] = ClassType::from(Interface1::class);
7378
$res[] = ClassType::from(Interface2::class);
7479
$res[] = ClassType::from(Class1::class);
7580
$res[] = ClassType::from(new Class2);
7681
$obj = new Class3;
7782
$obj->prop2 = 1;
7883
$res[] = (new Factory)->fromClassReflection(new \ReflectionObject($obj));
84+
$res[] = ClassType::from(Class4::class);
7985

8086
Assert::matchFile(__DIR__ . '/ClassType.from.expect', implode("\n", $res));

0 commit comments

Comments
 (0)