پی اچ پی

تفاوت composer install و update و نقش فایل composer.lock

کار composer.lock را بفهمید، نسخهٔ ثبت‌شده را با install بازسازی کنید و تغییر عمدی وابستگی‌ها را با update بررسی کنید.

رایکت رایکت ۳ دقیقه مطالعه ۰ دیدگاه
تفاوت composer install و update و نقش فایل composer.lock

در پروژهٔ PHP، با وجود composer.lock، فرمان composer install نسخه‌های ثبت‌شده را نصب می‌کند. composer update دوباره وابستگی‌ها را بر اساس محدودیت‌ها حل می‌کند و قفل را می‌نویسد. برای بازسازی نسخهٔ آزمایش‌شدهٔ برنامه، فایل قفل همان نسخه را همراه کد نگه دارید و نصب را در محیط آزمایشی بررسی کنید.

۱. سه جزء وابستگی را بشناسید

جزء کاربرد
composer.json نام و محدودهٔ نسخهٔ وابستگی‌ها و تنظیمات پروژه.
composer.lock نسخهٔ حل‌شدهٔ وابستگی‌های مستقیم و غیرمستقیم در یک اجرای مشخص.
vendor/ بسته‌های نصب‌شده و فایل‌های تولیدی مانند autoload.php.

در یک برنامهٔ قابل استقرار، فایل قفل را همراه تغییرات کد در کنترل نسخه ثبت کنید. وقتی کتابخانه می‌سازید، برنامهٔ مصرف‌کننده گراف وابستگی خودش را حل می‌کند. قفل کتابخانه می‌تواند برای توسعهٔ خود کتابخانه مفید باشد، ولی نسخه‌های مصرف‌کننده را تحمیل نمی‌کند.

ارتباط محدودیت نسخه، فایل قفل و پوشهٔ vendor
نمودار مفهومی سه جزء وابستگی در یک برنامهٔ PHP.

۲. با قفل موجود نسخه را بازسازی کنید

  1. در کپی آزمایشی نسخهٔ موردنظر، وجود composer.json و composer.lock همان بازبینی را کنترل کنید.
  2. نسخهٔ PHP و Composer را در همان محیط اجرا بررسی کنید. ابتدا فایل پروژه، scripts و افزونه‌های مجاز آن را بازبینی کنید.
  3. برای مرور تغییرات پیشنهادی بدون نصب، فرمان پایین را اجرا کنید. بررسی نهایی به نصب و آزمون برنامه در محیط آزمایشی نیاز دارد.

composer install --dry-run --no-plugins --no-scripts

دو گزینهٔ آخر برای مرور ایزوله مفیدند. فرایند واقعی پروژه ممکن است به افزونه یا اسکریپت مورد اعتماد نیاز داشته باشد. قبل از فعال‌کردن آن‌ها محتوا و نیازشان را بررسی کنید. اگر قفل موجود نباشد، install می‌تواند وابستگی‌ها را حل کند و قفل تازه بسازد. ابتدا مشخص کنید باید قفل از کنترل نسخه برگردد یا عمداً برای پروژه‌ای تازه ساخته شود.

۳. تغییر نسخه را در شاخهٔ جدا بررسی کنید

  1. علت تغییر را مشخص کنید. برای نمونه، رفع نقص مشخص یا سازگاری با نسخهٔ جدید PHP.
  2. محدودیت نسخه را مرور کنید و در شاخهٔ آزمایشی به‌روزرسانی بستهٔ موردنظر را بررسی کنید. به‌روزرسانی جزئی می‌تواند به تغییر بعضی وابستگی‌های آن نیاز داشته باشد.
  3. تفاوت composer.json و composer.lock را بخوانید، نیازمندی محیط را بررسی کنید و آزمون برنامه را اجرا کنید. سپس جفت کد و قفل تأییدشده را به فرایند انتشار پروژه بسپارید.

برای برگشت، نسخهٔ کامل قبلی شامل کد، فایل قفل و artifact وابستگی‌ها را از مسیر استقرار موجود برگردانید. فقط جایگزینی فایل قفل، پوشهٔ vendor قبلی را بازسازی نمی‌کند.

۴. نتیجهٔ آزمایش محلی

در یک مخزن تمرینی، بستهٔ demo/client نسخهٔ ۱ به demo/core ^1.0 نیاز داشت. Composer نسخهٔ ۱٫۰٫۰ هر دو بسته را در قفل ثبت کرد. اجرای install بعدی روی همان پروژه، محتوای فایل قفل را بایت به بایت حفظ کرد.

اگر هنگام install هشدار ناسازگاری composer.json و composer.lock می‌بینید، اختلاف تغییرات همان نسخه را بررسی کنید. اجرای update گسترده برای خاموش‌کردن هشدار می‌تواند تغییرات بیشتری وارد کند.

۵. مطالعهٔ مرتبط

۶. منابع و روش بررسی

منابع در ۱۳ نوامبر ۲۰۲۶ بررسی شدند. مثال در پوشهٔ محلی ویندوز با PHP ۸.۵.۱۲ و Composer ۲.۱۱.۲ اجرا شد. مخزن تمرینی بستهٔ واقعی دانلود نمی‌کند و اجرای اسکریپت و افزونه در آزمایش غیرفعال بود.

این مطلب برایتان مفید بود؟
رایکت
نوشته شده توسط رایکت

تیم محتوای رایکت؛ آموزش‌ها و راهنماهای کاربردی هاست، دامنه و مدیریت سایت.

مطالب مرتبط

دیدگاه‌ها

نظر یا سوال خود را درباره این مطلب با ما در میان بگذارید

دیدگاه خود را بنویسید

aapanel
cloudlinux
cpanel
directadmin
jetbackup
laravel
mysql
virtualizor
vmware
wordpress