Osama Kha نشر 24 سبتمبر 2023 أرسل تقرير نشر 24 سبتمبر 2023 يوجد لدي مستخدمين الاول يقوم بالاضافة والثاني يوافق ثم يعمم على الموقع احتاج الى مثال او موقع يساعدني في كيفية التعامل مع المكتبة او شرح قمت بتنزيل المكتبة ولكن احتاج مساعدة في كيفية التعامل معها وهل تعد هذه المكتبة خيار مناسب ام لا 1 اقتباس
0 Adnane Kadri نشر 24 سبتمبر 2023 أرسل تقرير نشر 24 سبتمبر 2023 أظنك تقصد Laravel pennant فهي الحزمة التي توفرها لارافيل لدعم فكرة feature flags أو رايات الميزة أو تدعى أحيانا تبديلات الميزة feature toggls. وهي ببساطة طريقة لتضمين ميزات معينة ضمن التطبيق لمجموعة محددة من الجمهور دون الحاجة لتغييرها فعليا لكامل جمهور التطبيق. مثال: تريد نشر تصميم معين للتطبيق وتريد من فئة معينة فقط اختباره وتجربته. تكون هاته الفكرية عملية في التطبيقات التي تتوقع توسعا كبيرا، أين يتم التوسع في الميزات تدريجيا .. خصوصا في التطبيقات التي تنتهج فلسفات Agile لتقديم نسخ مصغرة MVPs من الميزات التي تنشرها تباعا .. أين يتم نشر النموذج الأولي من الميزة لمجموعة معينة ضمن الجمهور المستهدف، ثم بعد اختبار تجارب الاستخدام او الحصول على التقييمات والآراء feedback يتم نشر وتعميم هاته الميزة بشكل نهائي. مثال جيد آخر هو ما تستعمله المواقع الكبيرة من مثل فيسبوك، فحينما تقوم -مثلا- بنشر طريقة تفاعل جديدة تقوم بتقديمها لجمهور معين ثم تقوم بعد ذلك بالتوسع في نشرها. في لارافيل، توجد هاته الحزمة لتقدم حلا استثنائيا بميزات عدة لمقاربة هاته الفكرة والتحكم فيها. بالنسبة لتطبيقك، فسيمكن نعم دعم هاته الفكرة بغض النظر عما تكونه هاته الميزات، سيمكن لصنف المستخدم الأول نشر وانشاء الميزات وللثاني تعميمها على كامل أصناف مستخدمي التطبيق. 1 اقتباس
0 اسماء محمد10 نشر 25 سبتمبر 2023 أرسل تقرير نشر 25 سبتمبر 2023 مكتبة flags خيارًا مناسبًا لتطبيقك. فهي توفر لك طريقة سهلة لإدارة الإصدارات المختلفة من الميزات في تطبيقك ويمكنك أيضًا استخدام مكتبة flags لإنشاء قواعد معقدة لتحديد ما إذا كانت الميزة نشطة أم لا. على سبيل المثال، يمكنك إنشاء قاعدة تسمح للميزة بالتنشيط فقط للمستخدمين الذين يعيشون في منطقة معينة. سوف اعطيك مثال علي استخدم هذه المكتبة الرائعة, اذا كان لديك تطبيق يحتوي على ميزة جديدة تسمح للمستخدمين بإنشاء مدونات. تريد أن تكون الميزة متاحة للمستخدمين المميزين فقط. يمكنك استخدام مكتبة flags لإنشاء ميزة جديدة تسمى blog-feature-flag. يمكنك تعيين القيمة الافتراضية للميزة إلى false حتى لا تكون متاحة للمستخدمين العاديين. يمكنك بعد ذلك استخدام طريقة is_active() للتحقق مما إذا كانت الميزة نشطة للمستخدم الحالي. إذا كانت الميزة نشطة، فيمكنك السماح للمستخدم بإنشاء مدونة. كود التنفيذ:- class User { public function is_admin() { return $this->role === 'admin'; } } class BlogFeatureFlag extends Flag { /** * القيمة الافتراضية للميزة. * */ protected $default = false; /** * اسم الميزة. */ protected $name = 'blog-feature-flag'; /** * وصف الميزة. */ protected $description = 'هذه هي ميزة مدونة جديدة'; } class BlogController { public function create() { $user = Auth::user(); if ($user->is_admin() || $flag->is_active()) { // السماح للمستخدم بإنشاء مدونة } else { // رفض إنشاء مدونة } } } 1 اقتباس
0 Mustafa Suleiman نشر 25 سبتمبر 2023 أرسل تقرير نشر 25 سبتمبر 2023 مكتبة Laravel pennant هي مكتبة جيدة لإنشاء أنظمة الموافقة والمراجعة، وهي مناسبة لتطبيقك حيث يوجد مستخدمين يقومون بإضافة محتوى جديد، ثم يقوم مستخدم آخر بالموافقة عليه قبل نشره على الموقع. وأولاً تحتاج إلى تثبيت المكتبة عن طريق الأمر التالي: composer require laravel/pennant ثم نشر الإعدادات وملفات التهجير عن طريق الأمر التالي: php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider" ثم عليك تنفيذ الأمر: php artisan migrate ولإنشاء علامة بنانت جديدة، استخدم دالة create() في نموذج Pennant، وكمثال لإنشاء علامة بنانت للموافقة على محتوى جديد، استخدم الكود التالي: use App\Models\Content; use App\Models\User; use Laravel\Pennant\Models\Pennant; class ContentForm extends Form { public function buildForm() { $this ->add('title', TextType::class) ->add('body', TextareaType::class) ->add('author', UserType::class) ->add('submit', SubmitType::class); } public function handleSubmit() { $content = Content::create($this->getData()); $pennant = Pennant::create([ 'content_id' => $content->id, 'status' => 'pending', ]); return redirect()->route('contents.index'); } } يتم إنشاء علامة بنانت جديدة مع حالة "معلقة" وتحتوي العلامة البنانت على معرف المحتوى الذي سيتم الموافقة عليه. لمراجعة العلامة البنانت، استخدم دالة review() في نموذج Pennant، ومثلاً لمراجعة علامة بنانت للموافقة على محتوى جديد، سيكون الكود كالتالي: use App\Models\Content; use App\Models\User; use Laravel\Pennant\Models\Pennant; class ContentController extends Controller { public function approve(Pennant $pennant) { $pennant->review(); $content = Content::find($pennant->content_id); $content->publish(); return redirect()->route('contents.index'); } } وستجد هنا شرح وافي في المستند الرسمي: https://laravel.com/docs/10.x/pennant 1 اقتباس
السؤال
Osama Kha
يوجد لدي مستخدمين الاول يقوم بالاضافة والثاني يوافق ثم يعمم على الموقع احتاج الى مثال او موقع يساعدني في كيفية التعامل مع المكتبة او شرح قمت بتنزيل المكتبة ولكن احتاج مساعدة في كيفية التعامل معها وهل تعد هذه المكتبة خيار مناسب ام لا
3 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.