← ClaudeAtlas

composer-patternslisted

When to activate: Composer, composer.json, composer.lock, PSR-4 autoloading, semantic versioning constraints, dev dependencies, composer audit, private package repositories, PHP dependency management
Mattakushi432/Claude-Code-Skills-Custom-DevTools-Pack · ★ 0 · AI & Automation · score 73
Install: claude install-skill Mattakushi432/Claude-Code-Skills-Custom-DevTools-Pack
# Composer Patterns ## When to Use Setting up a PHP project's dependencies, authoring a library's `composer.json`, resolving version conflicts, or auditing dependencies for known vulnerabilities. ## Core Patterns ### composer.json Structure ```json { "name": "acme/billing", "description": "Billing domain package", "type": "library", "require": { "php": "^8.2", "ramsey/uuid": "^4.7" }, "require-dev": { "phpunit/phpunit": "^10.5", "phpstan/phpstan": "^1.10" }, "autoload": { "psr-4": { "Acme\\Billing\\": "src/" } }, "autoload-dev": { "psr-4": { "Acme\\Billing\\Tests\\": "tests/" } }, "minimum-stability": "stable", "prefer-stable": true } ``` ### Version Constraints ``` "laravel/framework": "^10.0" // allows 10.x, blocks 11.0 — caret = safe minor/patch updates "symfony/console": "~6.3.0" // allows 6.3.x only — tilde pins the last segment "vendor/pkg": "10.4.2" // exact pin — only when you must freeze a specific release ``` Prefer `^` for applications; use exact pins only for packages known to break on minor bumps. ### PSR-4 Autoloading ```json "autoload": { "psr-4": { "App\\": "app/", "Acme\\Shared\\": "packages/shared/src/" } } ``` Namespace `App\Services\OrderService` maps to `app/Services/OrderService.php`. Run `composer dump-autoload -o` after adding new namespaces or before a production deploy to generate the classmap (faster tha