{"id":19280070,"url":"https://github.com/jinyphp/config","last_synced_at":"2025-06-11T03:34:04.398Z","repository":{"id":56999271,"uuid":"136707302","full_name":"jinyphp/config","owner":"jinyphp","description":"string data format for laravel","archived":false,"fork":false,"pushed_at":"2024-09-29T08:28:13.000Z","size":69,"stargazers_count":4,"open_issues_count":0,"forks_count":3,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-10-28T23:12:55.433Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://www.jinyphp.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/jinyphp.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-06-09T08:58:42.000Z","updated_at":"2024-09-27T07:37:21.000Z","dependencies_parsed_at":"2024-05-29T10:42:24.123Z","dependency_job_id":null,"html_url":"https://github.com/jinyphp/config","commit_stats":{"total_commits":17,"total_committers":1,"mean_commits":17.0,"dds":0.0,"last_synced_commit":"dfdb4fa030326e71f8f4a88b3280074b6fb4a617"},"previous_names":[],"tags_count":18,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyphp%2Fconfig","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyphp%2Fconfig/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyphp%2Fconfig/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jinyphp%2Fconfig/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jinyphp","download_url":"https://codeload.github.com/jinyphp/config/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":223883654,"owners_count":17219270,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-09T21:16:47.786Z","updated_at":"2024-11-09T21:16:48.676Z","avatar_url":"https://github.com/jinyphp.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Config\n본 코드는 `PHP`언어로 작성된 `composer` 페키지 입니다. 또한 `jinyPHP` 프레임워크와 같이 동작을 합니다.\n지니PHP는 MVC 패턴의 웹프레임워크 입니다.\n\n## 데이터직렬화\n데이터를 표현하는 방법은 다양합니다. 다양한 데이터를 문자열화 하여 파일로 저장 관리 할 수 있습니다.\n이를 `데이터 직렬화 양식`이라고 합니다.\n\n`jiny/confg` 페키지는 다양한 유형의 데이터 파일을 읽어 처리할 수 있습니다.\n\n* php array\n* ini\n* yaml\n\n\n## 인스턴스 생성\n`jiny/confg` 페키지는 클래스를 기반의 객체지향 코드로 작성이 되어 있습니다. 따라서, 사용하기 위해서는 먼저 클래스의 인스턴스를 생성하여 내부 매소드와 프로퍼티에 접근이 가능합니다.\n\n보통 클래스의 인스턴스들은 `new` 키워드를 통하여 객체를 생성이 가능합니다. 하지만, 이렇게 객체를 생성하게 되면 여러개의 인스턴스를 생성할 수 있기 때문에 설정파일에 대한 특정 용도외 충돌이 됩니다. 보통 설정파일은 어플리케이션에서 한개만 존재하여 여러곳에서 사용을 해야 하기 때문입니다.\n\n따라서 `jiny/confg` 페키지는 일반적인 `new`키워드로 인스턴스를 생성하는 방식을 적용하지 않습니다. 디자인 패턴중에 `싱글턴` 방식을 이용하여 어플리케이센에서 한개의 인스턴스만 생성 관리 되도록 유지하고 있습니다.\n\n인스턴스를 생성하기 위해서 전용 인스턴스를 생성 반환하는 메소드를 지원합니다. 다음과 같이 정적 메소드 형태로 호출을 하여야 합니다.\n\n```php\n\\Jiny\\Config::instance()\n```\n\n## 드라이버\n`jiny/confg` 페키지는 여러 종류의 설정파일을 처리 할 수 있도록 드라이버 개념을 도입하였습니다. 처음 페키지의 인스턴스를 싱글턴 방식으로 생성할때 필요한 드라이버 인스턴스 객체를 자동으로 생성을 합니다.\n\n\n## 초기 환경파일\n초기 시스템에 대한 환경파일을 읽어 오도록 합니다.\n초기 환경파일은 `.env.php`파일을 참고로 합니다.\n\n\n## 커스텀 설정파일\n어플리케이션에서 커스텀 환경 설정파일을 읽어 올 수 있습니다.\n\n\n## 설정파일 등록 및 로드\n설정파일을 등록하여 로드할 수 있습니다.\n\n\n## 헬퍼함수\n설정파일은 어플리케이션에서 다양한 곳에서 사용이 가능합니다. 어느곳에서 든지 설정파일을 쉽게 접근하여 사용할 수 있도록 전용 헬퍼 함수를 제공하고 있습니다.\n\n\n### 값을 읽어오기\n설정파일의 데이터는 다중배열 형태로 구성되어 있습니다. 이를 접근하기 위해서는 점을 이용하여 구분하면 됩니다.\n\n```php\n\\jiny\\conf(\"값.값.값\");\n```\n\n\n### 값 설정하기\n읽어온 설정 데이터 배열에 값을 설정할 수 있습니다. 값을 설정할때는 두번재 인자로 키와 값을 같이 설정하면 됩니다.\n\n```php\nconf(\"키.키.키\", \"값\");\n```\n\n\n### 인스턴스 얻기 \n헬퍼함수의 인자값을 전달하지 않는 경우에는 `jiny/config`의 인스턴스를 얻을 수 있습니다. 이렇게 얻은 인스턴스를 통하여 내부 매서드를 실행할 수 있습니다.  \n\n```php\n$Config = \\jiny\\conf();\n$Config-\u003edata(\"ENV.path.conf\");\n```\n\n\n## 업그레이드 및 정보\n`jiny/config` 패키지는 현재 계속 기능을 개선하고 있습니다. 본 페키지 개발에 기여를 원하시는 경우 언제든제 코드를 작성하여 풀리퀘스트를 주시면 감사합니다.\n보다 자세한 내용은 hojin.io 에서 확인이 가능합니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinyphp%2Fconfig","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjinyphp%2Fconfig","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjinyphp%2Fconfig/lists"}