質問

作曲家のインストールライブラリを使用して、ライブラリAPI関数のセットをオートロードする方法を教えてください。

私は、ライブラリの内部オブジェクトをインタフェースし、ComposerがAPIを自動的にロードしてファイルを含める必要なく、インストール後に利用可能にするために使用される機能APIを持つライブラリを持っています。

現在ライブラリは__init__.phpを含めてロードされ、必要に応じてAPI関数とオートローダが含まれます。

ありがとう!

役に立ちましたか?

解決

Composerは常にEnd-Developerに1つのファイルを含める必要があります。これはvendor/autoload.phpです。あなたはそれをより簡単にすることはできません。

しかし、Composerの統合により代わりにそのオートローダを使用することができるため、e__init__.phpを含むものはオプションです。これは、これも本当に自動ロードされないことができませんでした - Composerオファーは常にそう言われた場合にファイルを含めることができます。

SOその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を単に言及することもできますが、これは他のすべてのクラスからライブラリを分離するでしょう。それらのうちの2つを持つ必要はなく、すべてのクラスがさらに高速な作曲家のクラスマップオートローダにダンプされてから除外されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top