-3

我有一个建立在IoC容器顶部的小型系统。 IoC容器能够通过使用反射(ReflectionClass,ReflectionMethod,...)自动解析所请求类的依赖关系,并将这些依赖关系注入到类的构造函数中。缓存依赖于PHP

的问题是,我已经看了很多帖子说,反射是一个非常缓慢的办法,并用它每一次运行是一个不好的做法。

因此,我要避免使用反射每次运行和我的想法是缓存的依赖或请求的类。

我将缓存一个类的依赖关系和类的代码的散列版本,这样我就会知道何时重新评估类的依赖关系(当类代码的哈希不匹配时被缓存的散列,换句话说,代码自从最后一次评估依赖后被修改)。

这是一个很好的方法或者我应该留在每一个反射运行的方法呢? 我主要关注的问题是,这种做法是否将有助于优化系统性能或者它只是慢下来?

感谢, 阿里克

回答

0

的问题是,我已经看了很多帖子说,反射是一个非常缓慢的办法

所以,你没有一个真正的问题。在你的网站出现性能问题之前,你为什么要关心?

过早优化是所有罪恶

+0

系统用作提供基本的工具为Web开发框架的根源。应用程序的复杂性和可能的​​“性能问题”主要取决于使用我的框架的开发人员(可能会或可能不是我)。 因此,我必须确保我的系统保持高效,并针对任何可能的情况进行了优化。 – areller

+1

很公平,这是不是从问题显而易见。在这种情况下,也许你可以在PHP-DI的源代码中找到有用的信息:https://github.com/PHP-DI/PHP-DI它使用自动装配(反射)并且有一个缓存机制(它使用Doctrine的缓存库) 。 –