CLI та assets

Concept Core надає консольні команди для перегляду зареєстрованих модулів і публікації статичних файлів у public/. Команди компонентів підключаються автоматично під час ComponentsServiceProvider::boot().

component:list

php bin/console.php component:list

Виводить таблицю: Name, Version, Class, Description — дані з методів name(), version(), description() кожного активного модуля.

Якщо компонент не з’являється — перевірте config/components.php і що ComponentsServiceProvider зареєстрований останнім у HTTP-провайдерах.

component:publish-assets

Копіює файли та каталоги з мапи, яку повертає ComponentInterface::assets():

// AuthAdminComponent::assets()
public function assets(): array
{
    return [
        $this->pathManager->toRelative($this->componentDir . '/Assets/admin-tokens.js') =>
            $this->pathManager->getRelative(PathName::PUBLIC, 'components/auth-admin/js/admin-tokens.js'),
    ];
}
php bin/console.php component:publish-assets
  • Шляхи відносні до кореня проєкту (PathManager::root())
  • Файл — copy; каталог — mirror з перезаписом
  • Усі активні компоненти обробляються за один запуск

Після зміни JS/CSS у Component/Assets/ повторіть команду перед деплоєм.

Власні команди модуля

Оголосіть класи в методі commands() компонента:

// AuthAdminComponent::commands()
public function commands(): array
{
    return [UserListCommand::class];
}

Команда — звичайний Symfony Console class, зареєстрований у контейнері (autowiring). Приклад:

// Commands/UserListCommand.php
final class UserListCommand extends Command
{
    protected function configure(): void
    {
        $this->setName('auth:user-list');
    }
    // execute() ...
}

Див. Створення команд.

Міграції та сидери

Шляхи з migrationPaths() і класи з seeders() додаються в registries ядра:

php bin/console.php migration:list
php bin/console.php db:migrate
php bin/console.php db:seed
php bin/console.php db:seed -c "Concept\Components\AuthAdmin\Database\Seeders\UserSeeder"

db:seed без опцій — усі зареєстровані сидери. Для одного сидера вкажіть повний FQCN у -c / --class (у лапках). Коротке ім’я класу не працює.

Глобальні міграції з config/migrations.php і компонентні — в одному списку.

Різні набори компонентів по середовищу

// config/dev/components.php — лише для APP_ENV=dev
return [
    'components' => [
        DebugBarComponent::class => DebugBarComponent::class,
    ],
];

ConfigServiceProvider зливає override з config/{APP_ENV}/ — у dev додається DebugBar без зміни production-списку.

Телеметрія компонентів

Під час ComponentsServiceProvider::boot() для кожного активного модуля записується TelemetryEvent::FRAMEWORK_COMPONENT_REGISTERED (контекст — клас компонента). Дані доступні через TelemetryCollector — див. Телеметрія.