انتقل إلى محتوى الدرس

Semantic Versioning and composer.lock إصدارات الحزم وملف القفل composer.lock

تخلص من استدعاءات require اليدوية عبر إتقان spl_autoload_register ومعيار PSR-4 وإدارة الحزم بأداة Composer.
1 صفوف تعليمية
PHP
0 مشاهدة

شرح صفوف ومحتوى الفقرة

الصف 1 شرح توضيحي

تتبع حزم Composer نظام الإصدارات الدلالي (MAJOR.MINOR.PATCH مثل 3.7.2)، ويحفظ الملف composer.lock الإصدارات المثبتة بالضبط لضمان تطابق بيئات الفريق وخوادم الإنتاج.

  • يسمح رمز القبعة ^3.7 بتحديثات الميزات الفرعية والإصلاحات الأمنية (>=3.7.0 <4.0.0) مع منع التحديث لإصدار رئيسي يكسر التوافق.
  • احفظ دائماً ملفي composer.json وcomposer.lock في مستودع Git، واستبعد مجلد /vendor/ عبر إضافته إلى .gitignore.
  • عند النشر على خادم الإنتاج، شغّل دائماً composer install --no-dev --optimize-autoloader لقراءة الإصدارات الدقيقة من composer.lock.

يسمح القيد ^3.7 بالإصدار 3.9.4 المتوافق، بينما يمنع الترقية التلقائية إلى الإصدار الرئيسي 4.0.0.

PHP
<?php
namespace App\Release;

class SemVerCheck {
    public static function allowsCaret37(string $ver): bool {
        return version_compare($ver, "3.7.0", ">=") && version_compare($ver, "4.0.0", "<");
    }
}
echo "3.9.4 allowed: " . (SemVerCheck::allowsCaret37("3.9.4") ? "Yes" : "No") . "\n";
echo "4.0.0 allowed: " . (SemVerCheck::allowsCaret37("4.0.0") ? "Yes" : "No") . "\n";