هل سبق وشعرتم أنكم تكررون كتابة نفس الشيفرة لتنفيذ مهام روتينية شائعة في مشاريع لارافيل؟ وأن بناء ميزات التطبيق من الصفر تستهلك الكثيرمن الوقت وتبطئ العمل! يمكن حل معظم هذه المشكلات باستخدام حزم لارافيل، وهي وحدات برمجية جاهزة وقابلة للاستخدام المتكرر لتنفيذ المهام والوظائف الشائعة، حيث تسهل تلك الحزم مسار عملنا وتعزز أمان تطبيقاتنا وتحسن وظائفها.
نتحدث في هذا المقال عن حزم لارافيل ونستكشف أنواعها ونبحث في الفرق بين الحزم packages والتجميعات bundles، ونعرض قائمة بأفضل الحزم لبناء تطبيقات أسرع.
فهرس المقال
- مفهوم الحزمة package في لارافيل
- الفرق بين الحزم packages والتجميعات bundles
- أنواع حزم لارافيل
- قائمة بأفضل حزم لارافيل
- حزم تطوير لارافيل
- حزم أمان لارافيل
- حزم لوحة تحكم الإدارة في لارافيل
- حزم لارافيل المخصصة للتجارة الإلكترونية
- حزم لارافيل لتحسين محركات البحث
- حزم لارافيل المخصصة لتنقيح الشيفرة
- حزم اختبار لارافيل
مفهوم الحزمة package في لارافيل
تُعد الحزمة package بمثابة صندوق أدوات لكل مهام التطوير، وتكون الحزمة على شكل وحدات برمجية مبنية مسبقًا تقدم وظائف مخصصة لتطبيقات لارافيل. توفر الحزم وقت المطور لانها تلغي الحاجة إلى بناء التطبيق من الصفر وتسمح للمطور بالتركيز على الميزات الجوهرية للتطبيق.
الفرق بين حزم وتجميعات لارفيل
يستخدم كلا المصطلحين حزمة Package وتجميعة Bundle للإشارة إلى نفس التقنية غالبًا على الرغم من وجود اختلاف صغير بينهما:
الميزة | الحزمة | التجميعة |
---|---|---|
المصدر | يطورها مجتمع لارافيل أو طرف خارجي | يطورها فريق لارافيل الأساسي |
الحصرية | غير موجودة افتراضيًا | موجودة عند تثبيت لارافيل |
أمثلة | Debugbar و Socialite | Authentication و Caching |
أنواع حزم لارافيل
تأتي حزم لارافيل ضمن فئتين أساسيتين: حزنم مستقلة عن إطار العمل، وحزم مخصصة لإطار عمل
الحزم المخصصة لإطار العمل
صُمِّمت هذه الحزم خصيصًا لإطار العمل لارفيل. وتعزز هذه الحزم ميزات لارافيل وتقاليد الاستخدام وهندستها لتقديم وظائف مخصصة لتطبيقاتها. من الأمثلة عنها نجد حزم الاستيثاق وموسعّات العمل مع التخزين المؤقت.
الحزم المستقلة عن إطار العمل
لا ترتبط هذه الحزم بإطار عمل لارافيل ويمكن استخدامها في أي مشروع PHP بصرف النظر عن إطار العمل. تقدم هذه الحزم ميزات لا تتعلق بهندسة لارافيل مما يجعلها متعددة الاستخدامات في مشارع PHP المتنوعة. من الأمثلة عنها نجد مكتبات العمل مع قواعد البيانات وأدوات التحقق من استمارات الويب.
قائمة بأفضل حزم لارفيل
إليك قائمة بأفضل حزم لارافيل وفقًا لوظائفها المقدمة:
الفئة | اسم الحزمة | الوصف |
---|---|---|
حزم تطوير | Laravel Debugbar | تضيف أشريط أدوات لأغراض التنقيح. |
حزم تطوير | Laravel User Verification | تتولى مهام التحقق من المستخدم وتقييم صلاحية البريد الإلكتروني. |
حزم تطوير | Socialite | تمكن من تسجيل الدخول إلى مواقع التواصل الاجتماعي (فيسبوك، غوغل،…). |
حزم تطوير | Laravel Mix | أداة تصريف أصول مبنية اعتمادًا على Webpack. |
حزم تطوير | Eloquent-Sluggable | توّلد ملاحق عناوين URL محسنة من أجل محركات البحث. |
حزم تطوير | Migrations Generator | تولد آليًا ملفات التهجير migration files وفقًا لمخطط قاعدة البيانات. |
حزم تطوير | Laravel Backup | تولد نسخًا اختياطية لملفات التطبيق وقاعدة البيانات. |
حزم تطوير | Laravel IDE Helper | تعزز تجربة المطوّر من خلال تقديم بيئة تطوير متكاملة IDE. |
حزم أمان | Entrust | تقدم أذونات مبنية على أدوار المستخدمين في تطبيقك. |
حزم أمان | No Captcha | تقدم خدمة reCaptcha لمنع حالات الوصول غير المرغوبة |
لوحة تحكم المستخدم | Voyager | تقدم أداة بناء مرئية للوحة تحكم المدير. |
لوحة تحكم المستخدم | LaraAdmin | مولد مفتوح المصدر للوحة تحكم المدير وعمليات قواعد البيانات الأساسية CRUD. |
لوحة تحكم المستخدم | Orchid | صندوق أدوات مفتوح المصدر لبناء واجهات الإدارة ولوحة التحكم. |
تجارة إلكترونية | Bagisto | حزمة تجارة إلكترونية مفتوحة المصدر لتطبيقات لارافيل. |
تجارة إلكترونية | AvoRed | سلة تسوق لارفيل مفتوحة المصدر مع واجهة سهلة الاستخدام للأجهزة المحمولة |
تحسين محركات بحث | Laravel Meta Manager | تدير البيانات الوصفية لموقع الويب بغرض تحسين محركات البحث. |
تحسين محركات بحث | SEOTools | تحسن ترتيب ظهور الموقع في محركات البحث باعتماد أفضل الخبرات المتوفرة. |
تحسين محركات بحث | Laravel-SEO | تضيف وتحذف وتدير البيانات الوصفية لموقع الويب. |
حزم تنقيح | Laravel Telescope | تقدم إضاءات على الطلبات والاستثناءات والسجل وغيرها. |
حزم تطوير لارافيل
تبسِّط حزم التطوير مسار العمل بقديمها أدوات تنقيح وتصريف أصول وتوليد شيفرة برمجية.
1. الحزمة Laravel Debugbar
تضيف هذه الحزمة الأساسية صندوق أدوات تطوير وتعطينا تلميحات مباشرة عن أداء التطبيق. إذ تعرض الحزمة استعلامات قواعد البيانات والقوالب المصيّرة والمعاملات المُمرَّرة، كما تساعدنا على إضافة رسائل مخصصة لتسهيل التنقيح، وبالتالي زمنًا أكبر في تطوير التطبيق بدلًا من تخمين المشكلات.
Debugbar::**info**($object); Debugbar::**error**('Error!'); Debugbar::**warning**('Watch out…'); Debugbar::**addMessage**('Another message', 'mylabel')
2. الحزمة Laravel User Verification
تبسّط الحزمة Laravel User Verification تقديم المستخدم إلى الموقع حيث تتحقق من البريد الإلكتروني وصلاحيته. كما تزيد الأداة من مرونة تخصيص قوالب البريد الإلكتروني ومنطق التحقق وتجربة المستخدم كي تتلائم تمامًا مع احتياجات التطبيق، وهي تتكامل بسهولة مع نظام الاستيثاق والتنبيهات في لارافيل مما يساعد على ادخار وقت وجهد المطورين.
public function **register**(Request $request) { $this->**validator**($request->**all**())->**validate**(); $user = $this->**create**($request->**all**()); **event**(new **Registered**($user)); $this->**guard**()->**login**($user); UserVerification::**generate**($user); UserVerification::**send**($user, 'My Custom E-mail Subject'); return $this->**registered**($request, $user) ?: **redirect**($this->**redirectPath**()); }
3. الحزمة Socialite
طوِّرت حزمة Laravel Socialite من قبل فريق لارافيل لتسهيل عمليات تسجيل الدخول على منصات التواصل الاجتماعي مثل فيسبوك وجوجل وإكس، وهي تتكامل مع نظام الاستيثاق والتنبيهات في لارافيل وتتولى تعقيدات تطبيق بروتوكول OAuth وراء الكواليس دون تدخل منا كي تساعدنا على التركيز على تطوير ميزات التطبيق الأساسية.
$user = Socialite::**driver**('github')->**user**(); // OAuth Two Providers $token = $user->token; $refreshToken = $user->refreshToken; // not always provided $expiresIn = $user->expiresIn; // All Providers $user->**getId**(); $user->**getName**(); $user->**getEmail**(); $user->**getAvatar**();
4. الحزمة Laravel Mix
تقدم الحزمة Laravel Mix أداة بسيطة وسهلة الاستخدام لتصريف أصول تطبيق لارافيل. حلّت هذه الحزمة مكان Laravel Elixir وهي تقدم واجهة برمجية واضحة وسهلة الاستخدام لتحديد خطوات بناء التطبيق بطريقة فعالة.
تتكامل الأداة بسهول مع أداة التحزيم Webpack مما يحسن ميزة استبدال الوحدات البرمجية أثناء التنفيذ HMR والمزامنة مع المتصفح، مما يساعد في رؤية التغييرات مباشرة دون إعادة تحميل يدوي ويوفر وقت المطورين.
mix.**js**('resources/assets/js/app.js', 'public/js') .**sass**('resources/assets/sass/app.scss', 'public/css');
5. الحزمة Eloquent-Sluggable
تقدم Eloquent-Sluggable أداة مفيدة لتوليد عناوين لطيفة slug بعناوين URL وفقًا لخاصيات نموذجنا وبطريقة مؤتمتة، منشئة عناوين تساعد في تحسين محركات البحث في تطبيقك.
كما تقدم الحزمة خيارت لتخصيص حقول العناوين الملحقة والفواصل separators وسلوك التحديث. كما توفر أيضًا خطافات لمعالجة الحالات الخاصة وتتكامل مع منطق التطبيق للتأكد من تحسين عناوين URL.
class Post extends Eloquent { use Sluggable; protected $fillable = ['title']; public function **sluggable**() { return [ 'slug' => [ 'source' => ['title'] ] ]; } } $post = new **Post**([ 'title' => 'My Awesome Blog Post', ]); // $post->slug is "my-awesome-blog-post
6. الحزمة Migrations Generator
تحلل الحزمة Laravel Migrations Generator تخطيط قاعدة البيانات وتولد ملفات التهجير migration files تلقائيًا، مما يوفر علينا الوقت ويساعدنا على التركيز على منطق تطوير التطبيق وليس كتابة تلك الملفات. ويمكننا بكل بساطة تنفيذ أمر التهجير لكل جداول قاعدة البيانات معًا وترك الأمر لهذه الحزمة.
php artisan migrate:generate //بالإمكان اختيار جداول معينة فقط php artisan migrate:generate table1,table2
7. الحزمة Laravel Backup
تساعدنا الحزمة Laravel Backup في إنشاء نسخ احتياطية عن ملفاتنا عن طريق ضغط المجلدات وقاعدة البيانات في ملف snapshot واحد لضمان حماية وتأمين المشروع، وذلك من خلال تنفيذ أمر واحد.
php artisan backup:run
8. الحزمة Laravel IDE Helper
تحسن هذه الأداة الأساسية IDE Helper تجربتنا مع محررات الأكواد وبيئات التطوير مثل PhpStorm و VS Code من خلال ميزات عديدة منها الإكمال التلقائي للشيفرة، والتلميح بالنوع خصيصًا لمكونات لارافيل، فلن نضطر مع هذه الأداة إلى البحث عن التعليمات بل سنعرض تلميحات وتوجيهات مباشرة عن التوابع والمعاملات المتاحة. كما تولد الأداة تعليقات توثيقية لتسهّل علينا التنقل ضمن واجهة لارافيل البرمجية ضمن بيئة التطوير التي تفضلها.
حزم أمان لارافيل
تساعد حزم الأمان في دعم أمان التطبيق من خلال ميزات مثل الاستيثاق والأذونات المبنية على أدوار محددة والتكامل مع خدمة reCAPTCHA.
9. الحزمة Entrust
تساعدنا Entrust في تحديد دور كل مستخدم وتسند إليه أذونات أو سماحيات محددة، وبالتالي سيتمكن المستخدم من الوصول إلى وظائف محددة مسبقًا فقط مما يحسن أمان التطبيق. تنشئ هذه الحزمة الجداول الأربعة التالية لأدوار المستخدمين:
- جدول أدوار لتخزين سجلات الأدوار
- جدول الأذونات لتخزين سجلت السماحيات
- جدول أدوار-مستخدم role-user لتخزين علاقات واحد-إلى-أكثر بين الأدوار والمستخدمين
- جدول أذونات-دور permission_role لتخزين علاقات واحد-إلى-أكثر بين الأدوار والأذونات
بإمكاننا إنشاء دور بتنفيذ أسطر الشيفرة التالية:
admin = new **Role**(); $admin->name = 'admin'; $admin->display_name = 'User Administrator'; // optional $admin->description = 'User is allowed to manage and edit other users'; // optional $admin->**save**()
نسند الدور إلى المستخدم كالتالي:
user = User::**where**('username', '=', 'michele')->**first**(); $user->**attachRole**($admin);
ثم علينا تحديد الأذونات الخاصة بالدور:
$createPost = new **Permission**(); $createPost->name = 'create-post'; $createPost->display_name = 'Create Posts'; $createPost->description = 'create new blog posts'; $createPost->**save**(); $admin->**attachPermission**($createPost);
10. الحزمة No Captcha
تعمل الحزمة No Captcha على تحقيق تكامل لتطبيق لارافيل مع خدمة reCAPTCHA من جوجل لحمايته من الروبوتات الآلية bots وتضيف طبقة أمان إضافية إليه. لهذا، ننصح بالحصول على مفتاح الواجهة البرمجية API المجاني لهذه الحزمة وحماية التطبيقات.
تقدم الحزمة أيضًا خيارات مخصصة لعنصر التحكم CAPTCHA كي نضمن اندماجه مع تصميم الاستمارات Forms بكل بساطة ودون التأثير على تجربة المستخدم.
NoCaptcha::**shouldReceive**('verifyResponse') ->**once**() ->**andReturn**(true); $response = $this->**json**('POST', '/register', [ 'g-recaptcha-response' => '1', 'name' => 'Pardeep', 'email' => 'pardeep@example.com', 'password' => '123456', 'password_confirmation' => '123456', ]);
حزم لوحة تحكم إدارة لارافيل
تساعد حزم إدارة لوحة التحكم على بناء واجهات سهلة الاستخدام للوحات التحكم لمدير الواجهة الخلفية للتطبيقات
11. Voyager
قد يكون بناء لوحة تحكم مدير واضحة وسهلة أمرًا يستهلك الكثير من وقت المطور، لكن الحزمة Voyager ستبسط العملية من خلال واجهة سهلة الاستخدام. تتميز الحزمة بتوثيقها الجيد وتتضمن واجهة واضحة وسهلة الاستخدام، وتوفر بيانات مخصصة للاختبارات ومدير وسائط متعددة متقدم. وتساعدنا في التركيز على بناء وظائف تطبيقات لارافيل لتتكفل هي بإنشاء لوحات التحكم.
12. الحزمة LaraAdmin
تُعد LaraAdmin حزمة مجانية قوية ومفتوحة المصدرية لتطوير لارافيل، حيث تسهِّل إنشاء لوحة تحكم إدارة التطبيق بتقديمها ميزات مثل إدارة المستخدمين، والوصول المشروط بالدور الممنوح للمستخدم، والقوائم الديناميكية.
تقدم الأداة أيضًا جداول بيانات سهلة التخصيص تدعم الفرز والترشيح وتعدد الصفحات مما يسمح بإدارة البيانات المعقدة بكل سهولة. لهذا ستساعدنا هذه الأداة في التركيز على البناء الوظيفي لتطبيقات لارافيل وتتكفل هي بإنشاء واجهات الإدارة.
13. الحزمة Orchid
تُقدم الحزمة Orchid صندوق أدوات يتمتع بتصميم مرن وقابل للتوسع، مما يسمح ببناء واجهات سهلة الاستخدام مفصلة خصيصًا لتلائم تطبيقاتنا. وتتجاوز الأداة إنشاء لوحات تحكم بسيطة وتتصرف كمنظومة لإدارة تطبيقات الويب. إذ يمكن التفكير بها على أنها منظومة إدارة محتوى تسهل إدارة المحتوى والمستخدمين في تطبيقات لارافيل.
حزم لارافيل المخصصة للتجارة الإلكترونية
تساعدنا هذه الحزم في تسريع تطوير المتاجر الإلكترونية من خلال ميزاتها المتعددة مثل إدارة المنتجات وعربات التسوق وبوابات الدفع الإلكتروني.
14. الحزمة Bagisto
تُعد Bagisto حزمة مفتوحة المصدر مخصصة لمتاجر لارافيل الإلكترونية التي تلفت انتباه المطورين بسرعة. إذ تقدم نظام إدارة مستخدمين سهل مع خيارات متعددة لإدارة المخازن وغيرها من الميزات.
كما تُجمّع الحزمة Laravel CMS مع أدوات تسهل التنقل بين الأقسام المختلفة ضمن لوحة التحكم، وتقدم وظائف كثيرة للمتجر مثل تعدد العملات، وتخصيص الموقع الجغرافي للمتجر، وتحديد مستويات للوصول إلى البيانات، والتكامل مع بوابات الدفع الإلكتروني وغيرها من الميزات.
15. الحزمة AvoRed
تسمح الحزمة AvoRed بتخصيص حزمة تسوق لارافيل مفتوحة المصدر بسهولة وحسب الحاجة، وتقدم افتراضيًا واجهة سهلة الاستخدام في الأجهزة المحمولة وتضم أفضل حزم تحسين محركات البحث في لارافيل.
تسمح لك الأداة ببناء كيانات مفيدة مثل الفئات categories والسمات attributes وغيرها، وتقدم إمكانيات فعالة في إدارة طلبات الشراء وتتبّعها وإدارة معلومات العملاء والمتاجر وغيرها.
حزم لارافيل لتحسين محركات البحث
تساعد هذه الحزم في تحسين تطبيقات لارافيل كي يسهل إيجادها من قبل محركات البحث وذلك من خلال إدارة بيانات الوسوم الوصفية للموقع أو التطبيق وإدارة خارطة الموقع والبيانات المهيكلة.
16. الحزمة Laravel Meta Manager
تساعد الأداة Laravel Meta Manager في تحسين ظهور صفحاتنا في محركات البحث ورفع ترتيبها ضمن صفحات نتائج البحث. حيث توضح بيانات الوسوم Meta tag وتسمح بتصحيحها باتباع أفضل الممارسات المتبعة في تحسين محركات البحث.
تأتي الحزمة مع مجموعة وسوم ميتا جاهزة وموصى بها تتضمن Standard SEO و Dublin Core و Google Plus و Facebook Open Graph وغيرها. فبعد إتمام الإعداد، كل ما علينا هو إضافة هذه الوسوم المتولّدة إلى ترويسة الصفحة التي تريد كالتالي:
@**include**('meta::manager')
يستخدم الأمر السابق الإعدادات المعرفة سابقًا لإعادة تعيين الوسوم الوصفية، لكن إن أدرنا تعريف خيارات محددة بسرعة دون تدقيق، نستطيع استخدام الشيفرة التالية:
@**include**('meta::manager', [ 'title' => 'My Example Title', 'description' => 'This is my example description', 'image' => 'Url to the image', ])
وإليكم مثالًا:
<html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> @**include**('meta::manager', [ 'title' => 'My Example Title', 'description' => 'This is my example description', 'image' => '', ]) </head> <body> </body> </html>
17. الحزمة SEOTools
تسمح SEOTools بتحسين محركات البحث في تطبيقات لارافيل وفقًا لأفضل الممارسات، وتقدم ميزات تحسين ممتازة لمواقع الويب. ومن السهل دمج الحزمة مع المشاريع ولها واجهة سهلة الاستخدام بالنسبة للمبتدئين، كما تسمح بضبط العناوين والوسوم الوصفية لكل من منصة إكس و Open Graph.
18. الحزمة Laravel-SEO
تساعدنا الحزمة Laravel-SEO في التحكم الكامل بقدرة تطبيقنا على تحسين محركات البحث وتبسّط إدارة الوسوم الوصفية من ناحية الإضافة والتحرير والحذف. وتسمح أيضًا بإضافة بيانات مهيكلة لتحسين نتائج محركات البحث وإدارة الوسوم الوصفية للمنصات الشهيرة مثل Open Graph و Dublin Core دون أي جهد، مما يزيد ظهور تطبيق لارافيل ويعزز ترتيبه في نتائج البحث.
حزم تنقيح لارافيل
تركز هذه الحزم على سلوك التطبيق من خلال أدوات التنقيح وتحليل الأداء.
19. الحزمة Laravel Telescope
تُعد الحزمة Laravel Telescope أداة فعالة في يد مطوري لارافيل، إذ تكشف لنا كل ما يحدث خلف الستار، وتتعقب الطلبات القادمة وتنفيذها والسجلات واستعلامات قواعد البيانات وغيرها.
وتقدم الأداة ملاحظات مباشرة على سلوك التطبيق أثناء التنفيذ، مما يسمح بتحديد وإصلاح الثغرات بفعالية. تجعل هذه الميزات من Laravel Telescope أداة أساسية لأي مطور لارافيل يعمل في بيئة تطور محلية.
حزم اختبار لارافيل
تساعدك هذه الحزم على تحسين نوعية الشيفرة وإمكانية صيانتها من خلال إعداد اختبارات وحدات واختبارات تكامل فعالة.
20. الحزمة Orchestral Testbench
لن نتمكن من الوصول إلى جميع مساعدي اختبار لارافيل test helpers عندما نكتب الحزمة بنفسنا. فإن أردنا كتابة اختبارات لحزمتنا كما لو كانت ضمن تطبيق لارافيل نمطي ننصح باستخدام Orchestral Testbench package كالتالي:
- ضبط ملف Composer.json للحزمة الجديدة
- إضافة مزود خدمة
- ضبط الأسماء المستعارة Alias
- إنشاء صنف واجهة facade class
هذه الخطوات الأربعة مهمة جدًا في كتابة حزمة لارافيل لتسريع الإنتاجية.
الخلاصة
قدمنا في هذا المقال قائمة بأفضل حزم لارافيل التي تساعدنا على تحسين إنتاجية تطبيقاتنا. ويعتمد اختيار أفضل حزم لارافيل على متطلبات المشروع بالدرجة الأولى. وطالما أن لارافيل تسهل على المطور تنفيذ عمليات مخصصة يحددونها بأنفسهم، سيكون استخدام تلك الحزم مساعدًا في تنفيذ تلك المهام الوظيفية بفعالية أكبر.
أسئلة شائعة
1. ما هي حزم لارافيل؟
الحزم في PHP هي مجموعة من الوجهات routes والمتحكمات controllers والعروض views المهيأة لتوسيع وظائف تطبيق لارافيل.
2. ماهي التجميعة في لارافيل؟
هي تقنية قّدمت أول مرة في لارافيل 3.0، وهي طريقة لتجميع الشيفرة ضمن مكونات يمكن إضافتها إلى تطبيقات لارافيل. ولن يضطر المطور من إنشاء تلك المكونات من الصفر دائمًا عند استخدام التجميعات.
ترجمة -وبتصرف- للمقال: Best laravel packages to optimize performance, security and SEO in 2024
أفضل التعليقات
لا توجد أية تعليقات بعد
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.