private function performRuntime($traitName, $entity) { $config = $this->basicTraitAssertions[$traitName]; if (true !== array_key_exists('namespace', $config)) { $this->reflectionAnalyser->setRequireFQN(false); } static::assertTrue($this->reflectionAnalyser->hasTrait($traitName)); foreach ($config['props'] as $property) { static::assertTrue($this->reflectionAnalyser->hasProperty($property)); } foreach ($config['methods'] as $method) { static::assertTrue($this->reflectionAnalyser->hasMethod($method), 'Should have method ' . $method); } foreach ($config['op'] as $operation) { $this->{$operation}($traitName, $entity, $config); } }
/** * @param Entity $entity * @param string $method * * @return \ReflectionMethod */ protected function getEntityReflectionMethod(Entity $entity, $method) { $entityReflection = new ClassReflectionAnalyser(new \ReflectionClass($entity)); return $entityReflection->setMethodPublic($method); }