2011-01-06 5 views
14

파일에서 구성을 읽으려면 키 - 값 쌍이 필요합니다. 나는 Data.Map에서 show를 사용하여 시도해 보았고, 내가 원한 것처럼 보이지 않았다. 이것은 다른 많은 사람들이 이미했을지도 모르는 무언가 인 것 같습니다 그래서 표준 방법이 있고 라이브러리를 사용할 것인지 궁금합니다.하스켈에는 전형적인 설정 파일이나 프로퍼티 파일 형식과 라이브러리가 있습니까?

+0

taotree : 질문자에게 편집자에 대한 정보가있는 지 확신 할 수 없으므로 ... "최근에 컨 피규 레이터를 사용했는데 쉽게 할 수있었습니다. 시도해 보시기 바랍니다!" 정말 간단하고 완전한 기능입니다. –

답변

14
  1. hackage으로 이동하십시오.
  2. "packages"을 클릭하십시오.
  3. "config"로 검색하십시오.
  4. 알림 ConfigFile (TH), EEConfigtconfig입니다.
  5. Haddock 설명서 읽기
  6. 부부를 선택하고 작업을 구현하십시오.
  7. 결과에 대한 블로그이므로 나머지는 새로운 발견 전문 지식에서 배울 수 있습니다 (감사합니다!).

편집 : 최근에 configurator을 사용했습니다. 나는 당신이 그 하나를 시도하는 것이 좋습니다!

내가 또한 단지 Text.JSON 또는 사용할 수있는 YAML 라이브러리 중 하나를 사용하는 것이 좋습니다 것

+2

"문서 읽기"- 저는 haskell을 배울 때 매우 어려운 것을 발견합니다. –

+5

더 쉬워집니다. –

3

(나는 내 ​​자신의 충고를 따랐다 경우 네, 네. 난 당신이 모든 블로그를 만들었을 것입니다) (I은 JSON 자신을 좋아한다 그러나...).

4

Hackage의 구성 범주는 모든 관련 라이브러리를 나열해야합니다 : 지금 화제 나 자신을 연구 한 http://hackage.haskell.org/packages/#cat:Configuration

을, 나의 결론은 다음과 같습니다

  • configurator은 매우 훌륭하지만 그것은 단지 현재의 사용자가 편집 한 구성. 응용 프로그램은 구성을 읽으며 수정할 수 없습니다. 따라서 서버 측 응용 프로그램에 더 적합합니다.
  • tconfig는 AA 간단한 API를 가지고 있으며, 그것이 내가이 unmaintained의 실현 때까지 나는, 어쩌면 약간의 원료 원하는 것을 안쪽 앱을 사용하는 것이 정말 중요한 몇 가지 commits는 github에 적용되지만 hackage 패키지가 업데이트되지 않았 음을

다른 솔루션은 저에게 효과가있는 것처럼 보이지 않았습니다. API는 마음에 들지 않지만 모든 애플리케이션 (및 취향)은 다릅니다.

JSON을 사용하는 것은 좋은 해결책이 아닙니다. 적어도 Aeson을 사용하면 새 버전에 새 설정을 추가 할 때 이전 버전의 새 멤버가없는 이전 JSON이로드되지 않기 때문입니다. 또한, 나는 그 해결책을 약간 장황한 것으로 안다.

필자의 연구 결론은 필자 자신의 라이브러리 인 app-settings을 작성한 것으로, 가능한 한 숙신이없고 유형이 안전한 API로 키 - 값, 읽기 - 쓰기를 목표로합니다. 또한 필자가 제공 한 구성 범주에 대한 hackage 링크에서도 찾을 수 있습니다.

요약하면 configurator은 읽기 전용 구성의 표준입니다 (또한 매우 강력합니다. 예를 들어 가져 오기와 함께 구성 파일을 분할 할 수 있습니다). 읽기 - 쓰기에는 많은 작은 라이브러리가 있고 일부 라이브러리는 유지 보수되지 않았으며 실제 표준은 없다고 생각합니다.

관련 문제