싱글 톤 대신 데이터베이스 처리기 등의 종속성 주입을 사용하는 경우 - configs를 유지하는 것이 가장 좋습니다. 사용자 이름 암호 호스트 등. 클래스 내부에 보관하거나 컨테이너 클래스를 사용하거나 정적 구성 클래스를 사용하거나 파일을 사용합니까?종속성 주입 클래스 - 구성 저장 위치
답변
일반적으로 웹 루트 외부의 파일에 보관합니다.
의 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']);
....
, A의 설정 파일을 저장하는 배열을 반환
외부 설정 파일은 빠른 해결책이다 익명의 웹 사용자가 읽을 수있는 디렉토리 (그러나 쓰여지지는 않음).
정확한 사용 사례에 따라 다르므로 '적합'하기가 어렵습니다. 그러나 여기에 제가 아주 비슷한 문제가있을 때 제가 한 일이 있습니다.
소수의 웹 사이트에 대해 공유 라이브러리 시스템을 설정했습니다. 처음에는 데이터베이스 핸들러 만 제공했지만 ORM 레이어가 빠르게 추가되었습니다. 그 후 대부분의 웹 사이트가 직접 SQL에서 객체 기반 액세스로 다시 작성됨에 따라 추가 개체가 증가했습니다. 또한 공유 라이브러리의 오브젝트 및 다른 요소가 데이터베이스 설정과 같은 기본 설정과 함께 '모듈'에 수집되는 방법을 정의하는 데 사용되는 구성 라이브러리가있었습니다. 또한 호스트 별 설정에 사용 된 코드 트리 외부에 구성 파일을로드하는 기능도 지원했습니다.
ORM 계층의 개체가 자체적으로 구성해야하므로 (선언 할 때 정적 호출이 있었기 때문에) 이름을 지정하여 특정 데이터베이스를 요청하도록하는 것이 쉽지 않았습니다. 그런 다음 이러한 데이터베이스 정의가 모두 선언되었는지 확인하는 문제였습니다 (일반 구성 메커니즘 덕분에 무시할 수있었습니다).
(시간이 조금 걸렸지 만 우리는 데이터베이스를 분리해야하는 지점에 도달했을 때, 다른 데이터베이스에 떨어져 관련 객체를 가리 킵니다 매우 쉽게했고 모든 것이 작동 유지했다.)하면 대답하기 귀하의 질문 : 비록 구성이 나뉘어져있었습니다. 데이터베이스 호스트 이름, 사용자 이름 및 암호는 모두 코드 내 구성 영역의 한 위치에서 명명되고 정의되었습니다. 그러나 호스트 단위로 오버라이드 될 수 있습니다. 개체 별 설정은 개체가 선언 된 위치입니다. 그리고 그것은 데이터베이스 구성이 이름으로 지정된 곳이기도합니다.
- 1. 테스트 종속성 주입 구성
- 2. 클래스 집합에 종속성 주입
- 3. 종속성 주입/제어 반전을위한 일련 화 구성
- 4. Properties.Settings.Default에 종속성 주입 사용?
- 5. Unity : 종속성 주입
- 6. 제네릭 형식 종속성 주입 : 주입 방법 T
- 7. Wcf 종속성 주입
- 8. .Net의 종속성 주입?
- 9. 종속성 주입 순환 의존성을
- 10. Windows 서비스 종속성 주입
- 11. ASP.NET 모듈 종속성 주입
- 12. Servlet 3.0의 생성자 종속성 주입?
- 13. 종속성 주입을 사용하여 종속성 인젝터 주입
- 14. 종속성 주입 - 완전히 분리 된 구성 요소의 모범 사례?
- 15. 사용자 설정에 대한 종속성 주입 매개 변수입니까?
- 16. Linq to SQL에 종속성 주입
- 17. 종속성 주입 요청 당 컨테이너
- 18. Ninject를 사용하여 WPF에 종속성 주입
- 19. C# 종속성 주입 캐스트 문제
- 20. 종속성 주입, 초기화 후의 불변성
- 21. Spring.net에서 구조체 종속성 주입 변환
- 22. ASP.NET MVC3 종속성 주입 오해
- 23. Apache Commons IO에 종속성 주입 사용
- 24. 종속성 주입 및 .NET의 종속 어셈블리로드
- 25. struts2 작업에 주입 된 종속성 테스트
- 26. Java 클래스 필드 주입
- 27. NLog : 사용자 지정 대상에 대한 종속성 주입
- 28. 생성자 또는 속성 설정자를 통한 종속성 주입?
- 29. 종속성 주입 및 ASP.NET MVC에 문제가 있습니다
- 30. 종속성 주입 및 ASP.Net 멤버 자격 공급자
방금이 답변을 발견했으며이를 수행 할 수 있음을 지적 해 주셔서 감사합니다. 포함 된 파일에서 값을 반환 할 수 있는지 전혀 몰랐습니다. 그것은 설정에 완벽하며 내가 시작하는 프로젝트에서 내가하고있는 일입니다. – Compeek