Example #1
0
 public static function getMethodBeforeHandlers(ReflectionMethod $reflMethod)
 {
     $ret = array();
     foreach ($reflMethod->getAnnotations() as $annotation) {
         $clazz = null;
         $aclass = get_class($annotation);
         if (array_key_exists($aclass, self::$beforeHandlers)) {
             $clazz = self::$beforeHandlers[$aclass];
         }
         if (!$clazz) {
             $bclass = \explode(self::NAMESPACE_SEPARATOR, $aclass);
             $bclass = end($bclass);
             //die();
             foreach (self::$annotationHandlerNamespaces as $ns) {
                 $class = trim($ns, self::NAMESPACE_SEPARATOR) . self::NAMESPACE_SEPARATOR . $bclass . 'Handler';
                 try {
                     if (class_exists($class)) {
                         $clazz = $class;
                         self::$beforeHandlers[$aclass] = $class;
                         break;
                     }
                 } catch (Exception $e) {
                     //do nothing
                 }
             }
         }
         if ($clazz) {
             $ret[] = ClassInvoker::getNewInstance($clazz, array('annotation' => $annotation));
         }
     }
     return $ret;
 }
Example #2
0
 private function handleAnnotation(ReflectionMethod $reflMethod, $instance)
 {
     $annotation = $reflMethod->getAnnotation(AccessControl::class);
     $role = self::getRole();
     if (!$this->acl->isAllowed($role, $annotation->value)) {
         throw new UnAuthorizedException();
     }
 }
Example #3
0
 public function __construct($class, $name)
 {
     if (self::$adapterClass !== null) {
         $this->adapter = new self::$adapterClass($class, $name);
     } else {
         parent::__construct($class, $name);
     }
 }
 private function bindingResultBuild()
 {
     $bind = new BindingResult();
     $builder = new ValidatorBuilder();
     $builder->enableAnnotationMapping();
     foreach ($this->modelAttributes as $param) {
         if (in_array($param, $this->invokeParams)) {
             foreach ($builder->getValidator()->validate($param) as $offset => $violation) {
                 $bind->offsetSet($offset, $violation);
             }
         }
     }
     $bindRef = new \ReflectionObject($bind);
     $propRef = $bindRef->getProperty('map');
     $propRef->setAccessible(true);
     $map = array();
     foreach ($this->reflMethod->getParameters() as $param) {
         if (!$param instanceof BindingResult && $param->getClass()) {
             $map[$param->getClass()->getName()] = $param->getName();
         }
     }
     $propRef->setValue($bind, $map);
     return $bind;
 }
 /**
  * @covers PhSpring\Reflection\ReflectionMethod::getDeclaringClass
  */
 public function testGetDeclaringClass()
 {
     $class = $this->object->getDeclaringClass();
     $this->assertInstanceOf(ReflectionClass::class, $class);
 }