Skip to content

Commit 1574017

Browse files
author
github-ci
committed
update
1 parent 9606394 commit 1574017

File tree

3 files changed

+23
-12
lines changed

3 files changed

+23
-12
lines changed

src/DependencyInjection/Compiler/AopAttributeCompilerPass.php

Lines changed: 18 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,14 @@ public function process(ContainerBuilder $container): void
5353
}
5454

5555
/**
56-
* @return array<string, array<mixed>>
56+
* 收集切面语句
57+
*
58+
* 结构说明:
59+
* - 最外层 key 为表达式语句(如类方法全名或表达式)
60+
* - 第二层 key 为 Attribute 类名(实现 AdviceInterface 的具体注解类)
61+
* - 最内层为 [serviceId, methodName] 的二元组列表
62+
*
63+
* @return array<string, array<string, array<array{string, string}>>>
5764
*/
5865
private function collectAspectStatements(ContainerBuilder $container): array
5966
{
@@ -84,8 +91,8 @@ private function collectAspectStatements(ContainerBuilder $container): array
8491
/**
8592
* @template T of object
8693
* @param \ReflectionClass<T> $reflectionClass
87-
* @param array<string, array<mixed>> $statements
88-
* @return array<string, array<mixed>>
94+
* @param array<string, array<string, array<array{string, string}>>> $statements
95+
* @return array<string, array<string, array<array{string, string}>>>
8996
*/
9097
private function processAspectMethods(ContainerBuilder $container, string $serviceId, \ReflectionClass $reflectionClass, array $statements): array
9198
{
@@ -101,8 +108,8 @@ private function processAspectMethods(ContainerBuilder $container, string $servi
101108
/**
102109
* @template T of object
103110
* @param \ReflectionAttribute<T> $attribute
104-
* @param array<string, array<mixed>> $statements
105-
* @return array<string, array<mixed>>
111+
* @param array<string, array<string, array<array{string, string}>>> $statements
112+
* @return array<string, array<string, array<array{string, string}>>>
106113
*/
107114
private function processMethodAttribute(ContainerBuilder $container, string $serviceId, \ReflectionMethod $method, \ReflectionAttribute $attribute, array $statements): array
108115
{
@@ -134,7 +141,7 @@ private function processMethodAttribute(ContainerBuilder $container, string $ser
134141
}
135142

136143
/**
137-
* @param array<string, array<mixed>> $statements
144+
* @param array<string, array<string, array<array{string, string}>>> $statements
138145
*/
139146
private function processServiceInterception(ContainerBuilder $container, array $statements): void
140147
{
@@ -174,7 +181,7 @@ private function shouldSkipService(ContainerBuilder $container, string $serviceI
174181
}
175182

176183
/**
177-
* @param array<string, array<mixed>> $statements
184+
* @param array<string, array<string, array<array{string, string}>>> $statements
178185
*/
179186
private function processService(ContainerBuilder $container, string $serviceId, array $statements, ExpressionLanguage $expressionLanguage): void
180187
{
@@ -206,7 +213,7 @@ private function shouldSkipMethod(\ReflectionMethod $method): bool
206213
* @template T of object
207214
* @param \ReflectionClass<T> $reflectionClass
208215
* @param array<string> $serviceTags
209-
* @param array<string, array<mixed>> $statements
216+
* @param array<string, array<string, array<array{string, string}>>> $statements
210217
*/
211218
private function processServiceMethod(ContainerBuilder $container, string $serviceId, \ReflectionClass $reflectionClass, \ReflectionMethod $method, array $serviceTags, array $statements, ExpressionLanguage $expressionLanguage): void
212219
{
@@ -242,7 +249,7 @@ private function shouldInterceptMethod(string $statement, string $fullName, Expr
242249
}
243250

244251
/**
245-
* @param array<mixed> $config
252+
* @param array<string, array<array{string, string}>> $config
246253
*/
247254
private function createMethodInterception(ContainerBuilder $container, string $serviceId, \ReflectionMethod $method, array $config): void
248255
{
@@ -296,7 +303,7 @@ private function createClosureDefinition(ContainerBuilder $container, string $cl
296303
}
297304

298305
/**
299-
* @param array<mixed> $config
306+
* @param array<string, array<array{string, string}>> $config
300307
*/
301308
private function configureMethodInterception(ContainerBuilder $container, Definition $aopNewService, string $interceptorId, \ReflectionMethod $method, array $config, string $closureId): void
302309
{
@@ -313,7 +320,7 @@ private function configureMethodInterception(ContainerBuilder $container, Defini
313320
}
314321

315322
/**
316-
* @param array<mixed> $config
323+
* @param array<string, array<array{string, string}>> $config
317324
*/
318325
private function addAttributeFunctions(ContainerBuilder $container, string $interceptorId, \ReflectionMethod $method, array $config): void
319326
{

src/Service/AopInterceptor.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ private function createJoinPoint(object $proxy, object $instance, string $method
119119
* @param object $proxy 拦截方法调用的代理对象
120120
* @param object $instance 代理中包装的实例
121121
* @param string $method 被调用方法的名称
122-
* @param array $params 传递给被拦截方法的参数数组,
122+
* @param array<mixed> $params 传递给被拦截方法的参数数组,
123123
* 按参数名称索引
124124
* @param bool $returnEarly 标志位,用于告诉拦截器代理提前返回,
125125
* 返回拦截器的返回值而不是执行方法逻辑
@@ -219,6 +219,8 @@ private function fixRedisMethodParams(object $instance, string $method, array $p
219219
}
220220

221221
if ('info' === $method && isset($params['sections'])) {
222+
assert(is_array($params['sections']));
223+
222224
return $params['sections'];
223225
}
224226

src/Service/AspectMatchCache.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,8 @@ public function get(string $serviceId, string $method): ?array
5151
$item = $this->persistentCache->getItem($key);
5252
if ($item->isHit()) {
5353
$value = $item->get();
54+
assert(is_array($value));
55+
/** @var array<string, mixed> $value */
5456
$this->memoryCache[$key] = $value;
5557
++$this->hits;
5658

0 commit comments

Comments
 (0)