-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtypephp.yml
More file actions
133 lines (129 loc) · 6.32 KB
/
Copy pathtypephp.yml
File metadata and controls
133 lines (129 loc) · 6.32 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
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
name: my-app
build-mode: bin
version: 0.1.0
# 输出与构建参数(命令行传参优先级高于此文件)
output: build/my_app
build-dir: build/typephp
optimize: 2
job: 8
cxx-std: c++17
no-progress: true
# 运行时必需的 PHP 扩展(写入 Zend 模块依赖表,缺失时启动即报错)
extension-dependencies:
- swoole
- pdo_mysql
- redis
# 只编译入口文件。两处硬限制导致 app/core 无法参与 AOT 编译:
# 1. TypePHP 不允许 AOT 类继承「运行时 autoload 的自定义类」(Translator.php:3605),
# 而 app/core 大量类 extends/implements vendor 的 Hyperf/Psr 类;
# 2. 即使只编译继承链在 app/core 内部的类,Hyperf DI Scanner 依赖
# ReflectionClass::getFileName()(AOT 类是 internal class,返回 false),
# 且控制器依赖扫描器收集的 #[ParamFormat]/#[Cache] 注解,无法绕过。
# app/、core/、config/、vendor/ 全部由入口在运行时走内嵌 Zend 加载,
# 行为与 php bin/hyperf.php 完全一致。
# TypePHP 全量编译测试(开发测试阶段):业务代码全量参与编译,
# 编不过的问题收集汇总反馈 TypePHP 官方,见 typephp-compat-report.md
sources:
- ./bin/typephp_main.php
- ./app/
- ./core/
- ./vendor/hyperf/server/src/Exception/RuntimeException.php
- ./vendor/hyperf/server/src/Exception/ServerException.php
- ./vendor/psr/http-server-middleware/src/MiddlewareInterface.php
- ./vendor/hyperf/di/src/Annotation/AnnotationInterface.php
- ./vendor/hyperf/di/src/Annotation/AbstractAnnotation.php
- ./vendor/hyperf/di/src/Aop/AroundInterface.php
- ./vendor/hyperf/di/src/Aop/AbstractAspect.php
- ./vendor/hyperf/exception-handler/src/ExceptionHandler.php
- ./vendor/hyperf/event/src/Contract/ListenerInterface.php
- ./vendor/monolog/monolog/src/Monolog/Processor/ProcessorInterface.php
- ./vendor/hyperf/contract/src/ProcessInterface.php
- ./vendor/hyperf/process/src/AbstractProcess.php
- ./vendor/hyperf/async-queue/src/Process/ConsumerProcess.php
- ./vendor/hyperf/contract/src/Arrayable.php
- ./vendor/hyperf/contract/src/Jsonable.php
- ./vendor/hyperf/contract/src/CompressInterface.php
- ./vendor/hyperf/contract/src/UnCompressInterface.php
- ./vendor/hyperf/constants/src/AbstractConstants.php
- ./vendor/hyperf/constants/src/ConstantsTrait.php
- ./vendor/hyperf/constants/src/GetterTrait.php
- ./vendor/96qbhy/hyperf-auth/src/AuthMiddleware.php
# Model 链直接编译 vendor 源文件(hyperf/database 已切自有 fork xiaoyin199/hyperf-database,
# HasAttributes trio 的 func_get_args 已改显式变长参数,backport 自 hyperf/hyperf#7803;
# 只列编译链实际引用的文件,未引用的 Concerns/Traits 不参与)
- ./vendor/hyperf/database/src/Model/Model.php
- ./vendor/hyperf/database/src/Model/Concerns/GuardsAttributes.php
- ./vendor/hyperf/database/src/Model/Concerns/HasAttributes.php
- ./vendor/hyperf/database/src/Model/Concerns/HasEvents.php
- ./vendor/hyperf/database/src/Model/Concerns/HasGlobalScopes.php
- ./vendor/hyperf/database/src/Model/Concerns/HasRelationships.php
- ./vendor/hyperf/database/src/Model/Concerns/HasTimestamps.php
- ./vendor/hyperf/database/src/Model/Concerns/HidesAttributes.php
- ./vendor/hyperf/database/src/Model/SoftDeletes.php
- ./vendor/hyperf/db-connection/src/Model/Model.php
- ./vendor/hyperf/db-connection/src/Traits/HasContainer.php
- ./vendor/hyperf/db-connection/src/Traits/HasRepository.php
- ./vendor/hyperf/model-cache/src/Cacheable.php
- ./vendor/hyperf/model-cache/src/CacheableInterface.php
- ./vendor/96qbhy/hyperf-auth/src/Authenticatable.php
# ↓ BEGIN/END 之间由 build-dist.sh 每次编译清空重写,勿手改(#[Inject] 类的代理 + 代理 trait)
# __PROXY_SOURCES_BEGIN__
- ./runtime/container/proxy/Core_Listener_FailToExecuteCrontabListener.proxy.php
- ./runtime/container/proxy/Core_Action_AbstractAction.proxy.php
- ./runtime/container/proxy/Core_Server_Response.proxy.php
- ./runtime/container/proxy/Core_Logic_AbstractLogic.proxy.php
- ./runtime/container/proxy/Core_Common_Cache.proxy.php
- ./runtime/container/proxy/Core_Service_AbstractService.proxy.php
- ./runtime/container/proxy/Core_Dao_AbstractDao.proxy.php
- ./runtime/container/proxy/Core_Exception_AuthExceptionHandler.proxy.php
- ./runtime/container/proxy/Core_Exception_AppExceptionHandler.proxy.php
- ./runtime/container/proxy/Core_Controller_AbstractController.proxy.php
- ./runtime/container/proxy/Core_Task_AbstractTask.proxy.php
- ./runtime/container/proxy/App_Middleware_ApiAuthMiddleware.proxy.php
- ./runtime/container/proxy/App_Controller_AbstractController.proxy.php
- ./vendor/hyperf/di/src/Aop/PropertyHandlerTrait.php
- ./vendor/hyperf/di/src/Aop/ProxyTrait.php
# __PROXY_SOURCES_END__
# composer autoload files(vendor/autoload.php 运行时会 require,编译会重复声明)
ignore:
- ./core/Common/Functions.php
- ./app/Util/Functions.php
- ./config/autoload/annotations.php
- ./config/autoload/aspects.php
- ./config/autoload/async_queue.php
- ./config/autoload/auth.php
- ./config/autoload/cache.php
- ./config/autoload/commands.php
- ./config/autoload/crontab.php
- ./config/autoload/databases.php
- ./config/autoload/dependencies.php
- ./config/autoload/devtool.php
- ./config/autoload/exceptions.php
- ./config/autoload/file.php
- ./config/autoload/listeners.php
- ./config/autoload/logger.php
- ./config/autoload/middlewares.php
- ./config/autoload/processes.php
- ./config/autoload/redis.php
- ./config/autoload/server.php
- ./config/config.php
- ./config/container.php
- ./config/routes.php
- ./config/routes/route_admin.php
- ./core/Command/MakeCrudCommand.php
# ↓ BEGIN/END 之间由 build-dist.sh 每次编译清空重写,勿手改(被代理接管的原类,同名冲突规避)
# __PROXY_IGNORE_BEGIN__
- ./core/Listener/FailToExecuteCrontabListener.php
- ./core/Action/AbstractAction.php
- ./core/Server/Response.php
- ./core/Logic/AbstractLogic.php
- ./core/Common/Cache.php
- ./core/Service/AbstractService.php
- ./core/Dao/AbstractDao.php
- ./core/Exception/AuthExceptionHandler.php
- ./core/Exception/AppExceptionHandler.php
- ./core/Controller/AbstractController.php
- ./core/Task/AbstractTask.php
- ./app/Middleware/ApiAuthMiddleware.php
- ./app/Controller/AbstractController.php
# __PROXY_IGNORE_END__