2011-02-02 5 views
3

Codeigniter 2.0의 최신 복사본을 사용하여 응용 프로그램을 빌드하고 있습니다. 내 응용 프로그램은 동적이며 사용자 정의 CMS와 비슷합니다. 내가 말할 수있는 것 같습니다. 나는 데이터베이스 테이블에는 다음 필드로 '설정'이라고 한 :Codeigniter 데이터베이스 기반 구성 설정

  • ID
  • 이름
  • 값 기본적으로

내가 현재 특정 설정을 검색 도우미 함수를 사용하고있는 중이 야 사이트 이름이나 현재 테마와 같은 설정 테이블에서. 그러나 나는 아마도 데이터베이스에 너무 많은 설정을 가져 오기위한 데이터베이스 호출의 일정한 양이라고 생각하기 시작했습니다.

내 응용 프로그램에 대한 설정을 데이터베이스에서 검색 한 다음이를 구성 파일에 추가하는 방법이 있습니까? 나는 Mojomotor가 비슷한 것을했지만 CI 2.0 어플리케이션이라는 것을 알았지 만, 그렇게하기위한 코드는 훨씬 간단하고 쉬운 편이다.

데이터베이스의 설정이 변경되고 구성 파일을 업데이트하는 경우 모든 항목을 자주 확인할 수 있어야합니다. 데이터베이스의 부담이 적을수록 좋습니다.

+0

누가 데이터베이스 값을 변경하고 그 사람이 구성 파일을 변경하지 못하는 이유는 무엇입니까? – Dolph

+2

@Dolph - CMS를 구축 할 때 기술 전문가가 아닌 사용자가 텍스트 편집기 및 FTP 및 구문 문제를 해결하지 않고도 웹 페이지에서 직접 설정을 변경할 수 있기를 원합니다. – Summer

+1

@ 돌프 - 여름이 옳습니다. 설정 파일을 편집하는 것이 이상적 일지 모르지만 간단한 config.php 파일을 열고 따옴표 사이의 값을 변경 한 다음 저장하는 것과 같은 간단한 지침을 이해할 수없는 사람들이 있습니다. 어떤 사람들은 그런 종류의 물건을 이해할 수 없으며, 사람들은 자신의 CMS 안에서 설정을 변경하고 추가 할 수 있다는 것에 익숙합니다. –

답변

5

중간에 가장 좋은 해결책이 있습니다. DB 호출이 0이 아닙니다. 설정 당 하나의 DB 호출이 아닙니다. 페이지 당 하나의 DB 호출을 대신로드하고 나머지 앱에서 필요할 때 참조 할 수있는 레코드 세트/개체의 모든 설정을 가져옵니다.

+2

실제로 천재 아이디어. 그래서 $ settings이라는 공용 변수를 만들어 배열로 만든 다음, 내 생성자에서 모든 설정을 가져 와서 MY_Controller의 배열에 넣으면 사이트의 다른 모든 컨트롤러가 확장되어 다음과 같은 설정을 얻을 수 있습니다. $ this-> settings [ 'site_theme']이 경우 테마가 'icy'로 불리면 얼음이 돌아옵니다. 설정 테이블에 행이 50 개가 넘지 않아서 성능에 미치는 영향이 적을 것이라고 생각합니다. 아마도 8 개 정도의 행이 가능할 것입니다. –

관련 문제