pamald/pamald-composer

Collects lock diff information from composer.lock files.

Installs: 0

Dependents: 1

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 1

pkg:composer/pamald/pamald-composer

1.x-dev 2025-10-12 21:22 UTC

This package is auto-updated.

Last update: 2025-10-12 21:22:18 UTC


README

CircleCI codecov

pamald-composer is a PHP library that collects dependency information from composer.lock files. It is the Composer-specific implementation of the pamald/pamald project, enabling detailed analysis of Composer packages, PHP versions, PHP extensions, and APIs.

Project Goals

The library aims to collect and analyze Composer project dependencies from composer.lock and composer.json files in a structured way. This is particularly useful for:

  • Tracking dependency changes: Easily identify package updates, new dependencies, or removed packages
  • Security audits: Quick overview of package versions in use
  • CI/CD pipelines: Automated dependency analysis during build processes
  • Documentation: Generate accurate dependency lists for projects
  • Environment requirement verification: Identify PHP version and extension requirements
  • Prepare Git Commit Message: Automatically generate a commit message with dependency information

Why is it Useful?

1. Comprehensive Dependency Information

The library collects not only packages, but also:

  • PHP core version requirements
  • PHP extensions (ext-*)
  • API dependencies (e.g., composer-plugin-api)
  • Distinguishes between direct and transitive dependencies
  • Groups by production and development environments

2. Structured Data Model

Each dependency type has a dedicated class:

  • Platform - PHP version and extension requirements
  • ApiDependency - API dependencies
  • PackageDependency - Composer packages

3. Integration with the pamald Ecosystem

The library implements the pamald/pamald base library interfaces, making it easily integrable with other pamald tools (npm, yarn) and Robo tasks.

Usage

<?php

declare(strict_types = 1);

use Pamald\PamaldComposer\DependencyCollector;

$collector = new DependencyCollector();

$lock = json_decode(file_get_contents('composer.lock'), true);
$json = json_decode(file_get_contents('composer.json'), true);

$rightDependencies = $collector->collect($lock, $json);
// See pamald/pamald how to use this to generate a report.

Links