Вопрос

Как auto auto загрузовать набор функций библиотеки API с установленной библиотекой композитора?

У меня есть библиотека с функцией API, используемая для интерфейса внутренних объектов библиотек, и хотеть композитору автоматически загрузить API и сделать его доступным после установки, не требуя конца-разработчика, чтобы включить файл.

В настоящее время библиотека загружается только путем включения __init__.php, и он включает в себя функции API и автозагрузчик, если требуется.

Спасибо!

Это было полезно?

Решение

Composer всегда потребует концевого разработчика для включения одного файла, который является vendor/autoload.php. Вы не можете облегчить то, что.

Но то, что вы можете сделать, это сделать, включая __init__.php необязательно, потому что интеграция композитора позволяет вместо этого использовать этот автозагрузчик. Это также будет работать на функции, которые не могут быть на самом деле автозагрузки - Composer предлагает всегда включать файл, если его рассказывают.

Так что в конце конфигурации вашего композитора этой библиотеки 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, но если они сделают, вы и все выиграют, если вы можете объявить AutoLoader с этими стандартами. Если нет: ClassMap поможет вам.

Ваше определение функции будет загружено файлом или файлами, упомянутыми в «файлах».

Вам больше не нужен автозагрузчик для композитора.

Конечно, вы также можете просто упомянуть старый генеракодицетагCode в качестве файла, который будет включен в «файлы», но это отделит вашу библиотеку со всех других классов, вероятно, будет меньше исполнения (композитор уже имеет очень хороший автозагрузчик - Нет необходимости иметь два из них) и определенно исключит все ваши классы от сбрасывания в еще более быстрый автозагрузчик Composer Classer.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top