createResourceForClass() public static method

Creates a resource to help know if this service has changed.
public static createResourceForClass ( ReflectionClass $reflectionClass ) : Symfony\Component\DependencyInjection\Config\AutowireServiceResource
$reflectionClass ReflectionClass
return Symfony\Component\DependencyInjection\Config\AutowireServiceResource
コード例 #1
0
 public function isFresh($timestamp)
 {
     if (!file_exists($this->filePath)) {
         return false;
     }
     // has the file *not* been modified? Definitely fresh
     if (@filemtime($this->filePath) <= $timestamp) {
         return true;
     }
     try {
         $reflectionClass = new \ReflectionClass($this->class);
     } catch (\ReflectionException $e) {
         // the class does not exist anymore!
         return false;
     }
     return (array) $this === (array) AutowirePass::createResourceForClass($reflectionClass);
 }
コード例 #2
0
ファイル: AutowirePassTest.php プロジェクト: ayoah/symfony
 /**
  * @dataProvider getCreateResourceTests
  */
 public function testCreateResourceForClass($className, $isEqual)
 {
     $startingResource = AutowirePass::createResourceForClass(new \ReflectionClass(__NAMESPACE__ . '\\ClassForResource'));
     $newResource = AutowirePass::createResourceForClass(new \ReflectionClass(__NAMESPACE__ . '\\' . $className));
     // hack so the objects don't differ by the class name
     $startingReflObject = new \ReflectionObject($startingResource);
     $reflProp = $startingReflObject->getProperty('class');
     $reflProp->setAccessible(true);
     $reflProp->setValue($startingResource, __NAMESPACE__ . '\\' . $className);
     if ($isEqual) {
         $this->assertEquals($startingResource, $newResource);
     } else {
         $this->assertNotEquals($startingResource, $newResource);
     }
 }
コード例 #3
0
 public function testIsFreshSameConstructorArgs()
 {
     $oldResource = AutowirePass::createResourceForClass(new \ReflectionClass(__NAMESPACE__ . '\\Foo'));
     // test with a stale file *but* the resource will not be changed
     $this->assertTrue($oldResource->isFresh($this->getStaleFileTime()), '->isFresh() returns false if the constructor arguments have changed');
 }