نتائج البحث

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

PHP/Function

تحتوي لغة PHP على عددٍ كبير من الدوال القياسية المُضمَّنة في اللغة. دوال المصفوفات الدوال الرياضية دوال معالجة النصوص

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

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

التحكم بالتدفق (Control Flow) في Kotlin

كما في أيّة لغة برمجة فإن لغة Kotlin تحتوي على تعابير للتحكم بالتدفق، وهي: تعبير if، وتعبير when، وحلقة for، وحلقة while. وتدعم كذلك الكلمتين المفتاحيّتَين continue و break المستخدَمتَين في الحلقات (راجع أوامر الرجوع والقفز returns and jump). تعبير if يُعدُّ الشرط if في لغة Kotlin تعبيرًا يعيد قيمة، وبالتالي لا حاجة للصيغة condition ? then : else لأن تعبير if يقوم بهذا الدور كما في الشيفرة الآتية: // الاستخدام الاعتيادي var max = a if (a < b) max = b // ...

الدوال (Functions) في لغة Kotlin

التصريح عن الدوال (Function Declarations) يُصرَّح عن الدوال في لغة Kotlin باستخدام الكلمة المفتاحيّة fun كما يلي: fun double(x: Int): Int { return 2 * x } استخدام الدوال (Function Usage) يكون استدعاء الدوال كما في أيّ لغة برمجةٍ أخرى بالشكل: val result = double(2) أمّا استدعاء الدوال من الأصناف فيعتمد على المعامل . كما في الشيفرة: Sample().foo() // إنشاء كائنٍ من الصنف واستدعاء الدالة عبره المعاملات (Parameters) تُعرَّف المعاملات بالصيغة المُعتمدَة في لغة Pascal وهي name: type ، ...

الكائن Function في JavaScript

الدالة البانية Function تُنشِئ كائن Function جديد، واستدعاء الدالة البانية مباشرةً يمكِّننا من إنشاء الدوال ديناميكيًا، لكنه يعاني من مشاكل تتعلق بالأداة والناحية الأمنية بما يشابه دالة eval. يجدر بالذكر أنَّ جميع الدوال في JavaScript هي كائنات Function. البنية العامة new Function ([arg1[, arg2[, ...argN]],] functionBody) arg1, arg2, ... argN الأسماء المستخدمة من الدالة للإشارة إلى الوسائط المُمرَّرة إلى الدالة، ويجب أن تكون سلاسل نصية تُمثِّل مُعرِّفات JavaScript صالحة أو قائمة من تلك السلاسل النصية التي يُفصَل بينها بفاصلة؛ مثلًا: ...

JavaScript/Topics/Functions

هذا القسم فيه ما يتعلق بميزات دوال JavaScript التي تستفيد منها في تطوير التطبيقات. الدوال في JavaScript الكائن arguments الدوال السهمية الوسائط الافتراضية معامل البقية

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

الكائنات في PHP

تهيئة الكائن لإنشاء كائن جديد، استخدم التعبير البرمجي new لتهيئة كائن من صنفٍ ما (class): <?php class foo { function do_foo() { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); ?> راجع فصل الأصناف والكائنات (Classes and Objects) للمزيد من المعلومات. التحويل إلى كائن إذا حوّلنا كائنًا إلى كائنٍ آخر فلن يُعدَّل فيه شيء، أما إذا حولنا قيمةً من أي نوعٍ آخر إلى كائن، فستُنشَأ نسخةً جديدةً من ...

الدالة json_encode()‎‎ في PHP

(PHP 5 >= 5.2.0, PHP 7, PECL json >= 1.2.0) تُعيد الدالة json_encode()‎ قيمةً ما على شكل صيغة JSON. الوصف string json_encode ( mixed $value [, int $options = 0 [, int $depth = 512 ]] ) تُعيد سلسلة نصّيّة على شكل صيغة JSON للقيمة المُدخلة. يتأثّر الترميز بالخيارات المُعطاة للمُعامِل options ويعتمد ترميز القيم من نوع عدد ذو فاصلة عائمة (float) على القيمة المُحدَّدة في الإعدادات للخيار serialize_precision. المعاملات value وهي القيمة المطلوب ترميزها، يمكن أن تكون من أي نوع ...

الدالة preg_replace_callback()‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎‎ في PHP

(PHP 4 >= 4.0.5, PHP 5, PHP 7) تبحث الدالة preg_replace_callback()‎‎ عن تعبير نمطي وتستبدله باستخدام دالة مُعرَّفة من المستخدم. الوصف mixed preg_replace_callback ( mixed $pattern , callable $callback , mixed $subject [, int $limit= -1 [, int &$count ]] ) يتطابق سلوك هذه الوظيفة تقريبًا مع الدالة preg_replace()‎‎، باستثناء أنه يجب تحديد الدالة المُعرَّفة من المستخدم callback بدلاً من المعامل replacement. المعاملات pattern النمط المراد البحث عنه. ويمكن أن يكون إما سلسلةً نصيةً أو مصفوفةً من السلاسل النصية. callback الدالة ...

الدالة ob_implicit_flush()‎ في PHP

(PHP 4, PHP 5, PHP 7) تشغل/توقف الدالة ob_implicit_flush()‎ الإفراغ الضمني (الآلي). الوصف void ob_implicit_flush ([ int $flag = 1 ])‎ تشغل أو توقف الدالة ob_implicit_flush()‎ الإفراغ الضمني (الآلي). تنتج عن الإفراغ الضمني (الآلي) عملية إفراغ بعد كل استدعاء للإخراج, وبذلك لن تكون هنالك حاجة لاستدعاء الإفراغ الصريح. المعامل flag تأخذ القيمة  1 لتشغيل الإفراغ الضمني, و القيمة 0 لما عدا ذلك. القيم المعادة لا تعيد الدالة ob_implicit_flush()‎ أي قيمة. انظر أيضا الدالة ()flush: تفرع المخزن المؤقت للإخراج الدالة ()ob_start: تشغيل المخزن ...

الدالة ob_flush()‎ في PHP

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تفرغ (ترسل) الدالة ob_flush‎()‎ المخزن المؤقت للإخراج. الوصف ob_flush (void)‎ ترسل الدالة  ob_flush‎()‎ محتويات المخزن المؤقت للإخراج (إن وجد). إذا كنت ترغب كذلك في معالجة محتويات المخزن المؤقت، يجب عليك استدعاء الدالة ob_get_contents()‎ قبل الدالة ob_flush‎()‎ إذ تُحذَف محتويات المخزن المؤقت بعد استدعاء ob_flush‎()‎. لا تدمر الدالة ob_flush()‎ المخزن المؤقت للإخراج مثلما تفعل ob_end_flush()‎. القيم المعادة لا تعيد الدالة ()ob_flush أي قيمة. انظر أيضًا الدالة ()ob_get_contents: ترجع محتويات المخزن المؤقت للإخراج. الدالة ()ob_clean: ...

الدالة ob_get_length()‎ في PHP

(PHP 4 >= 4.0.2, PHP 5, PHP 7) تعيد الدالة ob_get_length()‎ طول المخزن المؤقت للإخراج. الوصف int ob_get_length (void) تعيد الدالة ob_get_length()‎ طول المخزن المؤقت للإخراج بالبايت(byte). القيم المعادة تعيد الدالة ob_get_length()‎ طول المخزن المؤقت للإخراج بالبايت, أو القيمة FALSE إذا كان التخزين المؤقت غير مفعل. أمثلة المثال 1: استعمال الدالة ob_get_length()‎ <?php ob_start(); echo "Hello "; $len1 = ob_get_length(); echo "World"; $len2 = ob_get_length(); ob_end_clean(); echo $len1 . ", " . $len2; ?> سوف تكون مُخرجات المثال أعلاه كالتالي. 6, 11 انظر أيضا الدالة ()ob_start: تشغل المخزن المؤقت للإخراج. ...

الدالة ob_get_contents()‎ في PHP

(PHP 4, PHP 5, PHP 7) تعيد الدالة ob_get_contents()‎ محتويات المخزن المؤقت للإخراج. الوصف string ob_get_contents ( void ) تأخذ الدالة ob_get_contents()‎ محتويات المخزن المؤقت للإخراج دون  حذف محتوياته. القيم المعادة تعيد الدالة ob_get_contents()‎ محتويات المخزن المؤقت للإخراج. و في حال  كان التخزين المؤقت للإخراج غير مفعل، تعيد الدالة القيمة FALSE. أمثلة المثال 1: استعمال الدالة ob_get_contents()‎ <?php ob_start(); echo "Hello "; $out1 = ob_get_contents(); echo "World"; $out2 = ob_get_contents(); ob_end_clean(); var_dump($out1, $out2); ?> سوف تكون مُخرجات المثال أعلاه كالتالي. string(6) "Hello " string(11) "Hello World" انظر أيضا الدالة ()ob_start: تشغل ...

الدالة ob_end_flush()‎ في PHP

(PHP 4, PHP 5, PHP 7) تفرغ (ترسل) الدالة ob_end_flush()‎ المخزن المؤقت للإخراج وتوقف التخزين المؤقت للإخراج. الوصف bool ob_end_flush (void) ترسل الدالة ()ob_end_flush محتويات المخزن المؤقت للإخراج ذي أعلى مستوى (إن وجد) وتوقف عمل المخزن المؤقت للإخراج. إذا كنت ترغب كذلك في معالجة محتويات المخزن المؤقت، يجب عليك استدعاء الدالة ob_get_contents()‎ قبل الدالة ob_end_flush()‎ إذ تُحذَف محتويات المخزن المؤقت بعد استدعاء ob_end_flush()‎. يجب أن يبدأ المخزن المؤقت للإخراج باستخدام الدالة ob_start()‎ مع الرايتين PHP_OUTPUT_HANDLER_FLUSHABLE و PHP_OUTPUT_HANDLER_REMOVABLE. بخلاف ذلك لن تعمل ...

الدالة ob_get_clean()‎ في PHP

(PHP 4 >= 4.3.0, PHP 5, PHP 7) تأخذ الدالة ob_get_clean()‎ محتويات المخزن المؤقت الحالي وتحذف المخزن المؤقت الحالي للإخراج. الوصف string ob_get_clean ( void ) تأخذ الدالة ob_get_clean()‎ محتويات المخزن المؤقت الحالي وتحذف المخزن المؤقت الحالي للإخراج. الدالة ob_get_clean()‎  تنفذ أساسا كلا من ob_get_contents()‎ و ob_end_clean()‎. يجب أن يبدأ المخزن المؤقت للإخراج بالدالة ob_start()‎ وعلامة PHP_OUTPUT_HANDLER_CLEANABLE. القيم المعادة تعيد الدالة ob_get_clean()‎ محتويات المخزن المؤقت للإخراج وتنهي التخزين المؤقت للإخراج. إذا لم يكن التخزين المؤقت للإخراج مفعلا، تعيد الدالة القيمة FALSE. ...

الدالة ob_get_level()‎ في PHP

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تعيد الدالة ob_get_level()‎ مستوى تداخل آليات التخزين المؤقت للإخراج. الوصف int ob_get_level ( void ) تعيد الدالة ob_get_level()‎ مستوى تداخل آليات التخزين المؤقت للإخراج. القيم المعادة تعيد الدالة ob_get_level()‎ مستوى تداخل معالجات التخزين المؤقت للإخراج أو صفر إذا كان التخزين المؤقت للإخراج غير مفعل. انظر أيضا الدالة ()ob_start: تشغيل المخزن المؤقت للإخراج. الدالة ()ob_get_contents: ترجع محتويات المخزن المؤقت للإخراج. مصادر صفحة الدالة ob_get_level في توثيق PHP الرسمي.

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

continue في PHP

(PHP 4, PHP 5, PHP 7) تستخدم continue في الحلقات التكرارية لتجاوز ما يأتي بعدها في الحلقة التكرارية والاستمرار في تنفيذ الشيفرة حسب الشرط المعتمد في الحلقة ثم الانتقال إلى بداية الدورة التالية. تأخذ continue معاملًا عدديًّا اختياريًا يمكن من خلاله تحديد عدد الحلقات التكرارية المحيطة بها والتي يجب تجاوزها إلى النهاية. القيمة الافتراضية هي 1 والتي تعني الانتقال إلى نهاية الحلقة الحالية. ملاحظة: تعدّ عبارة switch في PHP من الحلقات التكرارية عند الحديث عن continue. تسلك continue سلوك break ...

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

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

الدالة session_cache_limiter()‎ في PHP

PHP 4 >= 4.0.3, PHP 5, PHP 7)‎) تعيد الدالة session_cache_limiter()‎ أو تضبط محدّد ذاكرة التخزين المؤقتة. الوصف string session_cache_limiter ([ string $cache_limiter ] )‎ تعيد الدالة session_cache_limiter()‎ اسم محدّد ذاكرة التخزين المؤقتة الحالية. يحدّد محدّد ذاكرة التخزين المؤقت أيّة ذاكرة تخزين مؤقتة يتم من خلالها إرسال ترويسات HTTP إلى العميل. تحدّد هذه الترويسات القواعد التي قد يتم تخزين محتوى الصفحة بها مؤقتًا بواسطة العميل ووكلاء وسيطة (intermediate proxies). لا يسمح تعيين محدد ذاكرة التخزين المؤقتة إلى nocache بالتخزين المؤقت للعميل. ...

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

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

البنية print‎ في PHP

(PHP 4, PHP 5, PHP 7) تطبع print‎ سلسلةً نصيةً. الوصف int print ( string $arg ) تُخرِج print‎‎ المعامل arg. ليست print في الواقع دالةً حقيقية إنما هي بنيةٌ من بنى اللغة (language construct)، لذلك لا حاجة لاستخدام الأقواس لتمرير الوسائط إليها. الاختلافان الرئيسيّان مع البنية echo هما أنَّ print لا تقبل إلا معاملًا واحدًا وأنها تعيد القيمة 1 دائمًا. المعاملات arg البيانات المدخلة. القيم المعادة تعيد 1 دائمًا. الأمثلة مثال 1: أمثلة على البنية print <?php print("Hello World"); print "print() also ...

حذف الدالة DROP FUNCTION

يستخدم هذا الأمر لحذف دالة (أو إجراء) أو أكثر مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله البنية العامّة الآتية: DROP {FUNCTION | PROCEDURE} [ IF EXISTS ] name [ ( [argtype [, ...] ] ) ] [, ...] [ CASCADE | RESTRICT ] إذ تُحذف الدالة المحدد باسم name، وتمنع IF EXISTS حدوث أي خطأ في حال عدم وجود دالة بهذا الاسم في قاعدة البيانات، ويُحدد نوع البيانات لمتغيرات الدالة ما بين قوسين لاحتمال تكرار نفس اسم الدالة بلائحة مختلفة ...

الخاصية animation-timing-function

الخاصية animation-timing-function في CSS تستعمل لوصف كيف ستتأثر القيم الوسطية لخاصيات CSS بالحركة، أي أنها تسمح لك بتحديد ما هو منحني التسارع (acceleration curve) للحركة خلال دورة واحدة. بطاقة الخاصية القيمة الابتدائية ease تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. من الشائع استخدام الخاصية المختصرة animation لضبط جميع خاصيات الحركات بآنٍ واحد. /* كلمات محجوزة */ animation-timing-function: ease; animation-timing-function: ease-in; animation-timing-function: ease-out; animation-timing-function: ease-in-out; animation-timing-function: linear; animation-timing-function: step-start; animation-timing-function: step-end; /* دوال */ animation-timing-function: cubic-bezier(0.1, 0.7, 1.0, 0.1); animation-timing-function: steps(4, end); animation-timing-function: frames(10); /* عدِّة ...

الخاصية transition-timing-function

الخاصية transition-timing-function في CSS تستعمل لوصف كيف ستتأثر القيم الوسطية لخاصيات CSS بتأثير الانتقال، أي أنها تسمح لك بتحديد ما هو منحني التسارع (acceleration curve) لتأثير الانتقال، لذا ستكون سرعة التأثير متفاوتة خلال مدته. بطاقة الخاصية القيمة الابتدائية ease تُطبَّق على جميع العناصر. قابلة للوراثة لا قابلة للتحريك لا القيمة المحسوبة كما حُدِّدَت. يمكن تعريف منحني التسارع باستخدام دالة من دوال <timing-function> لكل خاصية يمكن تحريكها. /* كلمات محجوزة */ transition-timing-function: ease; transition-timing-function: ease-in; transition-timing-function: ease-out; transition-timing-function: ease-in-out; transition-timing-function: linear; transition-timing-function: step-start; transition-timing-function: step-end; /* دوال */ transition-timing-function: steps(4, ...

عوامل التنفيذ في PHP

تدعم PHP عامل تنفيذ واحد هو العلامة`` ‏(backtics)، ويجب الانتباه إلى أنها ليست علامة الاقتباس المفردة. ستحاول PHP تنفيذ ما هو مكتوب ضمن هذه العلامتين على أنّه من أوامر الصدفة، وستعيد الناتج. (بمعنى أنّك لن تحصل على مخرجات فقط، بل يمكن إسناد النتيجة إلى متغير). استخدام هذا العامل مطابق تمامًا لاستخدام الدالة shell_exec()‎. <?php $output = `ls -al`; echo "<pre>$output</pre>"; ?> ملاحظة: يكون هذا العامل معطّلًا عندما يكون الوضع الآمن مفعّلًا أو عندما تكون الدالة shell_exec()‎ معطّلة. ملاحظة: على العكس من بعض اللغات ...

عوامل التنفيذ في PHP

تدعم PHP عامل تنفيذ واحد هو العلامة`` ‏(backtics)، ويجب الانتباه إلى أنها ليست علامة الاقتباس المفردة. ستحاول PHP تنفيذ ما هو مكتوب ضمن هذه العلامتين على أنّه من أوامر الصدفة، وستعيد الناتج. (بمعنى أنّك لن تحصل على مخرجات فقط، بل يمكن إسناد النتيجة إلى متغير). استخدام هذا العامل مطابق تمامًا لاستخدام الدالة shell_exec()‎. <?php $output = `ls -al`; echo "<pre>$output</pre>"; ?> ملاحظة: يكون هذا العامل معطّلًا عندما يكون الوضع الآمن مفعّلًا أو عندما تكون الدالة shell_exec()‎ معطّلة. ملاحظة: على العكس من بعض اللغات ...

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

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

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

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

حاوي الخدمات (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 ...

إزالة رايات التحكم (Remove Control Flag)

المشكلة لديك متغيرات منطقية تعمل كرايات تحكم لتعبيرات منطقية متعددة. الحل استخدم الكلمات المفتاحية break و continue و return بدلًا من هذه المتغيرات. لم إعادة التصميم؟ تعود رايات التحكم إلى الأيام الخوالي، عندما كان يُتاح دائمًا للمبرمج "الأصيل" نقطة إدخال واحدة للدوال (سطر تعريف الدالة) ونقطة خروج واحدة (في نهاية الدالة). لكن هذا النمط المتشدد عفا عليه الزمن في لغات البرمجة الحديثة، إذ أصبح لدينا عوامل خاصة لتعديل تدفق التحكم في الحلقات وغيرها من التركيبات المُعقدة مثل: break: إيقاف الحلقة. continue: ...

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

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

الدالة register_shutdown_function()‎ في PHP

(PHP 4, PHP 5, PHP 7) تُسجل الدالة register_shutdown_function()‎ دالة لتُنفّذ عند إنهاء التشغيل. الوصف void register_shutdown_function ( callable $callback [, mixed $parameter [, mixed $... ]] ) تُسجل الدالة register_shutdown_function()‎ دالة رد النداء ليتم تنفيذها بعد الانتهاء من تنفيذ السكربت أو بعد استدعاء الدالة exit()‎. من الممكن إجراء استدعاءات متعددة للدالة register_shutdown_function()‎، وستُستدعى كلٌ منها بالترتيب الذي سُجِّلَت به. فإذا استدعيت الدالة exit()‎ داخل دالة إيقاف تشغيل مُسجلة، فستتوقف المعالجة بالكامل ولن تُستدعى أية دالة إيقاف تشغيل أخرى ...

الدالة str_replace()‎ في PHP

(PHP 4, PHP 5, PHP 7) تبدِّل الدالة str_replace()‎ كل حالات وقوع سلسلة البحث إلى سلسلة الاستبدال. الوصف mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) تعيد الدالة str_replace()‎ سلسلة أو مصفوفة مع تبديل كل حالات وقوع المعامل search في المعامل subject إلى قيمة المعامل replace المعطاة. إذا كنت لا تحتاج إلى قواعد استبدال معقدة (باستعمال التعابير النمطية) يجب عليك دائمًا استخدام هذه الدالة بدلاً من الدالة preg_replace()‎. المعاملات إذا كان المعامل search ...

الجلسات HTTP في Laravel

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

الدالة ob_end_clean()‎ في PHP

(PHP 4, PHP 5, PHP 7) تنظف (تمسح) الدالة ob_end_clean()‎ المخزنَ المؤقت للإخراج وتوقف التخزين المؤقت للإخراج. الوصف bool ob_end_clean ( void ) ستؤدي الدالة ob_end_clean()‎ إلى حذف محتويات المخزن المؤقت للإخراج ذي أعلى مستوى (topmost) إضافةً إلى إغلاقه. إذا كنت تريد معالجة محتويات المخزن المؤقت فعليك استدعاء الدالة ob_get_contents()‎ قبل الدالة ob_end_clean()‎ ذلك لأنه ستُحذف محتويات المخزن المؤقت عند استدعاء الدالة ob_end_clean()‎. يجب بدء تشغيل المخزن المؤقت للإخراج بواسطة الدالة ob_start()‎ مع الرايتين  PHP_OUTPUT_HANDLER_CLEANABLE وPHP_OUTPUT_HANDLER_REMOVABLE. وإلا فلن تعمل الدالة ob_end_clean()‎. ...

الدالة ob_clean()‎ في PHP

(PHP 4 >= 4.2.0, PHP 5, PHP 7) تنظف (تمسح) الدالة ob_clean()‎ المخزنَ المؤقت للإخراج. الوصف bool ob_clean ( void ) تحذف الدالة ob_clean()‎ محتويات المخزن المؤقت للإخراج. لا تحذف الدالة ob_clean()‎ المخزن المؤقت للإخراج مثلما تفعل الدالة ob_end_clean()‎. ينبغي تشغيل المخزن المؤقت للإخراج بواسطة الدالة ob_start()‎ مع الراية PHP_OUTPUT_HANDLER_CLEANABLE. وإلا فلن تعمل الدالة ob_clean()‎. القيم المعادة لا تعيد الدالة ob_clean()‎ قِيَمًا. انظر أيضًا الدالة ob_flush()‎: تدفق (إرسال) المخزن المؤقت للإخراج. الدالة ob_end_flush()‎: تدفق (إرسال) المخزن المؤقت للإخراج وإيقاف التخزين المؤقت ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

include في PHP

(PHP 4, PHP 5, PHP 7) تعمل عبارة include على تضمين ومعالجة الملف المحدّد. ينطبق التوثيق التالي على عبارة require. تُضمّن الملفات بالاعتماد على المسار المعطى للعبارة، وفي حال عدم تحديد المسار، تأخذ include المسار المحدد في include_path. إن لم يكن الملف موجودًا في include_path ستتحقّق include في المجلّد الذي يحتوي على الشيفرة التي أجرت الاستدعاء وفي مجلد العمل الحالي قبل أن تطلق خطأً. تطلق بنية include تحذيرًا إن لم تتمكن من العثور على الملف، وتختلف في ذلك عن require ...

البنية echo في PHP

(PHP 4, PHP 5, PHP 7) تعرض ‎echo سلسلةً نصيةً وحيدة أو عدة سلاسل نصية. الوصف void echo ( string $arg1 [, string $... ] ) تُخرِج echo كل المعاملات، ولا تضيف إليها سطرًا جديدًا بعدها. لا تعدّ echo دالةً بالمعنى الصريح للكلمة إذ تُعد بنيةً من بنى اللُّغة (‎language construct) لذلك فلستَ مجبرًا على إضافة الأقواس لها. على العكس من بنى اللُّغة الأخرى، فإن echo لا تتصرف مثل الدوال لذلك لا يمكن استخدامها في سياق الدوال دائمًا. إذا أردنا استعمال ...

تعديل الدالة ALTER FUNCTION في SQL

يستخدم هذا الأمر لتعديل تعريف دالة مُعرَّفة مسبقًا عبر الأمر CREATE FUNCTION، وله الصيغ الآتية: ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] RENAME TO new_name; لإعادة تسمية الدالة name (والتي معاملاتها محددة بالنوع argmode والاسم argname ونوع البيانات argtype) باسم جديد new_name. ALTER FUNCTION name [ ( [ [ argmode ] [ argname ] argtype [, ...] ] ) ] OWNER TO { new_owner ...

إنشاء دالة CREATE FUNCTION في SQL

يستخدم هذا الأمر لتعريف دالة جديدة، وله البنية العامّة الآتية: CREATE [ OR REPLACE ] FUNCTION name ( [[argmode] [ argname ] argtype [, ...] ] ) [RETURNS rettype] AS 'definition' إذ ينشئ هذا الأمر دالةً جديدةً (أو يستبدلها في حال وجود دالة سابقة) باسم name وتوضع معاملاتها ما بين القوسين وذلك بتحديد نوع المعامل argmode (كدخل IN أو خرج OUT أو دخل وخرج معًا INOUT) ومن ثم اسم المعامل argname ونوع قيمته argtype وكما يمكن تحديد نوع القيمة ...

declare في PHP

(PHP 4, PHP 5, PHP 7) تستخدم بنية declare لتعيين موجّهات التنفيذ (execution directives) لكتلة من الشيفرة، وصيغة declare مشابهة لبنى التحكم في تدفق الشيفرة. الوصف declare (directive) statement يتيح الموجه تعيين سلوك كتلة (block). يمكن للغة في الوقت الحاضر أن تتعرف على ثلاثة أنواع من الموجهات فقط: موجه ticks (للمزيد من المعلومات حول موجه ticks انظر أدناه)، وموجه encoding (للمزيد من المعلومات حول موجه encoding انظر أدناه)، وموجه strict_types (للمزيد من المعلومات راجع قسم strict في ...

declare في PHP

(PHP 4, PHP 5, PHP 7) تستخدم بنية declare لتعيين موجّهات التنفيذ (execution directives) لكتلة من الشيفرة، وصيغة declare مشابهة لبنى التحكم في تدفق الشيفرة. الوصف declare (directive) statement يتيح الموجه تعيين سلوك كتلة (block). يمكن للغة في الوقت الحاضر أن تتعرف على ثلاثة أنواع من الموجهات فقط: موجه ticks (للمزيد من المعلومات حول موجه ticks انظر أدناه)، وموجه encoding (للمزيد من المعلومات حول موجه encoding انظر أدناه)، وموجه strict_types (للمزيد من المعلومات راجع قسم strict في ...

استبدال المعامل بتوابع صريحة (Replace Parameter with Explicit Methods)

المشكلة ينقسم التابع إلى أجزاء، كل منها يتم تشغيله اعتمادًا على قيمة المعامل. الحل استخراج الأجزاء الفردية من التابع إلى توابعها الخاصة واستدعائها بدلًا من استدعاء التابع الأصلي. مثال قبل إعادة التصميم وجود تابع يدعى ()setValue يضبط قيمة الارتفاع والعرض بناءً على تمرير سلسلة نصية صريحة بذلك: في لغة Java: void setValue(String name, int value) { if (name.equals("height")) { height = value; return; } if (name.equals("width")) { width ...

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

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

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

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

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

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

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