작곡가-자동 로드하는 API/사용자 정의 설치 프로그램
-
21-12-2019 - |
문제
어떻게 프로그램에서 사용 가능 세트의 라이브러리 API 함수와 작곡가 설치된 라이브러리?
나는 라이브러리 함수 API 를 사용하여 인터페이스 라이브러리 내부 개체를 원하는 작곡가 자동으로 로드하는 API 를 사용할 수 있도록 후 설치할 필요 없이 엔드 개발자를 포함한 파일입니다.
현재 라이브러리에 의해 로드 그냥을 포함하여 __init__.php
와 그것을 포함한 API 기능과 자동 로더는 경우 필요합니다.
감사합니다!
해결책
작곡가 항상 필요로 할 것이 결국-개발자를 포함 하나의 파일 vendor/autoload.php
.할 수 없습니다 더 쉽게입니다.
하지만 무엇을 할 수 있는 것을 포함하여 __init__.php
선택 사항이기 때문에 통합의 작곡가 사용할 수 있는 자동 로더 대신 합니다.이것은 또한 작업에 대한 기능을 수 있는지 정말로 자동 작곡가 제공하는 항상 파일을 포함 되는 경우 그렇게 말했습니다.
그래서 결국 당신의 작곡가로 구성된 API 라이브러리는 다음과 같습니다.
{
"name": "yourvendorname/yourfancylibraryname",
"license": "any open source identifier",
"autoload": {
"psr-0": {
"Foo_Api": "src/files"
},
"classmap": [
"extra/folders_with_any_other_class_not_conforming_to_psr0_or_psr4"
],
"files": [
"functions/file_with_your_function_definitions.php"
]
}
}
모르겠는지에 대한 귀하의 수업 준수 PSR-0 또는 PSR-4,그러나 그들이 할 경우,당신은 모두 이익이 당신이 선언할 수 있습 자동으로 이러한 표준입니다.그렇지 않을 경우:Classmap 당신을 도움이 될 것입니다.
귀하의 함수 정의 것으로 파일 또는 파일에서 언급한"파일".
당신이 필요하지 않 자신의 자동 로더가 이상한 작곡가입니다.
물론 당신은 또한 단순히 언급은 이전 __init__.php
으로 파일을 포함할 파일"에서"그러나 이제는 별개의 라이브러리에서 다른 모든 클래스,수은 오히려 성능을 떨어뜨릴(작곡가는 이미 아주 좋은 자동 로더-할 필요가 없는 그들의 두)과실을 제외의 모든 클래스에서는 덤프로 더 빨리 작곡가 classmap 자동 로더.