自动加载机功能
2022-08-30 09:11:04
上周,我了解到,通过编写一个函数,可以将类包含在您的项目中。然后我了解到使用自动加载机不仅是一种技术,也是一种模式。__autoload()
现在我在我的项目中使用自动加载机,我发现它非常有用。我想知道是否有可能对函数做同样的事情。忘记包含正确的PHP文件及其中的函数可能会非常有用。
那么,是否可以创建一个功能自动加载机?
上周,我了解到,通过编写一个函数,可以将类包含在您的项目中。然后我了解到使用自动加载机不仅是一种技术,也是一种模式。__autoload()
现在我在我的项目中使用自动加载机,我发现它非常有用。我想知道是否有可能对函数做同样的事情。忘记包含正确的PHP文件及其中的函数可能会非常有用。
那么,是否可以创建一个功能自动加载机?
没有函数自动加载程序。您有四个现实的解决方案:
将所有函数包装到命名空间类中(上下文相关)。假设您有一个名为 .您可以将其添加到作为静态函数调用的类中。因此,与其打电话,不如打电话。然后,您将使用这些命名空间类。string_get_letters
StringFunctions
string_get_letters()
StringFunctions::get_letters()
__autoload
预加载所有功能。由于您使用的是类,因此不应该有那么多函数,因此只需预加载它们即可。
在使用函数之前加载函数。在每个文件中,将在该文件中使用的函数文件。require_once
首先不要使用函数。如果你正在开发OOP代码(看起来你无论如何都是这样),那么应该几乎不需要函数。所有你需要一个(或多个)函数的东西,你都可以以OO的方式构建,避免对函数的需求。
就个人而言,我建议使用1,2或4,具体取决于您的确切需求以及代码库的质量和大小...
如果在项目中使用 Composer,则可以将 files 指令添加到自动加载部分。
这将在自动加载器中实际生成require_once,但它感觉就像真正的自动加载,因为您不必处理它。
虽然它不是延迟加载。
取自 Assetic 的示例:
"autoload": {
"psr-0": { "Assetic": "src/" },
"files": [ "src/functions.php" ]
}