当使用数据库处理程序而不是单例的依赖注入 - 在哪里最好保留配置I.e.用户名密码主机等。保持在类内,使用容器类或使用静态配置类或使用文件?依赖注入类 - 在哪里存储配置
2
A
回答
3
我通常将它们保存在webroot之外的文件中。返回的数组
2
外部配置文件是一个快速的解决方案:
的config.php:
<?php
return array(
'database'=> array(
'host'=> 'localhost',
'dbname'=> 'name_of_db',
'username'=> 'myusername',
'password'=> 'mypassword',
),
);
test.php的:
<?php
$config = include('config.php');
mysql_connect($config['database']['host'], $config['database']['username'], $config['database']['password']);
....
理想情况下,存储在配置文件中目录可以被匿名网页用户读取(但不能写入)。
0
这很难得到'正确',因为它取决于确切的用例。但是,当我遇到类似的问题时,我就是这么做的。
我为少数网站设置了共享库系统。最初,它只提供了一个数据库处理程序,但很快就添加了一个ORM层。之后的大部分增长都是额外的对象,因为其中一个网站被从直接SQL重写为基于对象的访问。还有一个配置库,用于定义共享库中的对象和其他元素如何一起收集到“模块”以及数据库设置等默认设置中。它还支持在代码树之外加载用于每个主机设置的配置文件。
由于ORM层中的对象必须自己进行配置(在声明时有一个静态调用来执行此操作),所以扩展它以按名称请求特定数据库也是微不足道的。然后,确保所有这些数据库定义都被声明(并且由于通用配置机制而被覆盖)是一个问题。
(过了一段时间,但是当我们没有达到其分裂数据库的角度来看,这是非常容易点相关的对象到另一个数据库,一切都只是不停地工作。)
要回答但是,您的问题是:配置被拆分。数据库主机名,用户名和密码都是在代码配置区中的一个地方命名和定义的。但是他们可以在每个主机的基础上被覆盖。每个对象设置是对象声明的位置。这也是数据库配置按名称指定的地方。
相关问题
- 1. AngularJS依赖注入在哪里指定?
- 2. 在哪里存储配置
- 3. 依赖注入
- 4. 依赖注入
- 5. Angular 2依赖注入 - 如何知道在哪里插入依赖关系
- 6. MEF零件配置,在哪里存储?
- 7. 在VS2008中,配置存储在哪里?
- 8. ZF2依赖注入 - 注入表到类
- 9. XtextDocumentProvider的依赖关系注入配置
- 10. 依赖注入/配置对象
- 11. asp.net核心依赖注入配置
- 12. 依赖注入OR配置对象?
- 13. 依赖注入
- 14. Rails - 我在哪里存储配置值?
- 15. MVC依赖注入
- 16. 依赖注入:在对.NET核心注入配置2.0
- 17. RequireJS依赖覆盖可配置依赖注入
- 18. 如何在类库中为依赖注入配置StructureMap?
- 19. Laravel依赖注入基类
- 20. 依赖注入与非类
- 21. ASP.NET 5依赖注入 - 激活属性在哪里?
- 22. .NET MVC - 在哪里使用依赖注入?
- 23. Gradle:外部依赖关系存储在哪里?
- 24. Grails和GGTS在哪里存储Maven依赖关系?
- 25. 依赖注入akka.net
- 26. C#类依赖注入
- 27. Pojo类的依赖注入
- 28. 依赖注入
- 29. 使用依赖注入来注入依赖注入器
- 30. 依赖注入泛型类
我刚刚遇到这个答案,不得不说,谢谢你指出你可以做到这一点!我不知道你可以从包含的文件中返回值。这对于配置来说非常完美,而且正是我为我开始的一个项目所做的。 – Compeek 2012-01-05 04:21:35