نتائج البحث

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

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

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

الثوابت في PHP

الثابت هو معرّف (اسم) لقيمة بسيطة، وكما هو واضح من الاسم فإنّ هذه القيمة غير قابلة للتبديل أثناء تنفيذ الشيفرة (باستثناء الثوابت السحرية والتي لا تعدّ ثوابت في الواقع). الثابت حساس لحالة الأحرف ومن الشائع استخدام الأحرف الكبيرة في تسمية الثوابت. تتبع الثوابت نفس القواعد المتّبعة للتسمية في PHP، فاسم الثابت الصحيح يبدأ بحرف أو بشرطة سفلية، متبوعًا بعدد غير محدّد من الأحرف والأرقام والشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expressions) للتعبير عن اسم المتغير فسيكون كالتالي: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ...

الثوابت في PHP

الثابت هو معرّف (اسم) لقيمة بسيطة، وكما هو واضح من الاسم فإنّ هذه القيمة غير قابلة للتبديل أثناء تنفيذ الشيفرة (باستثناء الثوابت السحرية والتي لا تعدّ ثوابت في الواقع). الثابت حساس لحالة الأحرف ومن الشائع استخدام الأحرف الكبيرة في تسمية الثوابت. تتبع الثوابت نفس القواعد المتّبعة للتسمية في PHP، فاسم الثابت الصحيح يبدأ بحرف أو بشرطة سفلية، متبوعًا بعدد غير محدّد من الأحرف والأرقام والشرطات السفلية. ولو أردنا استخدام التعابير النمطية (Regular Expressions) للتعبير عن اسم المتغير فسيكون كالتالي: [a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ...

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

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

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

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

Laravel Scout

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

Laravel Scout

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

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

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

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

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

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

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

الجلسات HTTP في Laravel

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

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

for في PHP

(PHP 4, PHP 5, PHP 7) تعدّ حلقات for النوع الأكثر تعقيدًا من الحلقات في PHP، وهي مشابهة لنظيرتها في لغة C، وتأخذ الصيغة التالية: for (expr1; expr2; expr3) statement ينفّذ التعبير expr1 مرة واحدة دون قيد أو شرط في بداية الحلقة، وينفّذ التعبير expr2 في بداية كل دورة، فإن كانت النتيجة هي TRUE فتستمر الحلقة في عملها وتنفّذ العبارات المضمّنة فيها، أما إن كانت النتيجة هي FALSE فتتوقف الحلقة عن العمل، أما التعبير expr3 فينفّذ في ...

if في PHP

(PHP 4, PHP 5, PHP 7) بنية if هي واحدة من أهم الميزات المتوفّرة في العديد من اللغات البرمجية، ومن ضمنها PHP. إذ تتيح تنفيذ أجزاء من الشيفرة اعتمادًا على شروط معينة. تعتمد PHP بنية if المعتمدة في لغة C: if (expr) statement تُحسب التعابير -كما ورد في الفصل المتعلّق بالتعابير في هذا الدليل- إلى قيمة منطقية (Boolean)، فإن كانت نتيجة الحساب هي TRUE تنفذ PHP العبارة، وإن كانت نتيجة الحساب هي FALSE تتجاهل اللغة ذلك التعبير. يمكن الحصول ...

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

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

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

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

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

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

اختبارات 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)‎، ومحتوى الرد، وبنية ...

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

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

عرض (20 السابقة | 20 التالية) (20 | 50 | 100 | 250 | 500).