本节书摘来自华章出版社《Hack与HHVM权威指南》一书中的第1章,第1.2.1节,作者 Owen Yamauchi,更多章节内容可以访问“华章计算机”公众号查看。
1.2.1 自动加载一切
类型检查器做出的一个关键假设就是,你的项目经过设置后,代码库中的任何类、函数或者常量都能够在你代码库的其他地方使用。不会尝试去分析任何include或者require语句,确保当前文件在使用时已经加载了其他文件。相反,它认为你已经完成了“自动加载”的相关设置。
这就简单地回避了两个问题,一是困难的静态分析的问题,另一个是现代的最佳实践的问题。“自动加载一切”的是被Composer(流行的PHP和Hack的包管理器)采取的方案。值得注意的是,自动加载并不是强制的,你可以在代码里面使用require或者include语句,关于这一点,类型检查器并不会产生问题。但是我们强烈建议你不要这么做,因为类型检查器不会保护你免受require或者include语句丢失问题的困扰。
PHP通过__autoload()和spl_autoload_register()提供类的自动加载功能,HHVM也支持这一点。HHVM提供了新的附加特性,就是可以自动加载PHP或者Hack的函数和常量,还可以自动加载Hack中的类型别名(参见3.2节的内容)。关于HHVM所特有的API,可以查看3.7节的内容。
时间: 2024-11-01 05:09:48