/** * Resolve a kind provided by `AopJoinPoint` to a kind for AOP.io API. * * @see \Aop\KindConstantInterface * @see PeclAopInterceptor::resolveJoinPoint() * * @param int $kind AOP_KIND_* * @return int The kind * @throws \Aop\Exception\KindException If the kind is invalid. */ protected function resolveKind($kind) { $kinds = [AOP_KIND_BEFORE => Aop::KIND_BEFORE, AOP_KIND_AFTER => Aop::KIND_AFTER, AOP_KIND_AROUND => Aop::KIND_AROUND, AOP_KIND_PROPERTY => Aop::KIND_PROPERTY, AOP_KIND_FUNCTION => Aop::KIND_FUNCTION, AOP_KIND_METHOD => Aop::KIND_METHOD, AOP_KIND_READ => Aop::KIND_READ, AOP_KIND_WRITE => Aop::KIND_WRITE, AOP_KIND_AROUND_WRITE_PROPERTY => Aop::KIND_AROUND_PROPERTY_WRITE, AOP_KIND_AROUND_READ_PROPERTY => Aop::KIND_AROUND_PROPERTY_READ, AOP_KIND_BEFORE_WRITE_PROPERTY => Aop::KIND_BEFORE_PROPERTY_WRITE, AOP_KIND_BEFORE_READ_PROPERTY => Aop::KIND_BEFORE_PROPERTY_READ, AOP_KIND_AFTER_WRITE_PROPERTY => Aop::KIND_AFTER_PROPERTY_WRITE, AOP_KIND_AFTER_READ_PROPERTY => Aop::KIND_AFTER_PROPERTY_READ, AOP_KIND_BEFORE_METHOD => Aop::KIND_BEFORE_METHOD, AOP_KIND_AFTER_METHOD => Aop::KIND_AFTER_METHOD, AOP_KIND_AROUND_METHOD => Aop::KIND_AROUND_METHOD, AOP_KIND_BEFORE_FUNCTION => Aop::KIND_BEFORE_FUNCTION, AOP_KIND_AFTER_FUNCTION => Aop::KIND_AFTER_FUNCTION, AOP_KIND_AROUND_FUNCTION => Aop::KIND_AROUND_FUNCTION, 836 => Aop::KIND_AFTER_METHOD, 580 => Aop::KIND_AFTER_METHOD_RETURN, 324 => Aop::KIND_AFTER_METHOD_THROW, 900 => Aop::KIND_AFTER_FUNCTION, 644 => Aop::KIND_AFTER_FUNCTION_RETURN, 388 => Aop::KIND_AFTER_FUNCTION_THROW, 820 => Aop::KIND_AFTER_PROPERTY_WRITE, 812 => Aop::KIND_AFTER_PROPERTY_READ]; if (!array_key_exists($kind, $kinds) or !Aop::isValidKind($kinds[$kind])) { throw new KindException('The kind (' . $kind . ') is invalid.'); } return $kinds[$kind]; }
public function testIsValidKind() { new _Aop(); $this->boolean(_Aop::isValidKind(-1000))->isFalse()->boolean(_Aop::isValidKind(_Aop::KIND_BEFORE))->isTrue()->boolean(_Aop::isValidKind('before'))->isFalse()->boolean(_Aop::isValidKind('beforeeeee'))->isFalse()->boolean(_Aop::isValidKind('before', false))->isTrue(); }