Php spl\u自动加载\u寄存器()性能问题?
我想我对Php spl\u自动加载\u寄存器()性能问题?,php,spl-autoload-register,Php,Spl Autoload Register,我想我对spl\u autoload\u register()overautoload()的优点有所欠缺。 从我读到的内容来看,spl\u autoload\u register()的优点是它可以注册多次,然后当我实例化一个类时,它将通过所有注册的自动加载函数运行并加载正确的函数,这将给我更大的灵活性,并允许我使用不同的函数加载类或库 但是,如何将其视为在单个注册函数上运行多个注册函数的最佳实践呢 (或者我根本就不明白)当然,如果你有几个注册的自动加载器,速度会慢一些。然而,它更适合现代软件开发
spl\u autoload\u register()
overautoload()
的优点有所欠缺。
从我读到的内容来看,spl\u autoload\u register()
的优点是它可以注册多次,然后当我实例化一个类时,它将通过所有注册的自动加载函数运行并加载正确的函数,这将给我更大的灵活性,并允许我使用不同的函数加载类或库
但是,如何将其视为在单个注册函数上运行多个注册函数的最佳实践呢
(或者我根本就不明白)当然,如果你有几个注册的自动加载器,速度会慢一些。然而,它更适合现代软件开发的实际情况,在这种情况下,来自不同供应商的许多库通常都包含在同一个项目中。一次只能定义一个可用作自动加载器的“自动加载”功能。但是,每个包可以单独将自动加载器附加到
spl\u autoload
链,而不会覆盖其他包注册的自动加载器。这就是重点;它使自动加载器的使用更加灵活,而不需要每个人都担心踩到别人的脚。正如其他人在这里所说:spl\u autoload\u register
允许您同时实现多个自动加载器,这使得处理依赖项变得更加容易。其他好处包括:
- 控件:您可以组织自动加载堆栈:如果希望自动加载程序是第一个被调用的,则可以调用
,将spl\u autoload\u register
作为第三个参数传递,该参数在自动加载程序之前true
- 行为:您可以注册一个自动加载器,如果它由于任何原因无法注册自动加载器,就会抛出一个异常。这使得调试时的工作更轻松
- 动态自动加载器:您可以注册自动加载器,也可以注册自动加载器,或者只需检查注册的自动加载器
spl\u autload\u register
不是一个单一的函数,它是自动加载系统的一部分,包括spl\u autload\u函数(查看已注册的自动加载程序)和spl\u autoload\u unregister
以删除任何不再需要的自动加载程序。
如果您愿意,您还可以通过注销自动加载器并附加/预加自动加载器来重新组织自动加载器堆栈,以最适合您的需要。这被认为是更好的方法,因为它允许您与注册自己的自动加载器的库一起工作。。。如果使用具有自动加载器的库,而不使用spl_autoload_register,则必须重写所有这些库自动加载器,以反映您自己的单个自动加载器逻辑