这是一个由两部分组成的问题,尽管两部分都是密切相关的。自动加载与工厂和自动加载危险
我为我们的网站创建了一个页面装饰器API,并将装饰器类的自动加载器放入我们的站点范围内的包含文件中。另一位开发人员认为这是一个非常糟糕的想法,因为在任何地方使用自动加载器都是非常危险的,会导致奇怪的错误。例如,将一个对象序列化到会话中,并且如果其中一个自动加载的类具有相同的名称和一个__wakeup()
,它将会运行(尽管我尝试过这样并且无法再现它)。自动加载是否危险是真的,如果是这样,它有什么潜在危险,如何避免它们?我不使用__autoload()
,而是使用spl_autoload_register()
的自动加载功能。
他反对使用自动加载的另一个说法是,它比直接包含文件要慢,这可能很明显。我争辩说,为了保证装饰器能够在每个页面上工作,你必须包含每个装饰器类,所以他的建议是创建一个工厂类来获取包含并创建你想要的类。我可以继续下去,但我听到很多人宣称自动加载的优点,并说它使任何应用程序更快。我非常喜欢它,但我仍然想要做到最好,最快的。有什么建议么?