Скрипты Composer и автозагрузка
Определяйте скрипты в composer.json и включайте автозагрузку классов
«Скрипты Composer и автозагрузка» — бесплатный урок PHP Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения PHP Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс PHP Academy содержит 4 уроков всего.
Сценарии в composer.json
Ключ scripts определяет именованные команды оболочки, которые запускаются через composer run-script NAME или просто через composer NAME.
Определение сценария
Сценарии представляют собой массивы команд оболочки или обратных вызовов статических методов PHP.
// composer.json
{
"scripts": {
"test": "vendor/bin/phpunit",
"lint": "vendor/bin/phpcs src/",
"cs-fix": "vendor/bin/phpcbf src/"
}
}Запуск сценариев
Выполните сценарий, указав после composer его имя в сокращённой форме.
$ composer test
$ composer run-script lintСценарии на основе событий
Composer вызывает события жизненного цикла, к которым можно привязать обработчики: post-install-cmd, post-update-cmd, post-autoload-dump.
// composer.json
{
"scripts": {
"post-install-cmd": ["php artisan migrate --force"]
}
}Объединение сценариев
Сошлитесь на другой сценарий с помощью @script-name внутри массива сценариев.
// composer.json
{
"scripts": {
"build": ["@lint", "@test"]
}
}Типы ключа автозагрузки
Раздел autoload поддерживает три типа: psr-4, classmap и files.
// composer.json
{
"autoload": {
"psr-4": { "App\\": "src/" },
"classmap": ["database/"],
"files": ["src/helpers.php"]
}
}autoload-dev
autoload-dev добавляет правила автозагрузки только для локальной среды и среды тестирования — например, для базовых классов тестов, которые не должны поставляться вместе с пакетом.
Оптимизация автозагрузчика
Выполните composer dump-autoload --optimize (или -o), чтобы создать статическую карту классов для более быстрого разрешения классов. Это особенно полезно в рабочей среде.
--classmap-authoritative
composer dump-autoload -a ищет только в карте классов и никогда не использует запасной вариант со сканированием файловой системы PSR-4. Используйте этот режим, если все классы сопоставлены.
Кэш APCu
composer dump-autoload --apcu использует APCu для кэширования сопоставлений классов и файлов в памяти между запросами — это значительно ускоряет работу загруженных серверов.
Практическая настройка сценариев CI
Типичные сценарии проекта: test, cs (стандарты оформления кода), analyse (PHPStan/Psalm), build (объединяет все три).
Итоги
Сценарии Composer автоматизируют повторяющиеся задачи. Раздел автозагрузки связывает пространства имён с файлами. Используйте dump-autoload -o в рабочей среде для максимальной производительности.
Быстрая проверка
Какое событие срабатывает после завершения «composer install»?
Часто задаваемые вопросы
Урок «Скрипты Composer и автозагрузка» бесплатный?
Да — полный текст урока «Скрипты Composer и автозагрузка» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс PHP Academy, подпишись на CoddyKit PRO. Курс PHP Academy содержит 4 уроков всего.
Чему я научусь в уроке «Скрипты Composer и автозагрузка»?
Определяйте скрипты в composer.json и включайте автозагрузку классов Ты практикуешь PHP Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать PHP Academy?
Предыдущий опыт не требуется. PHP Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Скрипты Composer и автозагрузка»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке PHP Academy?
Да. Каждый урок PHP Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Установка и инициализация Composer
- Подключение и обновление пакетов
- Знакомство с composer.lock
- Скрипты Composer и автозагрузка