إتقان Laravel Pennant: استخدام أعلام الميزات لتطبيقات ديناميكية
Laravel Pennant هي حزمة قوية ومن الطرف الأول تُضيف إمكانيات أعلام الميزات (Feature Flags) إلى تطبيقات Laravel الخاصة بك. أعلام الميزات (المعروفة أيضًا باسم Feature Toggles) هي تقنية لتطوير البرمجيات تسمح لك بتشغيل أو إيقاف الميزات أثناء وقت التشغيل دون الحاجة إلى نشر كود جديد. وهذا يوفر مرونة هائلة لاختبار A/B، وعمليات الطرح التدريجي، والوصول إلى الميزات المميزة، وغير ذلك الكثير.
في هذا الدرس التقني المفصل، سنتعمق في Laravel Pennant، ونغطي كل شيء من التثبيت إلى سيناريوهات الاستخدام المتقدمة.
ما هي أعلام الميزات ولماذا تستخدم Pennant؟ #
تخيل أنك تقوم بتطوير ميزة تجريبية جديدة. بدلاً من نشرها لجميع المستخدمين دفعة واحدة، قد ترغب في:
- الطرح التدريجي: إصدار الميزة لنسبة صغيرة من المستخدمين أولاً، ثم زيادتها تدريجيًا. هذا يقلل من المخاطر.
- اختبار A/B: عرض إصدارات مختلفة من الميزة لقطاعات مختلفة من المستخدمين لجمع البيانات حول الأداء وتجربة المستخدم.
- الميزات المميزة: تمكين ميزات معينة فقط للمشتركين المدفوعين أو المستخدمين ذوي الأدوار المحددة.
- مفاتيح الإيقاف الفوري (Kill Switches): تعطيل ميزة بها خطأ في الإنتاج بسرعة دون الحاجة إلى التراجع عن الكود.
- وضع الصيانة: وضع أجزاء معينة من تطبيقك في وضع الصيانة.
يُبسط Laravel Pennant تنفيذ هذه السيناريوهات من خلال توفير واجهة برمجة تطبيقات أنيقة ومتمحورة حول Laravel لتعريف أعلام الميزات والتحقق منها وإدارتها.
التثبيت #
البدء باستخدام Laravel Pennant مباشر. يمكنك تثبيته عبر Composer:
composer require laravel/pennant
بعد التثبيت، يجب عليك نشر ملف تكوين Pennant وتشغيل ترحيل قاعدة البيانات (migrations). ستنشئ عمليات الترحيل جدول features، والذي يستخدمه Pennant لتخزين حالة الميزات لنطاقات (scopes) محددة (مثل: المستخدمين، الفرق).
php artisan vendor:publish --tag="pennant-config"
php artisan migrate
تعريف الميزات #
يتم تعريف الميزات باستخدام الطريقة Feature::define()، وعادةً ما يكون ذلك داخل طريقة boot في AppServiceProvider الخاص بك أو في مزود خدمة مخصص مثل FeatureServiceProvider.
تقبل طريقة define اسم الميزة (سلسلة نصية) ودالة استدعاء (callable) تحدد ما إذا كانت الميزة نشطة. تتلقى الدالة المستدعاة