tacman / composer-json-manipulator
用于加载、合并和保存composer.json文件的工具包
11.4
2023-12-03 20:42 UTC
Requires
- php: >=8.1
- nette/utils: ^3.2 || ^4.0
- symfony/config: ^6.3 | ^7.0
- symfony/dependency-injection: ^6.3 | ^7.0
- symfony/filesystem: ^6.3 | ^7.0
Requires (Dev)
- phpunit/phpunit: ^9.5.26
README
此存储库的原始代码已标记为过时,我使用此分支仅是为了避免看到过时警告。
查看https://github.com/deprecated-packages/composer-json-manipulator
- 将
composer.json
加载为对象 - 使用大量方法
- 将其与其他对象合并
- 以人类可读的格式将对象打印回
composer.json
安装
composer require tacman/composer-json-manipulator
添加到你的config/config.php
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Symplify\ComposerJsonManipulator\ValueObject\ComposerJsonManipulatorConfig; return static function (ContainerConfigurator $containerConfigurator): void { $containerConfigurator->import(ComposerJsonManipulatorConfig::FILE_PATH); };
用法
namespace App; use Symplify\ComposerJsonManipulator\ComposerJsonFactory; class SomeClass { /** * @var ComposerJsonFactory */ private $composerJsonFactory; public function __construct(ComposerJsonFactory $composerJsonFactory) { $this->composerJsonFactory = $composerJsonFactory; } public function run(): void { // ↓ instance of \Symplify\ComposerJsonManipulator\ValueObject\ComposerJson $composerJson = $this->composerJsonFactory->createFromFilePath(getcwd() . '/composer.json'); // Add a PRS-4 namespace $autoLoad = $composerJson->getAutoload(); $autoLoad['psr-4']['Cool\\Stuff\\'] = './lib/'; $composerJson->setAutoload($autoLoad); $this->jsonFileManager->printComposerJsonToFilePath($composerJson, $composerJson->getFileInfo()->getRealPath()); } }