在 PHP MVC 项目中,我有一些模型类从 RESTful Web 服务加载数据,这需要 API key 。我想将必要的 API key 存储在我的应用程序的中央配置文件中。
要为我的类获取 API key ,哪种方法被认为是最好的?
- 将值放入
$GLOBALS
中,以便可以在使用它的模型类中直接访问它。 - 在实例化时将值传递给类。
方法 #2 似乎最适合 OOP 和代码重用,但方法 #1 非常方便。我通常使用方法 #2,但我想知道方法 #1 是否通常被认为是 $GLOBALS
的可接受使用,即使在 OOP MVC 环境中也是如此。
最佳答案
Symfony 1.4 使用 sfConfig::get('my_value'),这就像你的第一个选项,只是包装在一个对象中。
Symfony 2使用dependency injection减少耦合,这就像你的第二个选择。请务必查看this link有关依赖注入(inject)的良好解释。
但是,减少耦合会增加复杂性。所以,这确实是一个权衡。我认为要点是在你的申请中保持一致。无论使用哪种方法都可以更改,只要您在使用上保持一致即可。
我会选择依赖注入(inject)。如果您一直使用它,它不仅易于使用,而且更有可能产生可重用代码。计算机中最慢的部分是开发人员,因此我尝试尽可能构建高质量、可重用的组件。我还应该注意到,如果您选择通过添加单元测试来提高代码的质量和一致性,那么使用依赖项注入(inject)可以使构建单元测试变得非常容易。
希望有帮助...
关于php - 类选项值的最佳实践位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8117132/