نتائج البحث

اذهب إلى التنقل اذهب إلى البحث

النشر على الخادم الإنتاجي في Laravel

مقدمة عندما تكون جاهزًا لنشر تطبيق Laravel على الخادوم الإنتاجي، هناك بعض الأشياء المهمة التي يمكنك القيام بها للتأكد من تشغيل التطبيق بأقصى كفاءة ممكنة. في هذا المستند، سنغطي بعض نقاط البداية الرائعة للتأكد من نشر تطبيق Laravel بشكل صحيح. ضبط الخادوم Nginx إذا كنت تقوم بنشر تطبيقك على خادوم Nginx، فيمكنك استخدام ملف التهيئة التالي كنقطة بداية لتهيئة خادوم الويب الخاص بك. على الأرجح، يجب تخصيص هذا الملف بناءً على تهيئة خادومك. إذا كنت ترغب في المساعدة في إدارة ...

اختبارات المتصفح (Laravel Dusk) في Laravel

مقدمة يوفّر لك Laravel Dusk أتمتة للمتصفّح واختبار للواجهات البرمجيّة بطريقة سهلة الاستخدام. بشكلٍ افتراضي، لا يتطلّب Dusk تنصيب JDK أو Selenium على جهازك، حيث يستعمل تثبيت مستقل (standalone) لبرمجية ChromeDriver. بأي حال، يمكنك استخدام أي برنامج تشغيل متوافق مع Selenium إذا أردت. التثبيت للبدء، أضف الاعتمادية laravel/dusk إلى مشروعك: composer require --dev laravel/dusk بعد تثبيت Dusk، سجّل مزوّد الخدمة الذي يتبع إلى Dusk، وهو Laravel\Dusk\DuskServiceProvider. بشكل عام، يكون هذا تلقائيًّا باستخدام التسجيل التلقائي لمزوّدات خدمة Laravel. تنبيه: إذا قمت بتسجيل ...

التوطين في Laravel

مقدمة تُقدِّم خاصيّة التوطين في Laravel طريقةً مريحةً وسهلةً لإعطاء ترجمات للكلمة في عدّة لغات، ممّا يسمح للتطبيق بدعم لغات متعدّدة. تُحفظ سلاسل المحارف الخاصّة بكل لغة يدعمها التطبيق في المجلد resources/lang. يحتوي هذا الملف على مجلدٍ فرعي لكل لغة يدعمها التطبيق: /resources /lang /en messages.php /es ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

Laravel Socialite

مقدمة بالإضافة إلى الاستيثاق النمطي القائم على النموذج، يوفر Laravel أيضًا طريقة بسيطة ومريحة للاستيثاق مع موفري OAuth باستخدام Laravel Socialite، وهو يدعم حاليا الاستيثاق مع Facebook و Twitter و LinkedIn وGoogle و GitHub و Bitbucket. ملاحظة: المحولات للمنصات الأخرى موجودة في موقع مجتمع Socialite Providers. التثبيت استخدم Composer لإضافة الحزمة إلى اعتماديّات مشروعك لبدء استخدام Socialite: composer require laravel/socialite الضبط ستحتاج قبل استخدام Socialite إلى إضافة بيانات اعتماد لخدمات OAuth التي يستخدمها تطبيقك في ملف الضبط config/services.php ويجب استخدام ...

التوطين في Laravel

مقدمة تُقدِّم خاصيّة التوطين في Laravel طريقةً مريحةً وسهلةً لإعطاء ترجمات للكلمة في عدّة لغات، ممّا يسمح للتطبيق بدعم لغات متعدّدة. تُحفظ سلاسل المحارف الخاصّة بكل لغة يدعمها التطبيق في المجلد resources/lang. يحتوي هذا الملف على مجلدٍ فرعي لكل لغة يدعمها التطبيق: /resources /lang /en messages.php /es ...

Laravel Cashier

مقدمة يقدم Laravel Cashier واجهة قويّة لاشتراكات خدمات الفواتير Stripe و Braintree، وهي تعالج تقريبًا كل شيفرات boilerplate الخاصة باشتراك الفواتير التي تخشى من كتابتها، وبالإضافة إلى إدارة الاشتراكات الأساسية، يستطيع Cashier التعامل مع القسائم (coupons)، ومبادلة الاشتراكات وكميّات الاشتراكات وفترات السماح بالإلغاء وحتى إنشاء ملفات PDF للفواتير. تنبيه: إذا كنت تضع رسوم لمرة واحدةً فقط ولا توفّر الاشتراكات، فيجب عليك أن لا تستخدم Cashier، وبدلًا من ذلك، يجب عليك استخدام حزمة برمجيات التطوير (SDK) الخاصة بـ Braintree و Stripe ...

Laravel Horizon

مقدمة يوفّر Horizon لوحة تحكم جميلة و إعدادات برمجيّة لطوابير ‏‎(Queues) Laravel المبنيّة على Redis، فهو يوفّر لك مراقبة سهلة للمقاييس الأساسية لنظام الطوابير مثل إنتاجيّة العمل ووقت التشغيل، وفشل المهام. ستبقى جميع عمليّات الضبط في ملف ضبط واحد وبسيط ممّا يضمن التعاون الكامل بين أعضاء فريقك. التثبيت تنبيه: يتطلّب ‎،Horizon نظرًا لاستخدامه لإشارات العمليّة غير متزامنة، إلى نسخة PHP‏ 7.1‏ فما فوق. ويجب عليك التأكّد من تعيين محرك الطابور إلى Redis في ملف ضبط الطابور. يمكنك استخدام Composer لتثبيت ...

Laravel Scout

مقدمة يوفر Scout حلًا بسيطًا يستند على برنامج تشغيل (Driver) لإضافة البحث عن نص كامل في نماذج Eloquent. باستخدام مراقبي النموذج (model observers)، سيحافظ Scout بشكل تلقائي على مزامنة فهارس البحث مع سجلات Eloquent الخاصة بك. في الوقت الحالي، يأتي Scout مع برنامج التشغيل Algolia، ومع ذلك، فإن كتابة برامج تشغيل مخصصة بسيطة ولديك الحريّة في توسيع Scout مع تطبيقات البحث الخاصة بك. التثبيت ثبت أولًا Scout عن طريق مدير حزم Composer: composer require laravel/scout بعد تثبيت Scout، يجب عليك ...

الواجهات (Views) في Laravel

إنشاء الواجهات ملاحظة: هل تبحث عن مزيد من المعلومات حول كيفية كتابة قوالب Blade؟ ألق نظرة على توثيق Blade الكامل للبدء. تحتوي الواجهات على HTML الذي يُقدّمه تطبيقك وتفصل منطق وحدة التحكّم/منطق التطبيق من منطق عرضك التقديمي (presentation logic). تُخزّن الواجهات في المُجلّد resources/views. قد تشبه الواجهة البسيطة المثال التالي: <! - الواجهات مُخزّنة في resources/views/greeting.blade.php -> <html> <body> <h1>Hello, {{ $name }}</h1> </body> </html> كما ترى، يُوافق المّتغيّر الوسيط ...

الحماية CSRF في Laravel

مقدمة يُسهّل Laravel حماية تطبيقك من الهجمات مُزوّرة الطلب عبر المواقع (cross-site request forgery) واختصارها CSRF. تزويرات الطلب عبر المواقع هن نوع من الاستغلال تُنفّذ فيها أوامر غير مُرخّصة نيابة عن المستخدم المصادق عليهالمُستوثق (authenticated user). يُولّد Laravel تلقائيًّا "رمز" CSRF لكل جلسة مستخدم نشطة يديرها التطبيق. يُستخدم هذا الرمز (token) للتحقّق من كون المستخدم المصادق عليه نفس الشخص الذي يقدّم الطلبات للتطبيق. يجب أن تضيف حقل CSRF مخفي في كل مرّة تعرّف فيها نموذج HTML في تطبيقك كي تتثبت ...

العقود (Contracts) في Laravel

مقدمة عقود Laravel هي مجموعة من الواجهات (interfaces) التي تعرِّف الخدمات المركزية التي يوفرها إطار العمل. على سبيل المثال، يعرِّف العقد Illuminate\Contracts\Queue\Queue  الدوال اللازمة لصف الأعمال في الطوابير، بينما يعرِّف عقد Illuminate\Contracts\Mail \Mailer الدوال اللازمة لإرسال رسائل البريد الإلكتروني. لكل عقد تعريف استخدام (implementation) يوفره إطار العمل. على سبيل المثال، يوفِّر Laravel تعريف استخدام للطابور لعدة أنواع من المشغلات (drivers) كما يوفِّر تعريف استخدام للمُرسِل مشغل بواسطة SwiftMailer. توجد كل عقود Laravel في مستودعات في GitHub. هذا يوفر نقطة مرجعية سريعة لكل ...

الأحداث (Events) في Laravel

مقدمة توفّر أحداث Laravel تطبيق مراقب بسيط  يسمح بالإشتراك والاستماع لعدّة أحداث يطلقها التطبيق. تُخزَّن أصناف الأحداث في الدليل app/Events، في حين توجد المنصتات في app/Listeners. لا تقلق إن لم تجد هذه الدلائل في التطبيق إذ تُصنع حين تولّد أحداثًا و منصتات باستعمال أوامر artisan. الأحداث طريقة ممتازة لفك ارتباط عدّة عناصر من التطبيق حيث يمكن أن يكون لحدث واحد عدّة منصتات منفصلة كليا عن بعضها البعض. مثلًا، قد تريد إرسال إعلان slack للمستخدم كلما شحن طلب. بدل ربط معالجة ...

الإشعارات (Notifications) في Laravel

مقدمة بالإضافة لدعم إرسال البريد الإلكتروني، يوفّر Laravel دعمًا لإرسال إشعارات بين قنوات توصيل عديدة من ضمنها البريد الإكتروني، والرسائل القصيرة (عبر Nexmo)، و Slack. يمكن أيضًا حفظ الإشعارات في قاعدة البيانات لإظهارها في واجهة الويب. تكون الإشعارات في العادة على شكل رسائل قصيرة، وغنية بالمعلومات، تنبّه المستخدم لشيءٍ حدث في التطبيق. مثلًا، إن كنت تكتب تطبيق فواتير، يمكنك إرسال تنبيه "تمّ خلاص الفاتورة" للمستخدم عبر بريد إلكتروني أو رسالة قصيرة. إنشاء الإشعارات في Laravel، يُمثَّل كل تنبيه بصنف (موجودٌ ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

البث (Broadcasting) في Laravel

مقدمة في العديد من التطبيقات الحديثة، تُستعمل Websockets لتنفيذ واجهات استخدام فورية ذات تحيين مباشر. عند رفع بعض البيانات للخادم، تُرسَل في العادة رسالة على اتصال websocket لتُعالَج من قبل العميل. يوفّر هذا بديلًا فعالًا للسحب المتواصل للتطبيق من أجل التغييرات. لمساعدتك في بناء هذا النوع من التطبيقات، يجعل Laravel من السهل "بث" أحداث عبر صلة websocket. يسمح بث الأحداث بمشاركة نفس الأحداث بين شيفرة من جهة الخادم وشيفرة من جهة العميل. ملاحظة: قبل التعمق في بث الأحداث، تأكد من ...

الطلبات HTTP في Laravel

الوصول إلى الطلب عليك التلميح إلى نوع الصنف Illuminate\Http\Request في وحدة تحكمّك للحصول على نسخة الطلب HTTP الحالي عبر إضافة الاعتماديّة. ستُضاف نسخة الطلب الوارد تلقائيًّا بواسطة حاوي الخدمات: <?php namespace App\Http\Controllers; use Illuminate\Http\Request; class UserController extends Controller { /** * خزّن مستخدمًا جديدًا * * @param Request $request * @return Response */ public function store(Request ...

التوجيه (Routing) في Laravel

التوجيه الأساسي تقبل أغلب مسارات Laravel الأساسيّة مُتغّيرين: رابط URI  و نطاق مغلق Closure مما يُوفّر طريقة بسيطة ومعبّرة جدّا لتعريف المسارات (routes): Route::get('foo', function () { return 'Hello World'; }); ملفات المسار الإفتراضيّة كل مسارات Laravel مُعرّفة في ملفات مساراتك الموجودة في المجلّد routes. يُحمّل إطار العمل كل هذه الملفّات تلقائيًا. يعرّف الملف routes/web.php كل المسارات المُخصّصة لواجهة الويب. مجموعة البرمجيّات الوسيطة web معيّنة على كل المسارات وتوفّر خاصيّات مثل حالة الجلسة (session state) والحماية CSRF. المسارات ...

الاستجابات HTTP في Laravel

إنشاء الردود السلاسل النصيّة والمصفوفات يجب على جميع الطرق ووحدات التحكّم رد استجابة لإرسالها مرّة أخرى إلى متصفّح المستخدم. يوفر Laravel عدة طرق مختلفة لإرجاع الردود. أكثر رد أساسي هو رد سلسلة نصيّة من مسار أو جهاز تحكّم. سيُحوّل إطار العمل السلسلة النصيّة إلى استجابة HTTP كاملة تلقائيًا: Route::get('/', function () { return 'Hello World'; }); يمكنك بالإضافة لرد السلاسل من مساراتك ووحدات تحكّمك رد مصفوفات. سيُحوّل إطار العمل تلقائيًا المصفوفة لاستجابة JSON: Route::get('/', function () { ...

اختبارات HTTP في Laravel

مقدمة يزوّدك Laravel بـواجهة برمجيّة سلسة للقيام بطلبات HTTP لتطبيقك وتحليل الناتج. على سبيل المثال، القِ نظرة على الاختبار التالي: <?php namespace Tests\Feature; use Tests\TestCase; use Illuminate\Foundation\Testing\RefreshDatabase; use Illuminate\Foundation\Testing\WithoutMiddleware; class ExampleTest extends TestCase {    /**     * مثال اختبار بسيط.     *     * @return void     */    public function testBasicTest()    {        $response = $this->get('/');        $response->assertStatus(200);    } } ينشئ التابع get طلب GET للتطبيق، بينما يتأكد التابع assertStatus من أنّ الرد المُعاد يحتوي على رمز حالة HTTP المعطى. إضافةً إلى هذا التأكد البسيط، يحتوي Laravel على مجموعة من توابع التأكيد لفحص المعلومات المتعلقة بالرد، كترويسات الرد (response headers)‎، ومحتوى الرد، وبنية ...

التجزئة (Hashing) في Laravel

مقدمة تقدم واجهة التجزئة الخاصة بإطار Laravel تجزئة Bcrypt و Argon2 آمنة لتخزين كلمات مرور المستخدم. إذا كنت تستخدم الصنفين الداخليين ‎(Built-in classes)‎ LoginController و RegisterController المتضمنين مع تطبيق Laravel الخاص بك، فإنهما يستخدمان Bcrypt للتسجيل والاستيثاق تلقائيًا. ملاحظة: يعدّ Bcrypt خيارًا رائعًا لتجزئة كلمات المرور لأن "عامل العمل" الخاص به قابل للتعديل، مما يعني أنه يمكن زيادة الوقت المستغرق لإنشاء تجزئة كلما زادت طاقة المعدات. الضبط يُضبط محرك تشغيل التجزئة التلقائي الخاص بتطبيقك في ملف الإعدادات config/hashing.php. يوجد حاليا ...

منشئ الاستعلامات في Laravel

مقدمة يوفّر منشئ استعلامات قاعدة بيانات Laravel واجهة ملائمة وسلسة لإنشاء وإدارة استعلامات قاعدة البيانات. يمكن استخدامه لتنفيذ معظم عمليات قاعدة البيانات بتطبيقك كما أنه يعمل على جميع أنظمة قواعد البيانات المدعومة. يستخدم منشئ استعلامات Laravel ارتباط المعاملة PDO لحماية تطبيقك من هجمات حقن SQL. لا حاجة لتنظيف السلاسل النصيّة التي تُمرّر كارتباطات. استرداد النتائج استرداد جميع الصفوف من الجدول تستطيع استخدام التابع table على الواجهة الساكنة DB لبدء استعلام. يرد التابع table نسخة منشئ استعلامات فصيحة (fluent) للجدول المحدد، ...

التسجيل (Logging) في Laravel

مقدمة يوفر Laravel خدمات تسجيل صلبة (robust) تسمح لك بتسجيل الرسائل في ملفّات، و سجّل أخطاء النظام، وحتى بتطبيق Slack لإعلام فريقك بأكمله وذلك لمساعدتك على معرفة المزيد حول ما يحدث داخل تطبيقك. يستخدم Laravel وراء الكواليس مكتبة Monolog التي توفر الدعم لمجموعة متنوعة من معالجات السجل القوية. يجعل Laravel إعداد هذه المُعالجات سهلة للغاية، ممّا يسمح لك بالتنسيق بينهم لتخصيص معالجة سجل تطبيقك. الضبط توجد كل إعدادات نظام تسجيل تطبيقك في ملف الإعدادات config/logging.php. يتيح لك هذا الملف إعداد ...

بنية المجلدات في Laravel

مقدمة تهدف هيكلية تطبيق Laravel الافتراضية إلى توفير نقطة بداية رائعة لكل من التطبيقات الكبيرة والصغيرة. بالطبع، أنت حر في تنظيم تطبيقك كما تشاء. لا يفرض Laravel أي قيود تقريبًا على مكان وجود أي صنف من أصناف مشروعك، طالما أن Composer يمكنه تحميل الصنف تلقائيًا. أين هو مجلّد النماذج؟ عند عملية البدء مع Laravel، يشوشّ العديد من المطورين بسبب عدم وجود المجلّد models. ومع ذلك، فإن عدم وجود مثل هذا المجلّد هو متعمد. نجد كلمة "نماذج" غامضة لأنها تعني الكثير ...

الجلسات HTTP في Laravel

مقدّمة توفر الجلسات طريقة لتخزين المعلومات حول المستخدم على عدّة طلبات نظرًا لأن التطبيقات المُعتمدة على HTTP بدون حالة. يأتي Laravel مع مجموعة متنوعة من الخلفيّات (backends) التي يمكن الوصول إليها عبر واجهة برمجية API تعبيرية موحّدة. كما يتضمّن دعم خلفيات شائعة مثل Memcached وRedis وقواعد البيانات خارج الأطر المألوفة. الضبط يُخزّن ملف إعدادات الجلسة في config/session.php. تأكد من مراجعة خياراتك المتاحة في هذا الملف. Laravel مُعد افتراضيًّا لاستخدام برنامج تشغيل (driver) الجلسة file الذي يعمل جيّدًا في العديد من ...

المجموعات (Collections) في Laravel

 مقدمة يوفر الصنف Illuminate\Support\Collection غلافًا ملائمًا و مساعدًا على العمل مع مصفوفات البيانات. مثلًا، تفقد الشيفرة الموالية إذ سنستعمل المساعد collect لإنشاء نسخة Collection جديدة من المصفوفة، ننفذ الدالة strtoupper مع كل عنصر، ثم نحذف كل العناصر الفارغة: $collection = collect(['taylor', 'abigail', null])->map(function ($name) { return strtoupper($name); }) ->reject(function ($name) { return empty($name); }); كما ترى، تسمح الدالة بسلسلة توابعها لتنفيذِ تخطيطِ دقيق و التحكم في حجم المصفوفة قيد العمل. بشكل عام، المجموعات غير قابلة للتغيير، أي أن كل ...

الترخيص (Authorization) في Laravel

مقدمة بالإضافة إلى توفير خدمات الاستيثاق المضمنة بإطار العمل Laravel، يوفر Laravel أيضًا طريقة بسيطة لترخيص عمليات المستخدم على مورد معين. مثلما هو الحال مع الاستيثاق، فإن أسلوب Laravel للترخيص بسيط، وهناك طريقتان أساسيتان لترخيص العمليات: البوابات والسياسات (gates and policies). فكر في البوابات والسياسات مثل المسارات ووحدات التحكم. توفر البوابات أسلوبًا بسيطًا يعتمد على الإغلاق للترخيص، بينما تقوم السياسات، مثل وحدات التحكم، بتجميع منطقها حول نموذج معين أو مورد. سنستكشف البوابات أولاً ثم نفحص السياسات. لست بحاجة إلى الاختيار ...

قوالب Blade في Laravel

مقدمة يقدم Laravel محرّك قولبةٍ بسيطاً لكن قويٌّ و فعّال هو Blade. على خلاف محرّكات PHP أخرى، لا يمنع Blade المستخدم من استعمال شيفرات PHP في الواجهة، بل إنّه يحوِِّل صفحات Blade إلى شيفرة PHP ويخزِّنها تخزينًا مؤقتًا إلى حين تغييرها. ممّا يعني أنّ Blade لا يتطلب أيّ جهد أو وقت إضافي من التطبيق. تنتهي صفحات Blade بالامتداد blade.php. وتوجد عادة في مجلد resources/views. توريث القوالب تعريف التخطيط إنّ من الفوائد الأساسية لاستخدام Blade هي توريث القوالب (template inheritance) واستخدام ...

التشفير (Encryption) في Laravel

مقدمة يستخدم مُشفّر Laravel مكتبة التشفير OpenSSL لتوفير تشفير AES-256 و AES-128. ننصحك بشدة باستخدام تسهيلات التشفير المضمنة في Laravel وعدم محاولة إنشاء خوارزميات التشفير المنشأة محليًا والخاصة بك. يتم توقيع جميع قيم Laravel المشفرة باستخدام رسالة رمز الاستيثاق (message authentication code - MAC) بحيث لا عدل قيمها الأساسية بمجرد تشفيرها. الضبط قبل استخدام مُشفّر Laravel، اضبط خيار المفتاح (‎(key في ملف الإعدادات config/app.php. استخدم الأمر php artisan key:generate لإنشاء هذا المفتاح لأن أمر Artisan سيستخدم مولد بايت عشوائي آمن ...

بناء Javascript و CSS

مقدمة لا يفرض Laravel عليك استخدام أي معالج JavaScript و CSS، إلّا إنّه يوفّر نقطة انطلاق بسيطة باستخدام Bootstrap و Vue ممّا سيساعد العديد من التطبيقات. بصفة عامّة، يستخدم Laravel أوامر npm لتنصيب حزم الواجهات الأمامية هذه. CSS يوفّر Laravel Mix واجهة برمجية (API) سهلة ومعبّرة لترجمة Sass أو Less، وهي إضافات للغة CSS الأساسية التي تضيف المتغيّرات والمخاليط (mixins) والعديد من الخصائص الأخرى التي تجعل العمل بلغة CSS أكثر متعة. في هذه الصفحة، سنناقش باختصار ترجمة CSS بصفة عامّة ...

الحزم (Package development) في Laravel

مقدمة الحزم هي الطريقة الأولى لإضافة وظائف ل Laravel. يمكن أن تكون الحزم أي شيء مثل طريقة للعمل مع التواريخ مثل Carbon أو إطار متكامل لاختبار قواعد البيانات مثل Behat. طبعًا، يوجد أنواع مختلفة من الحزم. بعض الحزم مكتفية بذاتها أي أنها تعمل مع أي إطار PHP مثل Behat و Carbon. يمكن طلب أي من هذه الحزم عبر الملف composer.json. من جهة أخرى، بعض الحزم مصنوعة خصيصا ل Laravel. هذه الحزم لديها مسارات، وحدات تحكم،  واجهات، وملفات ضبط معدة خصيصًا ...

مقدمة إلى التعامل مع الاختبارات في Laravel

مقدمة بُني Laravel آخذًا الاختبارات بالحسبان؛ إذ يدعم Laravel الاختبارات باستخدام PHPUnit، ويهيّئ ملف phpunit.xml جاهز للعمل بما يناسب تطبيقك. كما دُعم إطار العمل بتوابع مساعدة لتمهيد الطريق أمام اختبار تطبيقاتك بشكل سلس وسهل. يحتوي المجلد tests الخاص بتطبيقك افتراضيًّا على مجلّدين فرعيين: Feature و Unit. تمكنك اختبارات الوحدة Unit tests من التركيز على جزء صغير ومعزول من الشيفرة الخاصة بك، إذ أنّ معظم اختبارات الوحدة تركّز فقط على تابع واحد؛ بينما تستخدم اختبارات الميزات Feature tests لاختبار جزء كبير ...

الواجهات الساكنة (Facades) في Laravel

مقدمة تُوفِّر الواجهات الساكنة واجهة "ساكنة" (static) للأصناف المتوافرة في حاوي خدمات تطبيقك. يأتي Laravel مع عدة واجهات تمكنك من استخدام كل خاصيات Laravel تقريبًا. تمثل واجهات Laravel الساكنة "وسطاء ساكنات" (static proxies) للأصناف الأساسية بحاوي الخدمات مما يوفر كل فوائد الصِّيغ (syntax) المقتضبة والمُعبِّرة مع الحفاظ على قابلية الاختبار ومرونة أكبر من الدالات الساكنة التقليدية. كل واجهات Laravel الساكنة مُعرَّفةٌ في مجال الأسماء Illuminate\Support\Facades. يمكننا الوصول لواجهة ساكنة بهذه الطريقة: use Illuminate\Support\Facades\Cache; Route::get('/cache', function () { return ...

وحدات التحكّم (Controllers) في Laravel

مقدمة بدلًا من تعريف كامل منطق معالجة طلباتك (request handling logic) على أنّها نطاقات مغلقة (‎(Closures في ملفّات المسارات، قد ترغب في تنظيم هذا السلوك (behavior) باستخدام أصناف ووحدات التحكّم. تستطيع وحدات التحكّم جمع منطق معالجة الطلبات ذي الصلة في صنف واحد. تخزّن وحدات التحكّم في المجلّد app/Http/Controllers. وحدات التحكّم الأساسية تعريف وحدات التحكّم تجد أدناه مثالًا عن وحدة تحكّم بسيطة. لاحظ أن وحدة التحكّم تُوسّع صنف وحدة التحكّم الأساسية المُحتواة في Laravel. يوفّر الصنف الأساسي عددًا من التوابع المفيدة ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

ترجمة الأصول (Laravel Mix)

مقدمة يوفّر Laravel Mix واجهة برمجية (API) واضحة لتعريف خطوات بناء Webpack للتطبيق باستعمال العديد من المعالجات المسبقة (pre-processors) للغتي CSS و Javascript. باستخدام سلسلة بسيطة من استدعاءات التوابع، يمكن تعريف مسار معالجة الأصول (assets) في التطبيق. فمثلًا: mix.js('resources/assets/js/app.js', 'public/js') .sass('resources/assets/sass/app.scss', 'public/css'); إن أصبحت مرتبكا و مشوشا حول البدء مع Webpack وترجمة الأصول، فسوف تحب Laravel Mix. لكنك لست مطالبًا باستعمالها لبناء تطبيقك. طبعًا لك حرية اختيار أي مسار لمعالجة الأصول تريده، أو أن لا تستعمل أيًا منها على ...

طوابير الانتظار (Queues) في Laravel

مقدمة ملاحظة: يوفر Laravel الآن Horizon، لوحة تحكم وضبط للأنظمة المدعومة من طوابير انتظار Redis. تفقد توثيق Horizon لمزيد من المعلومات. توفّر طوابير انتظار Laravel واجهة API موحدة بين مختلف طوابير انتظار البيئة الخلفية مثل Beanstalk أو Amazon SQS أو Redis أو قواعد البيانات العلائقية. تسمح ٌطوابير الانتظار بتأخير إنجاز المهام التي تتطلب الكثير من الوقت مثل إرسال بريد لوقت لاحق. تأخير هذه المهام يسرّع طلبات الويب في التطبيق بشكل كبير. يوجد ملف ضبط طوابير الانتظار في config/queue.php. ستجد في ...

بيئة تطوير Valet في Laravel

مقدمة Valet هي بيئة تطوير Laravel لأجهزة ماك. لا حاجة إلى استخدام Vagrant، ولا ملف ‎/etc/hosts. يمكنك أيضًا مشاركة مواقعك بشكل عام باستخدام الأنفاق المحلية. تقوم بيئة Laravel Valet بتكوين جهاز ماك الخاص بك لتشغيل Nginx دائمًا في الخلفية عند بدء تشغيل الجهاز. ثم، باستخدام DnsMasq، يقوم خادم Valet بتجميع جميع الطلبات على نطاق test.* للإشارة إلى المواقع المثبتة على جهازك المحلي. بعبارة أخرى، بيئة تطوير Laravel فائق السرعة تستخدم ما يقرب من 7 ميغابايت من ذاكرة الوصول العشوائي RAM. ...

تهجير قاعدة البيانات في Laravel

مقدمة تشبه عمليات التهجير التحكم في الإصدار لقاعدة بياناتك، مما يسمح لفريقك بتعديل مخطط قاعدة البيانات ومشاركته بسهولة. وعادةً ما تقترن عمليات التهجير بمنشئ مخططات Laravel لبناء مخطط قاعدة البيانات تطبيقك بسهولة. وإذا كان عليك في أي وقت مضى إخبار أحد أعضاء الفريق بإضافة عمود يدويًا إلى مخطط قاعدة البيانات المحليّة الخاصة بك، فقد واجهت المشكلة التي حُلّت باستخدام تهجيرات قاعدة البيانات. توفّر الواجهة الساكنة Schema دعمًا لإنشاء وتعديل الجداول عبر جميع أنظمة قواعد البيانات المدعومة من قبل Laravel. توليد ...

التخزين المؤقت (Cache) في Laravel

الضبط يوفر Laravel واجهة برمجيّة معبّرة وموحّدة لكل التخزين المؤقت. يوجد ملف ضبط التخزين في config/cache.php. في هذا الملف، يمكن تحديد مشغّل التخزين الذي سيُستعمل تلقائيًّا في كامل التطبيق. يدعم Laravel العديد من الواجهات الخلفيّة الشائعة مثل Memcached و Redis من البداية. يحتوي ملف ضبط التخزين أيضًا على خيارات متعدّدة مفصّلة في الملف ذاته لذا تأكد من قراءته جيدا. تلقائيًّا، يستعمل Laravel برنامج التشغيل file للتخزبن المؤقت، يسجل هذا المشغل الكائنات المخزّنة بطريقة متسلسلة في نظام الملفات. بالنسبة للتطبيقات الكبيرة، ...

البرمجيّات الوسيطة (Middleware) في Laravel

مقدمة تُوفِّر البرمجيّات الوسيطة آلية ملائمة لفرز الطلبات HTTP التي تدخل تطبيقك. على سبيل المثال، يحتوي Laravel على برمجيّّة وسيطة تتحقق إن كان مستخدم تطبيقك مصادقا عليه (authenticated). في حالة لم يكن مصادقا عليه، تعيد البرمجيّة الوسيطة توجيهه لصفحة تسجيل الدخول. في حالة كان مصادقا عليه، ستسمح البرمجيّة للطلب بالمرور لسائر التطبيق. يمكن طبعا كتابة برمجيّات وسيطة للقيام بمهام متنوعة عديدة عدا تسجيل الدخول. قد تكون برمجيّة CORS وسيطة مسؤولة عن إضافة الترويسات (headers) المناسبة لكل الردود التي يرسلها تطبيقك. ...

توليد عناوين URL في Laravel

مقدمة يوفّر Laravel العديد من المساعدين لمساعدتك في إنشاء عناوين URL لتطبيقك. فائدتهم الأساسية تظهر طبعا عند بناء روابط في قوالبك (templates) واستجابات الواجهة البرمجيّة، أو عند توليد ردود إعادة توجيه إلى جزء آخر من تطبيقك. الأساسيات توليد عناوين URL أساسية يمكن استخدام المساعد url لتوليد عناوين URL عشوائية لتطبيقك. سيستخدم العنوان URL المُنشأ تلقائيًا المخطَّط (HTTP أو HTTPS) ويستضيف من الطلب الحالي: $post = App\Post::find(1); echo url("/posts/{$post->id}"); // http://example.com/posts/1 الوصول إلى العنوان URL الحالي سترد النسخة Illuminate\Routing\UrlGenerator إن لم يُوفّر أي ...

ترقيم الصفحات Pagination في Laravel

مقدمة كثيرًا ما يكون ترقيم الصفحات في الأطر الأخرى متعبًا جدًا. هنا في Laravel، دُمج مُرقّم صفحات Laravel مع منشئ الاستعلامات و رابط الكائنات بالعلاقات Eloquent، وهو يوفّر ترقيم صفحات لنتائج قواعد البيانات سهل الاستخدام فورًا. يتوافق HTML المُنشئ بواسطة مُرقّم الصفحات مع إطار عمل Bootstrap CSS. الاستخدام الأساسي ترقيم نتائج صفحات منشئ الاستعلام هناك عدّة طرق لترقيم العناصر. أبسطها باستخدام التابع paginate على منشئ الاستعلامات أو Eloquent الاستعلامات. يهتم التابع paginate تلقائيًا بإعداد الحد و والإزاحة (offset) المناسبة استنادًا ...

مشغّل المهام Envoy في Laravel

مقدمة يوفّر Laravel Envoy صياغة نظيفة ومختزلة لتعريف المهام الشائعة وتشغيلها على الخوادم البعيدة (remote servers)، ويمكنك إعداد المهام بسهولة باستخدام صياغة نمط Blade للنشر، أوامر Artisan وغيرها. ويدعم Envoy في الوقت الحالي أنظمة تشغيل لينكس و ماك فقط. التثبيت ثبّت أولًا Envoy باستخدام أمر global require الخاص بالأمر Composer: composer global require laravel/envoy قد تتسبب مكتبات Composer العامة (global) في بعض الأحيان في حدوث تعارضات في الحزم، يمكنك في هذه الحالة استخدام مكتبة cgr والذي يعد بديلًا للأمر composer global ...

اختبارات قواعد البيانات في Laravel

مقدمة يزوّدك Laravel بمجموعة من الأدوات المفيدة لتسهيل اختبار تطبيقاتك المقادة بواسطة قواعد البيانات. أولاً، يمكنك استخدام التابع المساعد assertDatabaseHas للتأكد من أن البيانات موجودة ضمن قاعدة البيانات ضمن مجموعة الشروط المعطاة. على سبيل المثال، إن أردت التأكد من أن سجلًا ما موجود ضمن جدول users ببريد مطابق لـ sally@example.com، يمكنك فعل التالي: public function testDatabase() { // القيام بمناداة التطبيق... $this->assertDatabaseHas('users', [ 'email' => 'sally@example.com' ...

دورة حياة الطلب (Request Lifecycle) في Laravel

مقدمة عندما تفهم كيفية عمل أدوات تطويرك تزداد راحتك وثقتك عند استخدامها. تطوير التطبيقات لا يشذ عن هذه القاعدة. الهدف من هذه الصفحة هو منحك نظرة عامة جيدة وعالية المستوى عن كيفية عمل إطار عمل Laravel. يزول الإحساس "السحري" عن كل شيء عندما تبدأ بتحسين فهمك لمنصة العمل بشكل عام. لا تيأس إن لم تفهم كل المصطلحات على الفور! حاول فقط تكوين فكرة عامة عما يحدث ومعرفتك ستزداد كلما اكتشفت أجزاء جديدة من هذا التوثيق. نظرة عامة عن دورة الحياة ...

مقدمو الخدمات (Service Providers) في Laravel

مقدمة مقدمو الخدمات هن الموقع المركزي لكامل عمليات تمهيد تطبيق Laravel. تطبيقك، ككامل خدمات Laravel الجوهرية، مُمَهَّد عبر مقدمي الخدمات. لكن ما الذي نقصده "بالتمهيد" (bootstrapping)؟ نقصد به عمومًا تسجيل الأشياء، بما في ذلك تسجيل ارتباطات حاويات الخدمات، ومنصتات الأحداث، والبرمجيات الوسيطة، وحتى المسارات (routes). مقدمو الخدمات هي المكان المركزي لإعداد تطبيقك مثلما ذكرنا سابقًا. إن فتحت الملف config/app.php المتضمن في Laravel فسترى المصفوفة providers، والتي تمثّل كل أصناف مقدمي الخدمات التي سَتُحَمَّل من أجل تطبيقك. كثير منهن طبعا مقدمون ...

إعادة تعيين كلمات المرور (Password Reset) في Laravel

مقدمة تريد أن تبدأ بسرعة؟ فقط نفذ الأمر php artisan make:auth في تطبيق Laravel جديد وانتقل بالمتصفح إلى الرابط http://your-app.test/register أو أي رابط URL آخر عيّن لتطبيقك. سيهتم هذا الأمر بنظام الاستيثاق بأكمله، بما في ذلك إعادة تعيين كلمات المرور! توفر معظم تطبيقات الويب للمستخدمين طريقة لإعادة تعيين كلمات المرور المنسية. بدلًا من إجبارك على إعادة برمجة ذلك في كل تطبيق، يوفر Laravel طرقًا ملائمة لإرسال رسائل تذكير بكلمات المرور وإجراء عمليات إعادة تعيين كلمة المرور. قبل استخدام ميزات إعادة ...

المجموعات في رابط الكائنات بالعلاقات Eloquent

مقدمة إنّ جميع مجموعات النتائج المتعددة المعادة من Eloquent هي كائنات من الصنف Illuminate\Database\Eloquent\Collection، بما فيها النتائج المستردة من التابع get أو من العلاقات. يرث صنف مجموعة Eloquent من الصنف الأساسي لمجموعة Laravel، وبالتالي ترث هذه المجموعات الكثير من التوابع التي تساعد بالعمل مع المصفوفات المستخدمة مع نماذج Eloquent. بالطبع، تعمل جميع المجموعات كمكررات، مما يمكّنك من المرور على عناصرها وكأنها مصفوفات عادية: $users = App\User::where('active', 1)->get(); foreach ($users as $user) {    echo $user->name; } لكنّ المجموعات أقوى بكثير من المصفوفات، إذ تزود الكثير ...

التعامل مع قواعد بيانات Redis في Laravel

مقدمة Redis هو مخزن متقدم لمفتاح-قيمة (key-value) وهو مفتوح المصدر، وغالبًا ما يشار إليه على أنه خادم هيكلية البيانات حيث يمكن أن تحتوي المفاتيح على سلاسل نصيّة وشيفرات وقوائم ومجموعات ومجموعات مرتبة. قبل أن نستخدم Redis مع Laravel، ستحتاج إلى تثبيت حزمة predis/predis عن طريق Composer: composer require predis/predis ويمكنك بدلًا من ذلك تثبيت ملحق PhpRedis PHP عن طريق PECL، ويعد هذا الملحق الأكثر تعقيدًا، ولكن ستكون النتائج ذات أداء أفضل لتطبيقات التي تستخدم Redis بشكل مكثف. الضبط إن ملف ضبط ...

الأمر Artisan console) Artisan) في Laravel

مقدمة Artisan هي واجهة الأوامر المُرفقة ب Laravel. وهي تُوفّر عددًا من الأوامر المفيدة والتي ستساعدك في بناء التطبيق. لإظهار جميع الأوامر التي يوفّرها Artisan، يمكنك استعمال الأمر list php artisan list يحتوي كل أمر على صفحة مساعدة "help" تعرّف وتوضّح الأمر كما تُقدّم قائمة المعاملات والخيارات لكل أمر. يُستعمل الأمر مسبوقًا بالكلمة help لإظهار صفحة المساعدة: php artisan help migrate Laravel REPL تأتي كل تطبيقات Laravel مُرفَقَةً ب Tinker، وهي REPL مشغّلة بواسطة حُزمة PsySH. يسمح Tinker بالتفاعل مع ...

حاوي الخدمات (Service Container) في Laravel

مقدمة حاوي خدمات Laravel (أي Laravel service container) هو أداةٌ قوية لإدارة اعتِماديَّات (dependencies) الصِّنف والقيام بإضافة اعتِماديَّات (dependency injection)." إضافة الاعتِماديَّات" هو مصطلح تقني يعني في مُجمله "إضافة" اعتماديات الصنف باستخدام التابع الباني (constructor) أو في بعض الحالات توابع ضبط القيم (setter). لنلقِ نظرة على هذا المثال البسيط: <?php namespace App\Http\Controllers; use App\User; use App\Repositories\UserRepository; use App\Http\Controllers\Controller; class UserController extends Controller { /** * مستودع المُستخدِم تطبيق * * @var ...

تخزين الملفات (File storage) في Laravel

مقدمة يوفّر Laravel تجريدًا قويًا لنظام الملفات بفضل الحزمة Flysystem. يوفّر تضمين أنظمة الملفات في Laravel مشغّلات سهلة الاستعمال للتعامل مع الأنظمة المحلية و Amazon S3 والتخزين السحابي Rackspace، بل من السهل جدًا تغيير خيارات التخزين إذ تبقى وصلة API نفسها مع كل الأنظمة. الضبط يوجد ملف ضبط نظام الملفات في config/filesystems.php. يمكنك في هذا الملف ضبط كل الأقراص "disks". يمثّل كل قرص مشغّل تخزين ومكان تخزين خاص. يحتوي الملف على أمثلة ضبط لكل مشغّل مدعوم. لذا غيّر الملف حسب ...

جدولة المهام (Task scheduling) في Laravel

مقدمة ربّما ولّدت في الماضي نقطة دخول Cron لكل مهمة أردت جدولتها في الخادم. لكن يمكن أن يصبح هذا متعبًا بسرعة لأن الجدولة أصبحت خارج تحكم المصدر وأصبح عليك أن تدخل ب SSH للخادم لإضافة نقاط دخول Cron. يسمح مجدول الأوامر في Laravel بتعريف جدول المهام داخل Laravel بطريقة سلسلة وواضحة. عند استخدام جدولة المهام، تحتاج لنقطة دخول Cron واحدة على الخادم. يُعرّف جدول المهام في التابع schedule من الملف app/Console/Kernel.php. لمساعدتك على البداية، يوجد مثال بسيط معرّف في التابع. ...

التعامل مع البريد الإلكتروني (Mail) في Laravel

 مقدمة يوفّر Laravel واجهة برمجية (API) سلسة و بسيطة للمكتبة الرائجة SwiftMailer مع برنامج تشغيل لكل من SMTP و Mailgun و SparkPost و Amazon SOS وتابع mail ، و sendmail. ممّا يسمح بالبداية في إرسال الرسائل الإكترونية بسرعة عبر خدمات محلية أو سحابية من اختيارك. برامج التشغيل اللازمة تكون برامج التشغيل المعتمدة على الوسائط مثل Mailgun و SparkPost في العادة أسرع وأسهل في الاستعمال من خوادم SMTP. استعمل أحد هذه برامج التشغيل إن أمكنك. تَستعمل كل المشغّلات التي تعتمد على ...

معالجة الأخطاء (Error Handling) في Laravel

مقدمة عند بدء مشروع Laravel جديد تكون معالجة الأخطاء والاستثناءات مُعدّة لك مُسبقا. تُسجّل كافة الاستثناءات التي يطلقها تطبيقك في الصنف App\Exceptions\Handler ثم تُرجع للمُستخدم. سنتعمّق في هذا الصنف أكثر من خلال هذا التوثيق. الضبط يحدد الخيار debug في ملف إعداداتك config/app.php مقدار المعلومات الفعلية التي تُعرض عن الخطأ للمستخدم. يُعد هذا الاختيار إفتراضيًّا ليحترم قيمة متغيّر البيئة APP_DEBUG التي تُخزّن في ملفك env. . عليك وضع قيمة متغير البيئة APP_DEBUG على true عند التطوير المحلّي. يجب أن توضع هذه ...

مقدمة إلى التعامل مع قواعد البيانات في Laravel

مقدمة يُبسّط Laravel التعامل مع قواعد البيانات بشكل كبير عبر مجموعة متنوعة من الأسندة الخلفية (backends) قواعد البيانات إمّا باستخدام  لغة الاستعلام البنيوية SQL خام أو باستخدام منشئ الاستعلامات الفصيح (fluent query builder)، أو باستخدام رابط الكائنات بالعلاقات Eloquent. يدعم Laravel حاليًا أربع قواعد بيانات: MySQL PostgreSQL SQLite SQL Server الضبط تقع إعدادات قاعدة بيانات تطبيقك في config/database.php. تستطيع في هذا الملف تعريف جميع اتصالات قاعدة بياناتك لإضافةً لتحديد الاتصال الافتراضي. تتوافر أمثلة عن معظم أنظمة قواعد البيانات المدعومة في ...

بذر قواعد البيانات بالبيانات الاختبارية Seeding في Laravel

مقدمة يتضمّن Laravel تابع بسيط لملء قاعدة البيانات الخاصة بك مع بيانات للتجربة باستخدام أصناف البذر. ستجد جميع أصناف البذر في مجلّد database/seeds، وقد تحتوي أصناف البذر على أي اسم تريده، لكن ربما يجب عليك اتباع بعض المعايير المعقولة مثل UsersTableSeeder ...إلخ. وبشكل افتراضي، سيكون صنف DatabaseSeeder معرّف لك، ومن خلال هذا الصنف يمكنك استخدام أسلوب call لتشغيل بقيّة أصناف البذر، مما يسمح لك بالتحكم بترتيب البذر. كتابة منشئات البذور لتوليد منشئ البذرة (seeder)، نفّذ أمر make:seeder Artisan وستجد جميع ...

تزييف الأحداث لأغراض الاختبار Mocking في Laravel

مقدمة عند اختبار تطبيقات Laravel، قد تحتاج إلى "تقليد الأصل" لبعض جوانب تطبيقك، حتى لا يتم تنفيذها بشكل فعلي في اختباراتك. على سبيل المثال، عند اختبار متحكم ما يقوم بإرسال حدث، قد تحتاج إلى تقليد الأصل لمنصت الأحداث حتى لا تشغّل فعليًا أثناء الاختبار. يساعدك ذلك على اختبار رد المتحكم فقط دون الحاجة للقلق حيال تنفيذ منصتي الأحداث، نظرًا لكونها مستقلة في حالات اختباراتها. يزوّد Laravel بمجموعة من المساعدات لتقليد أصل الأحداث والأعمال ‎(Jobs)‎ والواجهات الساكنة ‎(Facades‎)‎. تزود هذه المساعدات ...

الخاصية content

الخاصية content في CSS تُستخدَم مع العنصرين الزائفين ‎::before و ‎::after لتوليد محتوى في العنصر. بطاقة الخاصية القيمة الابتدائية normal تُطبَّق على العنصرين الزائفين ‎::before و ‎::after. قابلة للوراثة لا قابلة للحركة لا القيمة المحسوبة ستكون القيمة هي normal دومًا إذا طُبِّقت هذه الخاصية على العناصر العادية. وإذا كانت القيمة normal وطُبِّقَت على العنصرين الزائفين ‎::before و ‎::after فستكون القيمة المحسوبة هي none. إذا استخدمنا روابط URL النسبية فستحوِّل إلى روابط مطلقة. إذا استخدمنا الدالة attr(x)‎ فستحوِّل القيمة إلى سلسلة نصية. ...

الموارد في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات برمجة التطبيقات (المدعوة اختصاراً APIs)، قد تحتاج إلى طبقة تحويل تقع بين نماذج Eloquent وردود JSON المعادة فعليًّا إلى مستخدمي تطبيقك. تمكّنك الموارد في Laravel من تحويل النماذج بشكل فعال وسهل، بما يتضمن مجموعات النماذج. توليد الموارد لتوليد صنف مورد، يمكنك استخدام أمر artisan make:resource. افتراضيًّا، تقع الموارد في المجلد app/Http/Resources الخاص بتطبيقك. ترث الموارد من الصنف الأساسي Illuminate\Http\Resources\Json\JsonResource: php artisan make:resource User موارد المجموعات إضافةً إلى توليد موارد لتحويل النماذج الأحادية، يمكنك توليد موارد مسؤولة ...

السلسلة في رابط الكائنات بالعلاقات Eloquent

مقدمة عند بناء واجهات JSON APIs، تحتاج معظم الأوقات إلى تحويل نماذجك وعلاقاتها إلى مصفوفات أو كائنات JSON. يزود Eloquent بمجموعة من التوابع المساعدة لهذه التحويلات، إضافةً إلى التحكم بالحقول التي يجب تضمينها في التحويلات. سلسلة النماذج والمجموعات السلسلة لمصفوفات لتحويل نموذج وعلاقاته المحمّلة لمصفوفة، يمكنك استخدام التابع toArray. إن هذا التابع تعاودي، لذلك ستُحوّل كل الحقول وكل العلاقات (وعلاقات العلاقات) إلى مصفوفات: $user = App\User::with('roles')->first(); return $user->toArray(); يمكنك أيضًا تحويل مجموعة كاملة من النماذج إلى مصفوفة: $users = App\User::all(); return $users->toArray(); السلسلة ...

المعدلات في رابط الكائنات بالعلاقات Eloquent

مقدمة تمكّنك المعدّلات والموصّلات من تنسيق قيم خاصيّات Eloquent عند استردادها أو تعيينها على كائنات النماذج. مثلًا، يمكنك استخدام مشفّر Laravel لتشفير قيمة ما أثناء تخزينها بقاعدة لًا، ومن ثمّ فك تشفيرها تلقائيًّا عند استردادها من نموذج Eloquent. إضافةً إلى المعدلات والموصلات الافتراضية، يمكّنك Eloquent من التحويل التلقائي للخاصيات الزمنية إلى كائنات من الصنف Carbon أو حتى تحويل الخاصيات النصية إلى كائنات JSON. المعدلات والموصلات تعريف الموصل لتعريف موصل ما، عرف التابع getFooAttribute على صنف نموذجك حيث Foo هو اسم ...

مقدمة إلى رابط الكائنات بالعلاقات Eloquent

مقدمة يزود رابط الكائنات بالعلاقات Eloquent ORM المضمّن في Laravel تنفيذًا بسيطًا من أجل قواعد البيانات التي تتعامل مع الـ ActiveRecord. كل جدول في قاعدة البيانات يقابله نموذج (Model) يُستخدم للتفاعل مع هذا الجدول. تمكّنك النماذج من تنفيذ الاستعلامات على البيانات الموجودة في الجداول، إضافةً إلى إضافة البيانات الجديدة. قبل البدء، تأكد من تهيئة اتصال قاعدة البيانات في الملف config/database.php. للمزيد من المعلومات حول تهيئة قاعدة البيانات، تفقّد التوثيق المناسب. تعريف النماذج للبدء، لننشئ نموذج Eloquent. تتواجد النماذج افتراضيًّا في ...

العلاقات في رابط الكائنات بالعلاقات Eloquent

مقدمة في معظم الأحيان، تكون جداول قواعد البيانات مرتبطة ببعضها البعض. على سبيل المثال، قد يكون لمقالة ما الكثير من التعليقات، أو قد تكون الطلبيّة مرتبطة بالمستخدم الذي قام بها. يجعل Eloquent العمل مع هذه العلاقات أمرًا سهلًا، ويدعم عدة أنواع من العلاقات المختلفة: واحد إلى واحد (One To One) واحد إلى كثير (One To Many) كثير إلى كثير (Many To Many) الكثير ضمن (Has Many Through) العلاقات متعددة الأشكال (Polymorphic Relationships) علاقات الكثير إلى كثير متعددة الأشكال (Many To ...

خط أنابيب الأصول في ريلز

يغطّي هذا الدليل أنبوب الأصول. ستتعلم بعد قراءة هذا الدليل: ماهيّة أنبوب الأصول وماذا يفعل. كيفيّة تنظيم أصول تطبيقك بشكل صحيح. فوائد أنبوب الأصول. كيفيّة إضافة معالج مسبق (pre-processor) إلى الأنبوب. كيفيّة وضع الأصول مع جوهرة في حزمة. ما هو أنبوب الأصول؟ يوفّر أنبوب الأصول إطارًا لسَلسَلة وتصغير أو ضغط أصول JavaScript و CSS. كما أنه يضيف القدرة على كتابة هذه الأصول بلغات أخرى ومعالجات مسبقة مثل CoffeeScript و Sass و ERB. يسمح للأصول في تطبيقك أن تُدمج تلقائيًّا مع ...