Composer مدیر وابستگی PHP است. این ابزار بسته‌های موردنیاز پروژه را از مخزن‌های تعریف‌شده دریافت می‌کند، نسخه‌ها را حل می‌کند و فایل‌های لازم برای بارگذاری خودکار کلاس‌ها را می‌سازد.

فایل‌های composer.json و composer.lock نقش‌های متفاوتی دارند: اولی محدوده وابستگی‌ها را تعریف می‌کند و دومی نسخه‌های دقیق نصب‌شده را ثبت می‌کند تا نصب در محیط‌های مختلف تکرارپذیر باشد.

این مفهوم در یک پروژه واقعی

فایل composer.lock نسخه دقیق بسته‌های نصب‌شده را نگه می‌دارد. در سرور Production معمولاً composer install برای نصب همان نسخه‌های قفل‌شده مناسب‌تر از update آزاد است.

نمونه کوتاه

composer install --no-dev --prefer-dist

تفاوت composer.json و composer.lock

فایل composer.json محدودیت نسخه پکیج‌ها را مشخص می‌کند و composer.lock نسخه دقیق وابستگی‌های حل‌شده را نگه می‌دارد. در اپلیکیشن‌ها معمولاً commit کردن فایل lock برای نصب تکرارپذیر توصیه می‌شود.