symplify/composer-json-manipulator

This package is abandoned and no longer maintained. No replacement package was suggested.

Package to load, merge and save composer.json file(s)

Maintainers

👁 TomasVotruba

Package info

github.com/deprecated-packages/composer-json-manipulator

pkg:composer/symplify/composer-json-manipulator

Statistics

Installs: 7 301 057

Dependents: 7

Suggesters: 0

Stars: 38

11.1.18 2022-12-16 14:04 UTC

Requires (Dev)

Suggests

None

Provides

None

Replaces

None

MIT fca5a1c231e4b0483f2ea0f2c3a38fc9e0a000eb

This package is auto-updated.

Last update: 2022-12-17 14:47:43 UTC


README

👁 Downloads total

  • load to composer.json to an object
  • use handful methods
  • merge it with others
  • print it back to composer.json in human-like format

Install

composer require symplify/composer-json-manipulator

Add to your 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);
};

Usage

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());
 }
}

Report Issues

In case you are experiencing a bug or want to request a new feature head over to the Symplify monorepo issue tracker

Contribute

The sources of this package are contained in the Symplify monorepo. We welcome contributions for this package on symplify/symplify.