البحث في الموقع
المحتوى عن 'providers'.
-
يأتي Laravel مضمّنا مبدئيًّا بالكثير من المهام الشائعة في تطوير تطبيقات الويب؛ إلا أن المطوّر يحتاج لإضافة ميزات خاصّة لإطار العمل لاستخدامها في مشروعه، وهو ما يمكن فعله في Laravel عبر الدوّال المساعِدة المخصّصة. هذا الدرس جزء من سلسلة تعلم Laravel والتي تنتهج مبدأ "أفضل وسيلة للتعلم هي الممارسة"، حيث ستكون ممارستنا عبارة عن إنشاء تطبيق ويب للتسوق مع ميزة سلة المشتريات. يتكون فهرس السلسلة من التالي: مدخل إلى Laravel 5.تثبيت Laravel وإعداده على كلّ من Windows وUbuntu.أساسيات بناء تطبيق باستخدام Laravel.إنشاء روابط محسنة لمحركات البحث (SEO) في إطار عمل Laravel.نظام Blade للقوالب.تهجير قواعد البيانات في Laravel.استخدام Eloquent ORM لإدخال البيانات في قاعدة البيانات، تحديثها أو حذفها.إنشاء سلة مشتريات في Laravel.الاستيثاق في Laravel.إنشاء واجهة لبرمجة التطبيقات API في Laravel.إنشاء مدوّنة باستخدام Laravel.استخدام AngularJS واجهةً أمامية Front end لتطبيق Laravel. الدوّال المساعدة المخصّصة في Laravel. (هذا الدرس)استخدام مكتبة Faker في تطبيق Laravel لتوليد بيانات وهمية قصدَ الاختبار. عند استخدام الدالة asset في قالب Blade فأنت تستدعي دالة مساعِدة مضمّنة في Laravel. الدوال المساعدة هي دوال مبنية لتأدية أعمال اعتيادية ويمكن غالبا استخدامها في أي ملف من إطار العمل أو التطبيق. سنشرح في هذا الدرس كيفية بناء دوال مساعدة مخصّصة. يغطي الدرس المواضيع التالية: مجلّد الدوال المساعِدة.تعريف صنف مساعِد.مزود الخدمة الخاص بالصنف المساعِد.كنية الصنف المساعد.سنستخدم نفس المشروع الذي أنشأناه في الدرس السابق لإيضاح المفاهيم الواردة في هذا الدرس. مجلد الدوال المساعدةسننشئ مجلّدا خاصّا بالأصناف التي ستعرّف الدوال المساعدة داخل مجلد التطبيق app، نعطيه اسم Helpers. داخل مجلد الدوال المساعدة app/Helpers ننشئ ملفا باسم MyFuncs.php لتعريف الصنف MyFuncs ونضيف إليه الشفرة المصدرية التالية: <?php namespace App\Helpers; class MyFuncs { public static function full_name($first_name,$last_name) { return $first_name . ', '. $last_name; } }تنشئ الشفرة أعلاه صنفا لتعريف الدالة المساعدة full_name. نبدأ بتعريف فضاء أسماء لأصناف المساعدات داخل فضاء أسماء التطبيق: namespace App\Helpers;ثم نعرّف الصنف MyFuncs الذي توجد داخله الدالة المساعدة full_name. الدالة المساعدة full_name هي دالة ثابتة static تقبل سلسلتي محارف Strings ثم تلمّهما Concatenate. صنف مزود الخدمة الخاص بالمساعِداتتستخدَم مزودات الخدمة للتحميل التلقائي للأصناف كما أشرنا في درس إنشاء سلة مشتريات في Laravel 5؛ سنعرّف مزود خدمة لتحميل جميع الأصناف الموجودة في المجلّد app/Helpers. سنستخدم Artisan لإنشاء مزود خدمة كما فعلنا مع النماذج و التهجيرات، نفذ الأمر التالي: php artisan make:provider HelperServiceProviderينشئ الأمر السابق ملفا باسم HelperServiceProvider على المسار /app/Providers؛ نفتحه لتحريره. عدّل الملف ليصبح كالتالي: <?php namespace App\Providers; use Illuminate\Support\ServiceProvider; class HelperServiceProvider extends ServiceProvider { /** * Bootstrap the application services. * * @return void */ public function boot() { // } /** * Register the application services. * * @return void */ public function register() { foreach (glob(app_path().'/Helpers/*.php') as $filename){ require_once($filename); } } }نعرّف فضاء الأسماء الذي ينتمي إليه الصنف App\Providers ثم نستدعي صنف مزود الخدمة Illuminate\Support\ServiceProvider وهو صنف يمدده مزود الخدمة الذي نحن بصدد تعريفه. تمهّد الدالة boot خدمات التطبيق Bootstrapping، أي تحميل الأصناف التي تعرّف الخدمات أثناء بدء التطبيق العمل. ثم يأتي دور الدالة register التي تحمّل محتويات المجلد Helpers بسبر ملفاته وتحميلها الواحد تلو الآخر. إعداد مزود خدمة المساعدات وكنية صنف المساعداتنحتاج لإعلام إطار العمل Laravel بوجود مزوّد الخدمة الذي أنشأناه. لذا سنفتح ملف إعداد التطبيق config/app.php ونضيف عنصرا جديدا إلى مصفوفة providers على النحو التالي: App\Providers\HelperServiceProvider::class,ثم ننتقل إلى مصفوفة الكنى aliases لإضافة كنية لصنف MyFuncs: 'MyFuncs' => App\Helpers\MyFuncs::class,احفظ التعديلات. استخدام المساعِدات المخصصةننشئ في ملف المسارات routes.php مسارا خاصّا لتجربة الدالة المساعدة: Route::get('/func', function () { return MyFuncs::full_name("Hsoub","Academy"); });نستدعي الدالة MyFuncs::full_name مع تمرير المعطيين الضروريين إليها. افتح المسار http://angulara.dev/func لتجربة عمل الدالة المساعدة. ستحصل على النتيجة التالية: Hsoub, Academyخاتمةتستخدَم الدوال المساعدة لتنفيذ مهام يكثُر استعمالها في تطبيقات الويب. يمكنك إنشاء دوال مساعدة مخصّصة وإضافتها إلى التطبيق. تفيد الدوال المساعدة كثيرا في تهيئة المخرجات وصياغتها ضمن قوالب Blade والاستغناء بالتالي عن معالجة البيانات داخل القوالب. ترجمة -وبتصرّف- لمقال Laravel 5 Custom Helper لصاحبه Rodrick Kazembe.