Можно ли проверить bundle для symfony без его установки в проект? Если да то как, ведь в нем нет kernel и bin/console
@sniperweek Попробуйте что то вроде такого:
symfony new myproject --full
.composer require vendor/bundle-name
.test.php
и подключите в нем autoload-файл из вашего проекта:
1 2 3 |
<?php require __DIR__.'/myproject/vendor/autoload.php'; |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
<?php use Symfony\Component\Dotenv\Dotenv; use Symfony\Component\HttpKernel\Kernel; use Symfony\Component\Config\Loader\LoaderInterface; class TestKernel extends Kernel { public function registerBundles(): iterable { yield new Symfony\Bundle\FrameworkBundle\FrameworkBundle(); yield new Vendor\BundleName\BundleName(); } public function getCacheDir(): string { return __DIR__.'/cache/'.spl_object_hash($this); } public function getLogDir(): string { return __DIR__.'/log'; } public function registerContainerConfiguration(LoaderInterface $loader): void { $loader->load(__DIR__.'/myproject/config/packages/*.yaml'); } public function boot(): void { parent::boot(); } } $kernel = new TestKernel('test', true); $kernel->boot(); |
В этом коде мы создали класс TestKernel
, который наследует класс Symfony\Component\HttpKernel\Kernel
и содержит необходимую конфигурацию для загрузки bundle. В registerBundles()
мы регистрируем ядро Symfony и ваш bundle, а в registerContainerConfiguration()
загружаем конфигурационные файлы проекта.
1 2 3 4 |
<?php $bundle = $kernel->getContainer()->get('vendor_bundle_name'); // Здесь проверяем ваш bundle |
Обратите внимание, что некоторые bundle могут требовать зависимостей или настроек, которые необходимо установить или сконфигурировать до использования.