Repository navigation
Expand file tree
/
Copy pathConfigProvider.php
More file actions
63 lines (56 loc) · 1.81 KB
/
Copy pathConfigProvider.php
File metadata and controls
63 lines (56 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<?php
declare(strict_types=1);
/**
* This file is part of Hyperf.
*
* @link https://www.hyperf.io
* @document https://hyperf.wiki
* @contact [email protected]
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
*/
namespace Hyperf\Di;
use Hyperf\Di\Annotation\AnnotationCollector;
use Hyperf\Di\Annotation\AspectCollector;
use Hyperf\Di\Annotation\InjectAspect;
use Hyperf\Di\Aop\AstVisitorRegistry;
use Hyperf\Di\Aop\PropertyHandlerVisitor;
use Hyperf\Di\Aop\ProxyCallVisitor;
use Hyperf\Di\Aop\RegisterInjectPropertyHandler;
class ConfigProvider
{
public function __invoke(): array
{
// Register AST visitors to the collector.
if (! AstVisitorRegistry::exists(PropertyHandlerVisitor::class)) {
AstVisitorRegistry::insert(PropertyHandlerVisitor::class);
}
if (! AstVisitorRegistry::exists(ProxyCallVisitor::class)) {
AstVisitorRegistry::insert(ProxyCallVisitor::class);
}
// Register Property Handler.
RegisterInjectPropertyHandler::register();
return [
'dependencies' => [
MethodDefinitionCollectorInterface::class => MethodDefinitionCollector::class,
ClosureDefinitionCollectorInterface::class => ClosureDefinitionCollector::class,
],
'aspects' => [
InjectAspect::class,
],
'annotations' => [
'scan' => [
'paths' => [
__DIR__,
],
'collectors' => [
AnnotationCollector::class,
AspectCollector::class,
],
],
'ignore_annotations' => [
'mixin',
],
],
];
}
}