При установке Symfony, по умолчанию, создаются базовые файлы конфигурации, такие как config.yaml
или security.yaml
. Однако, в определенных случаях, вы можете захотеть запретить создание этих файлов при установке Symfony. Существуют несколько подходов к достижению этой цели.
1. Использование опций команды new
. При установке Symfony с помощью composer create-project symfony/skeleton
, вы можете использовать опцию --no-scripts
, чтобы отключить выполнение скриптов после установки. Например:
composer create-project symfony/skeleton myproject --no-scripts
Это предотвратит создание файлов конфигурации, поскольку их создание осуществляется с помощью скриптов.
2. Использование файла composer.json
. Вы можете изменить содержимое файла composer.json
, чтобы добавить директиву "scripts": []
в раздел "extra"
. Вот пример:
{ "name": "myproject", "require": { "symfony/skeleton": "^5.0" }, "extra": { "symfony": { "allow-contrib": false, "scripts": [] } } }
Это также предотвратит выполнение скриптов после установки и, следовательно, создание файлов конфигурации.
3. Использование событий Composer. Composer предоставляет механизм событий, который позволяет выполнять действия перед и после выполнения определенных команд. Вы можете создать свой собственный плагин Composer, который будет обрабатывать событие post-create-project-cmd
и удалять нежелательные файлы конфигурации после установки Symfony. Вот пример такого плагина:
<?php use ComposerScriptEvent; class RemoveConfigFiles { public static function removeConfigs(Event $event) { $vendorDir = $event->getComposer()->getConfig()->get('vendor-dir'); $configFiles = [ $vendorDir.'/symfony/webpack-encore-bundle/Resources/config/config.yaml', // Другие нежелательные файлы конфигурации ]; foreach ($configFiles as $file) { if (file_exists($file)) { unlink($file); } } } }
Этот плагин должен быть зарегистрирован в файле composer.json
:
{ "name": "myproject", "require": { "symfony/skeleton": "^5.0" }, "scripts": { "post-create-project-cmd": "RemoveConfigFiles::removeConfigs" } }
Таким образом, при выполнении команды composer create-project symfony/skeleton myproject
, нежелательные файлы конфигурации будут удалены после установки.
В любом случае, помните, что удаление базовых файлов конфигурации может привести к некорректной работе Symfony. Если вы хотите полностью исключить возможность создания этих файлов в будущем, рекомендуется использовать один из описанных подходов.