Skip to content

Commit c3a7547

Browse files
committed
Merge pull request #16 from dunglas/fix_context_factory
Fix file_get_contents warning in ContextFactory
2 parents 60fe236 + 17156bc commit c3a7547

File tree

2 files changed

+37
-1
lines changed

2 files changed

+37
-1
lines changed

src/Types/ContextFactory.php

+7-1
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,15 @@ public function createFromReflector(\Reflector $reflector)
4343
if (method_exists($reflector, 'getDeclaringClass')) {
4444
$reflector = $reflector->getDeclaringClass();
4545
}
46+
4647
$fileName = $reflector->getFileName();
48+
$namespace = $reflector->getNamespaceName();
49+
50+
if (file_exists($fileName)) {
51+
return $this->createForNamespace($namespace, file_get_contents($fileName));
52+
}
4753

48-
return $this->createForNamespace($reflector->getNamespaceName(), file_get_contents($fileName));
54+
return new Context($namespace, []);
4955
}
5056

5157
/**

tests/unit/Types/ContextFactoryTest.php

+30
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,36 @@ public function bar()
149149

150150
$this->assertSame([], $context->getNamespaceAliases());
151151
}
152+
153+
/**
154+
* @covers ::createFromReflector
155+
*/
156+
public function testEmptyFileName()
157+
{
158+
$fixture = new ContextFactory();
159+
$context = $fixture->createFromReflector(new \ReflectionClass('stdClass'));
160+
161+
$this->assertSame([], $context->getNamespaceAliases());
162+
}
163+
164+
/**
165+
* @covers ::createFromReflector
166+
*/
167+
public function testEvalDClass()
168+
{
169+
eval(<<<PHP
170+
namespace Foo;
171+
172+
class Bar
173+
{
174+
}
175+
PHP
176+
);
177+
$fixture = new ContextFactory();
178+
$context = $fixture->createFromReflector(new \ReflectionClass('Foo\Bar'));
179+
180+
$this->assertSame([], $context->getNamespaceAliases());
181+
}
152182
}
153183
}
154184

0 commit comments

Comments
 (0)