الفرق بين المراجعتين لصفحة: «Laravel/helpers»
رؤيا-بنعطية (نقاش | مساهمات) لا ملخص تعديل |
رؤيا-بنعطية (نقاش | مساهمات) لا ملخص تعديل |
||
(16 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
== مقدمة == | ==مقدمة== | ||
يتضمن [[Laravel]] عددًا من دوال [[PHP]] المساعدة. تُستعمل العديد من هذه الدوال من قبل [[Laravel]] لكن بامكانك استعمالها في تطبيقك اذا احتجتهم. | يتضمن [[Laravel]] عددًا من دوال [[PHP]] المساعدة. تُستعمل العديد من هذه الدوال من قبل [[Laravel]] لكن بامكانك استعمالها في تطبيقك اذا احتجتهم. | ||
==قائمة التوابع== | |||
== قائمة التوابع == | ===المصفوفات والكائنات=== | ||
====<code>()array_add</code>==== | |||
=== المصفوفات والكائنات === | تضيف الدالة الثنائي مفتاح\قيمة الممرّر لمصفوفة إذا كان المفتاح غير موجود مسبقًا:<syntaxhighlight lang="php"> | ||
==== <code>()array_add</code> ==== | |||
تضيف الدالة | |||
$array = array_add(['name' => 'Desk'], 'price', 100); | $array = array_add(['name' => 'Desk'], 'price', 100); | ||
سطر 14: | سطر 11: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_collapse</code>==== | |||
==== <code>()array_collapse</code> ==== | تحول الدالة مصفوفة مصفوفات لمصفوفة واحدة:<syntaxhighlight lang="php"> | ||
تحول الدالة | |||
$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); | $array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); | ||
سطر 23: | سطر 19: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_divide</code>==== | |||
==== <code>()array_divide</code> ==== | تعيد الدالة مصفوفتين، واحدة تحتوي المفاتيح وأخرى تحتوي القيم من المصفوفة الممرّرة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
[$keys, $values] = array_divide(['name' => 'Desk']); | [$keys, $values] = array_divide(['name' => 'Desk']); | ||
سطر 34: | سطر 29: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_dot</code>==== | |||
==== <code>()array_dot</code> ==== | تسطّح الدالة مصفوفة متعددة الأبعاد لمصفوفة ببعد واحد تستعمل رمز النقطة لبيان العمق:<syntaxhighlight lang="php"> | ||
تسطّح الدالة | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | $array = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 45: | سطر 39: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_except</code>==== | |||
==== <code>()array_except</code> ==== | تحذف الدالة الثنائي مفتاح\قيمة الممرّر من المصفوفة:<syntaxhighlight lang="php"> | ||
تحذف الدالة | |||
$array = ['name' => 'Desk', 'price' => 100]; | $array = ['name' => 'Desk', 'price' => 100]; | ||
سطر 56: | سطر 49: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_first</code>==== | |||
==== <code>()array_first</code> ==== | تعيد الدالة العنصر الأول من المصفوفة الممرّرة الذي يستجيب لشرط صحّة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = [100, 200, 300]; | $array = [100, 200, 300]; | ||
سطر 71: | سطر 63: | ||
$first = array_first($array, $callback, $default); | $first = array_first($array, $callback, $default); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_flatten</code>==== | |||
==== <code>()array_flatten</code> ==== | تسطِّح الدالة مصفوفة متعدّدة الأبعاد لمصفوفة ببعد واحد:<syntaxhighlight lang="php"> | ||
تسطِّح الدالة | |||
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']]; | $array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']]; | ||
سطر 82: | سطر 73: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_forget</code>==== | |||
==== <code>()array_forget</code> ==== | تحذف الدالة الثنائي مفتاح\قيمة من مصفوفة متداخلة باستعمال رمز" النقطة ":<syntaxhighlight lang="php"> | ||
تحذف الدالة | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | $array = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 93: | سطر 83: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_get</code>==== | |||
==== <code>()array_get</code> ==== | تسترجع الدالة قيمة من مصفوفة متداخلة باستعمال رمز "النقطة":<syntaxhighlight lang="php"> | ||
تسترجع الدالة | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | $array = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 110: | سطر 99: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_has</code>==== | |||
==== <code>()array_has</code> ==== | تتثبت الدالة من وجود عنصر أو عناصر ممرّرة في المصفوفة باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | ||
تتثبت الدالة | |||
$array = ['product' => ['name' => 'Desk', 'price' => 100]]; | $array = ['product' => ['name' => 'Desk', 'price' => 100]]; | ||
سطر 125: | سطر 113: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_last</code>==== | |||
==== <code>()array_last</code> ==== | تعيد الدالة آخر عنصر يستجيب لشرط الصحّة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = [100, 200, 300, 110]; | $array = [100, 200, 300, 110]; | ||
سطر 140: | سطر 127: | ||
$last = array_last($array, $callback, $default); | $last = array_last($array, $callback, $default); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_only</code>==== | |||
==== <code>()array_only</code> ==== | تعبد الدالة فقط الثنائيات الممرّرة من المصفوفة:<syntaxhighlight lang="php"> | ||
تعبد الدالة | |||
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10]; | $array = ['name' => 'Desk', 'price' => 100, 'orders' => 10]; | ||
سطر 151: | سطر 137: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_pluck</code>==== | |||
==== <code>()array_pluck</code> ==== | تستعيد الدالة كل القيم لمفتاح ممرّر من المصفوفة:<syntaxhighlight lang="php"> | ||
تستعيد الدالة | |||
$array = [ | $array = [ | ||
['developer' => ['id' => 1, 'name' => 'Taylor']], | ['developer' => ['id' => 1, 'name' => 'Taylor']], | ||
سطر 171: | سطر 156: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_prepend</code>==== | |||
==== <code>()array_prepend</code> ==== | تضبف الدالة عنصرًا في أول المصفوفة:<syntaxhighlight lang="php"> | ||
تضبف الدالة | |||
$array = ['one', 'two', 'three', 'four']; | $array = ['one', 'two', 'three', 'four']; | ||
سطر 190: | سطر 174: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_pull</code>==== | |||
==== <code>()array_pull</code> ==== | تعيد الدالة وتحذف ثنائي مفتاح\قيمة من المصفوفة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = ['name' => 'Desk', 'price' => 100]; | $array = ['name' => 'Desk', 'price' => 100]; | ||
سطر 205: | سطر 188: | ||
$value = array_pull($array, $key, $default); | $value = array_pull($array, $key, $default); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_random</code>==== | |||
==== <code>()array_random</code> ==== | تعيد الدالة قيمة عشوائية من المصفوفة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = [1, 2, 3, 4, 5]; | $array = [1, 2, 3, 4, 5]; | ||
سطر 222: | سطر 204: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_set</code>==== | |||
==== <code>()array_set</code> ==== | تعيّن الدالة قيمة في مصفوفة متداخلة باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | ||
تعيّن الدالة | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | $array = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 233: | سطر 214: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_sort</code>==== | |||
==== <code>()array_sort</code> ==== | ترتّب الدالة المصفوفة حسب القيم:<syntaxhighlight lang="php"> | ||
ترتّب الدالة | |||
$array = ['Desk', 'Table', 'Chair']; | $array = ['Desk', 'Table', 'Chair']; | ||
سطر 262: | سطر 242: | ||
*/ | */ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_sort_recursive</code>==== | |||
==== <code>()array_sort_recursive</code> ==== | ترتّب الدالة المصفوفة مرتبة بشكل تكراري باستعمال الدالة <code>sort</code>:<syntaxhighlight lang="php"> | ||
ترتّب الدالة | |||
$array = [ | $array = [ | ||
['Roman', 'Taylor', 'Li'], | ['Roman', 'Taylor', 'Li'], | ||
سطر 279: | سطر 258: | ||
*/ | */ | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_where</code>==== | |||
==== <code>()array_where</code> ==== | ترشح الدالة المصفوفة باستعمال النطاق المغلق المعطى Closure:<syntaxhighlight lang="php"> | ||
ترشح الدالة | |||
$array = [100, '200', 300, '400', 500]; | $array = [100, '200', 300, '400', 500]; | ||
سطر 290: | سطر 268: | ||
// [1 => '200', 3 => '400'] | // [1 => '200', 3 => '400'] | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()array_wrap</code>==== | |||
==== <code>()array_wrap</code> ==== | تغلف الدالة القيمة الممرّرة في مصفوفة. إذا كانت القيمة الممرّرة مصفوفة بالأصل فلن تتغير:<syntaxhighlight lang="php"> | ||
تغلف الدالة | |||
$string = 'Laravel'; | $string = 'Laravel'; | ||
سطر 300: | سطر 277: | ||
</syntaxhighlight> | </syntaxhighlight>إذا كانت القيمة الممرّرة <code>null</code>، تعيد الدالة <code>array_wrap</code> مصفوفة فارغة:<syntaxhighlight lang="php"> | ||
إذا كانت القيمة الممرّرة <code>null</code>، تعيد الدالة <code>array_wrap</code> مصفوفة فارغة:<syntaxhighlight lang="php"> | |||
$nothing = null; | $nothing = null; | ||
سطر 311: | سطر 286: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()data_fill</code>==== | |||
==== <code>()data_fill</code> ==== | تضبط الدالة قيمة مفقودة بمصفوفة متداخلة أو بكائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | ||
تضبط الدالة | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | $data = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 325: | سطر 299: | ||
</syntaxhighlight>تقبل الدالة | </syntaxhighlight>تقبل الدالة أيضًا الرمز "*" كمحرف بدل لرمز يملؤه الهدف بما يلائم:<syntaxhighlight lang="php"> | ||
$data = [ | $data = [ | ||
سطر 346: | سطر 320: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()data_get</code>==== | |||
==== <code>()data_get</code> ==== | تسترجع الدالة قيمة من مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | ||
تسترجع الدالة | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | $data = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 363: | سطر 336: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()data_set</code>==== | |||
==== <code>()data_set</code> ==== | تضبط الدالة قيمة في مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | ||
تضبط الدالة | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | $data = ['products' => ['desk' => ['price' => 100]]]; | ||
سطر 402: | سطر 374: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()head</code>==== | |||
==== <code>()head</code> ==== | تعيد الدالة العنصر الأول من مصفوفة ممرّرة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = [100, 200, 300]; | $array = [100, 200, 300]; | ||
سطر 413: | سطر 384: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()last</code>==== | |||
==== <code>()last</code> ==== | تعيد الدالة العنصر الأخير من المصفوفة الممرّرة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$array = [100, 200, 300]; | $array = [100, 200, 300]; | ||
سطر 424: | سطر 394: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===المسارات=== | |||
=== المسارات === | ====<code>()app_path</code>==== | ||
تعيد الدالة المسار الكامل للدليل app. يمكن أيضًا استعمال الدالة لإنشاء مسار لملف موجود في دليل التطبيق:<syntaxhighlight lang="php"> | |||
==== <code>()app_path</code> ==== | |||
تعيد | |||
$path = app_path(); | $path = app_path(); | ||
سطر 435: | سطر 403: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()base_path</code>==== | |||
==== <code>()base_path</code> ==== | تعيد الدالة مسارا لجذر التطبيق. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف تابع لدليل جذر التطبيق:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$path = base_path(); | $path = base_path(); | ||
سطر 444: | سطر 411: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()config_path</code>==== | |||
==== <code>()config_path</code> ==== | تعيد الدالة المسار المؤهل بشكل كامل للدليل config. يمكنك استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف معين في دليل الضبط:<syntaxhighlight lang="php"> | ||
تعيد | |||
$path = config_path(); | $path = config_path(); | ||
سطر 453: | سطر 419: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()data_path</code>==== | |||
==== <code>()data_path</code> ==== | تعيد الدالة مسارا مؤهلا للدليل database. يمكن أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في دليل قاعدة البيانات:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$path = database_path(); | $path = database_path(); | ||
سطر 462: | سطر 427: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()mix</code>==== | |||
==== <code>()mix</code> ==== | تعيد الدالة مسارا للملف Mix:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$path = mix('css/app.css'); | $path = mix('css/app.css'); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()public_path</code>==== | |||
==== <code>()public_path</code> ==== | تعيد الدالة مسارًا مؤهلا للدليل public. يمكنك أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملفات في الدليل public:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$path = public_path(); | $path = public_path(); | ||
سطر 476: | سطر 439: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()resource_path</code>==== | |||
==== <code>()resource_path</code> ==== | تعيد الدالة مسارًا مؤهلا للدليل resources. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في الدليل resources:<syntaxhighlight lang="php"> | ||
تعيد | |||
$path = resource_path(); | $path = resource_path(); | ||
سطر 485: | سطر 447: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()storage_path</code>==== | |||
==== <code>()storage_path</code> ==== | تعيد الدالة مسارًا مؤهلا للدليل storage. يمكن أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملف في الدليل storage:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$path = storage_path(); | $path = storage_path(); | ||
سطر 494: | سطر 455: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
===السلاسل النصية=== | |||
=== السلاسل النصية === | ====<code>()__</code>==== | ||
تترجم الدالة سلسلة الترجمة أو مفتاح الترجمة باستعمال ملفات الترجمة في التطبيق:<syntaxhighlight lang="php"> | |||
==== <code>()__</code> ==== | |||
تترجم الدالة | |||
echo __('Welcome to our application'); | echo __('Welcome to our application'); | ||
سطر 505: | سطر 464: | ||
</syntaxhighlight>إذا لم توجد سلسلة أو مفتاح الترجمة، تعيد الدالة القيمة الممرّرة. لذا باستعمال المثال السابق، تعيد الدالة "message.welcome" في حال عدم وجود المفتاح. | </syntaxhighlight>إذا لم توجد سلسلة أو مفتاح الترجمة، تعيد الدالة القيمة الممرّرة. لذا باستعمال المثال السابق، تعيد الدالة "message.welcome" في حال عدم وجود المفتاح. | ||
====<code>()camel_case</code>==== | |||
==== <code>()camel_case</code> ==== | تحوّل الدالة السلسلة لسلسلة منسقةً بحالة سِنَام الجمل:<syntaxhighlight lang="php"> | ||
تحوّل الدالة | |||
$converted = camel_case('foo_bar'); | $converted = camel_case('foo_bar'); | ||
سطر 514: | سطر 472: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()class_basename</code>==== | |||
==== <code>()class_basename</code> ==== | تعيد الدالة اسم الصنف للصنف الممرّر بعد حذف دليله:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$class = class_basename('Foo\Bar\Baz'); | $class = class_basename('Foo\Bar\Baz'); | ||
سطر 523: | سطر 480: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()e</code>==== | |||
==== <code>()e</code> ==== | تنفذ الدالة الدالة <code>[[PHP/htmlspecialchars|htmlspecialchars]]</code> من [[PHP]] مع الخيار <code>double_encode</code> على القيمة <code>true</code> افتراضيًّا:<syntaxhighlight lang="php"> | ||
تنفذ الدالة | |||
echo e('<html>foo</html>'); | echo e('<html>foo</html>'); | ||
سطر 533: | سطر 489: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()ends_with</code>==== | |||
==== <code>()ends_with</code> ==== | تحدّد الدالة إذا كانت السلسلة تنتهي بالقيمة الممرّرة:<syntaxhighlight lang="php"> | ||
تحدّد الدالة | |||
$result = ends_with('This is my name', 'name'); | $result = ends_with('This is my name', 'name'); | ||
سطر 542: | سطر 497: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()kebab_case</code>==== | |||
==== <code>()kebab_case</code> ==== | تحول الدالة السلسلة الممرّرة منسقةً بحالة kebab-case:<syntaxhighlight lang="php"> | ||
تحول الدالة | |||
$converted = kebab_case('fooBar'); | $converted = kebab_case('fooBar'); | ||
سطر 551: | سطر 505: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()preg_replace_array</code>==== | |||
==== <code>()preg_replace_array</code> ==== | تعوّض الدالة الأسلوب الممرّر في السلسلة باستعمال مصفوفة:<syntaxhighlight lang="php"> | ||
تعوّض الدالة | |||
$string = 'The event will take place between :start and :end'; | $string = 'The event will take place between :start and :end'; | ||
سطر 562: | سطر 515: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()snake_case</code>==== | |||
==== <code>()snake_case</code> ==== | تحول الدالة السلسلة الممرّرة منسقةً بحالة snake_case:<syntaxhighlight lang="php"> | ||
تحول الدالة | |||
$converted = snake_case('fooBar'); | $converted = snake_case('fooBar'); | ||
سطر 571: | سطر 523: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()starts_with</code>==== | |||
==== <code>()starts_with</code> ==== | تحدد الدالة إذا كان السلسلة الممرّرة تبدأ بالقيمة الممررّة:<syntaxhighlight lang="php"> | ||
تحدد الدالة | |||
$result = starts_with('This is my name', 'This'); | $result = starts_with('This is my name', 'This'); | ||
سطر 580: | سطر 531: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_after</code>==== | |||
==== <code>()str_after</code> ==== | تعيد الدالة كل شيء بعد السلسلة الممررة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$slice = str_after('This is my name', 'This is'); | $slice = str_after('This is my name', 'This is'); | ||
سطر 589: | سطر 539: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_before</code>==== | |||
==== <code>()str_before</code> ==== | تعيد الدالة كل شيء قبل السلسلة الممررة:<syntaxhighlight lang="php"> | ||
تعيد الدالة | |||
$slice = str_before('This is my name', 'my name'); | $slice = str_before('This is my name', 'my name'); | ||
سطر 598: | سطر 547: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_contains</code>==== | |||
==== <code>()str_contains</code> ==== | تحدد الدالة إذا كانت السلسلة تحتوي القيمة الممرّرة (مع احترام الحروف الكبيرة والصغيرة):<syntaxhighlight lang="php"> | ||
تحدد الدالة | |||
$contains = str_contains('This is my name', 'my'); | $contains = str_contains('This is my name', 'my'); | ||
سطر 613: | سطر 561: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_finish</code>==== | |||
==== <code>()str_finish</code> ==== | تضيف الدالة نسخةً واحدةً من قيمة ممرّرة لسلسلة إذا لم تكن السلسلة تنتهي بتلك القيمة:<syntaxhighlight lang="php"> | ||
تضيف الدالة | |||
$adjusted = str_finish('this/string', '/'); | $adjusted = str_finish('this/string', '/'); | ||
سطر 626: | سطر 573: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_is</code>==== | |||
==== <code>()str_is</code> ==== | تحدد الدالة إذا كانت السلسلة مطابقة لأسلوب ممرّر. تُستعمل الرموز "*" للدلالة على محرف بدل:<syntaxhighlight lang="php"> | ||
تحدد الدالة | |||
$matches = str_is('foo*', 'foobar'); | $matches = str_is('foo*', 'foobar'); | ||
سطر 639: | سطر 585: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_limit</code>==== | |||
==== <code>()str_limit</code> ==== | تقطع الدالة السلسلة حسب الطول المحدد:<syntaxhighlight lang="php"> | ||
تقطع الدالة | |||
cated = str_limit('The quick brown fox jumps over the lazy dog', 20); | cated = str_limit('The quick brown fox jumps over the lazy dog', 20); | ||
سطر 654: | سطر 599: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()Str::orderedUuid</code>==== | |||
==== <code>()Str::orderedUuid</code> ==== | تنشئ الدالة معرف فريد عالمي لبصمة وقت يمكن تخزينه في قاعدة بيانات:<syntaxhighlight lang="php"> | ||
تنشئ الدالة | |||
use Illuminate\Support\Str; | use Illuminate\Support\Str; | ||
سطر 663: | سطر 607: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_plural</code>==== | |||
==== <code>()str_plural</code> ==== | تحول الدالة السلسلة لصيغة الجمع. تدعم هذه الدالة حاليا اللغة الإنقليزية فقط:<syntaxhighlight lang="php"> | ||
تحول الدالة | |||
$plural = str_plural('car'); | $plural = str_plural('car'); | ||
سطر 686: | سطر 629: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_random</code>==== | |||
==== <code>()str_random</code> ==== | تنشئ الدالة سلسلة نصية عشوائية بالطول المحدد. تستخدم هذه الدالة الدالة [[php/random bytes|random_bytes]] من [[PHP]]:<syntaxhighlight lang="php"> | ||
تنشئ الدالة | |||
$random = str_random(40); | $random = str_random(40); | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_replace_array</code>==== | |||
==== <code>()str_replace_array</code> ==== | تستبدل الدالة القيمة الممرّرة من السلسلة النصية باستخدام مصفوفة:<syntaxhighlight lang="php"> | ||
تستبدل الدالة | |||
$string = 'The event will take place between ? and ?'; | $string = 'The event will take place between ? and ?'; | ||
سطر 702: | سطر 643: | ||
</syntaxhighlight> | </syntaxhighlight> | ||
====<code>()str_replace_first</code>==== | |||
==== <code>()str_replace_first</code> ==== | تستبدل الدالة الظهور الأول للقيمة الممرّرة بسلسة نصية:<syntaxhighlight lang="php"> | ||
تستبدل الدالة | |||
$replaced = str_replace_first('the', 'a', 'the quick brown fox jumps over the lazy dog'); | $replaced = str_replace_first('the', 'a', 'the quick brown fox jumps over the lazy dog'); | ||
// a quick brown fox jumps over the lazy dog | // a quick brown fox jumps over the lazy dog | ||
</syntaxhighlight> | |||
====<code>()str_replace_last</code>==== | |||
تستبدل الدالة الظهور الأخير للقيمة الممرّرة بسلسة نصية:<syntaxhighlight lang="php"> | |||
$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog'); | $replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog'); | ||
// the quick brown fox jumps over a lazy dog | // the quick brown fox jumps over a lazy dog | ||
</syntaxhighlight> | |||
====<code>()str_singular</code>==== | |||
تحوّل الدالة سلسلة نصية لصيغة المفرد. تدعم الدالة الآن فقط اللغة الإنقليزية:<syntaxhighlight lang="php"> | |||
$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog'); | $replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog'); | ||
// the quick brown fox jumps over a lazy dog | // the quick brown fox jumps over a lazy dog | ||
</syntaxhighlight> | |||
====<code>()str_slug</code>==== | |||
تنشئ الدالة قيمة "slug" يمكن استعمالها مع مسارات URL:<syntaxhighlight lang="php"> | |||
$slug = str_slug('Laravel 5 Framework', '-'); | $slug = str_slug('Laravel 5 Framework', '-'); | ||
// laravel-5-framework | // laravel-5-framework | ||
</syntaxhighlight> | |||
====<code>()str_start</code>==== | |||
تضيف الدالة نسخة واحدة من القيمة الممرّرة في أول السلسلة إذا لم تكن موجودة:<syntaxhighlight lang="php"> | |||
$adjusted = str_start('this/string', '/'); | $adjusted = str_start('this/string', '/'); | ||
سطر 746: | سطر 685: | ||
// /this/string | // /this/string | ||
</syntaxhighlight> | |||
====<code>()studly_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة StudlyCase:<syntaxhighlight lang="php"> | |||
$converted = studly_case('foo_bar'); | $converted = studly_case('foo_bar'); | ||
// FooBar | // FooBar | ||
</syntaxhighlight> | |||
====<code>()title_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة Title Case:<syntaxhighlight lang="php"> | |||
$converted = title_case('a nice title uses the correct case'); | $converted = title_case('a nice title uses the correct case'); | ||
// A Nice Title Uses The Correct Case | // A Nice Title Uses The Correct Case | ||
</syntaxhighlight> | |||
====<code>()trans</code>==== | |||
تترجم الدالة مفتاح الترجمة الممرّر باستعمال ملفات التوطين:<syntaxhighlight lang="php"> | |||
echo trans('messages.welcome'); | echo trans('messages.welcome'); | ||
</syntaxhighlight>إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة message.welcome في حال لم يكن المفتاح موجودًا في ملف التوطين. | |||
إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة message.welcome في حال لم يكن المفتاح موجودًا في ملف التوطين. | ====<code>()trans_choice</code>==== | ||
تترجم الدالة السلسلة الممرّرة مع مع تصريف الكلمة حسب العدد المُمرَّر إلى الدالة (inflection):<syntaxhighlight lang="php"> | |||
()trans_choice | |||
تترجم الدالة | |||
echo trans_choice('messages.notifications', $unreadCount); | echo trans_choice('messages.notifications', $unreadCount); | ||
</syntaxhighlight>إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة welcome.notifications في حال لم يكن المفتاح موجودًا. | |||
إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة welcome.notifications في حال لم يكن المفتاح موجودًا. | ====<code>()Str::uuid</code>==== | ||
تنشئ الدالة المعرف الفريد العالمي UUID (الإصدار 4):<syntaxhighlight lang="php"> | |||
()Str::uuid | |||
تنشئ الدالة المعرف الفريد العالمي UUID (الإصدار 4): | |||
use Illuminate\Support\Str; | use Illuminate\Support\Str; | ||
return (string) Str::uuid(); | return (string) Str::uuid(); | ||
()action | </syntaxhighlight> | ||
===العناوين URLs=== | |||
تنشئ الدالة | ====<code>()action</code>==== | ||
تنشئ الدالة عنوان URL لعمل وحدة التحكم. لا تحتاج لتمرير مجال الأسماء الكامل لوحدة التحكم. بدلًا من ذلك، مرّر اسم صنف وحدة التحكم نسبة لمجال الأسماء :<syntaxhighlight lang="php"> | |||
App\Http\Controllers: | |||
$url = action('HomeController@index'); | $url = action('HomeController@index'); | ||
سطر 796: | سطر 728: | ||
$url = action([HomeController::class, 'index']); | $url = action([HomeController::class, 'index']); | ||
</syntaxhighlight>إذا كان التابع يقبل معاملات مسارات، يمكنك تمريرها كمعامل ثاني للدالة:<syntaxhighlight lang="php"> | |||
$url = action('UserController@profile', ['id' => 1]); | $url = action('UserController@profile', ['id' => 1]); | ||
</syntaxhighlight> | |||
()asset | ====<code>()asset</code>==== | ||
تولّد الدالة عنوان URL للأصول باستخدام مخطط الطلب ( HTTP أو HTTPS):<syntaxhighlight lang="php"> | |||
تولّد الدالة | |||
$url = asset('img/photo.jpg'); | $url = asset('img/photo.jpg'); | ||
</syntaxhighlight> | |||
()secure_asset | ====<code>()secure_asset</code>==== | ||
تولّد الدالة عنوان URL لأحد الأصول باستخدام HTTPS:<syntaxhighlight lang="php"> | |||
تولّد الدالة | |||
$url = secure_asset('img/photo.jpg'); | $url = secure_asset('img/photo.jpg'); | ||
</syntaxhighlight> | |||
()route | ====<code>()route</code>==== | ||
تنشئ الدالة عنوان URL للمسار المسمى:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
$url = route('routeName'); | $url = route('routeName'); | ||
</syntaxhighlight>إذا كان المسار يقبل معاملات، يمكنك تمريرها كمعامل ثاني للتابع:<syntaxhighlight lang="php"> | |||
إذا كان المسار يقبل معاملات، يمكنك تمريرها كمعامل ثاني للتابع: | |||
$url = route('routeName', ['id' => 1]); | $url = route('routeName', ['id' => 1]); | ||
</syntaxhighlight>في العادة تنشئ الدالة <code>route</code> عنوان URL مطلق، إذا أردت عنوانا نسبيا، مرّر <code>false</code> كمعامل ثالث:<syntaxhighlight lang="php"> | |||
في العادة تنشئ الدالة route عنوان URL مطلق، إذا أردت عنوانا نسبيا، مرّر false كمعامل ثالث: | |||
$url = route('routeName', ['id' => 1], false); | $url = route('routeName', ['id' => 1], false); | ||
</syntaxhighlight> | |||
()secure_url | ====<code>()secure_url</code>==== | ||
تنشئ الدالة عنوان HTTPS URL مؤهل بشكل تام للمسار الممرّر:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
$url = secure_url('user/profile'); | $url = secure_url('user/profile'); | ||
$url = secure_url('user/profile', [1]); | $url = secure_url('user/profile', [1]); | ||
</syntaxhighlight> | |||
====<code>()url</code>==== | |||
تنشئ الدالة عنوان URL مؤهل بشكل تام للمسار الممرّر:<syntaxhighlight lang="php"> | |||
$url = url('user/profile'); | $url = url('user/profile'); | ||
$url = url('user/profile', [1]); | $url = url('user/profile', [1]); | ||
</syntaxhighlight>إذا لم يُوفّر أي مسار، تعيد الدالة <code>url</code> نسخة <code>Illuminate\Routing\UrlGenerator</code>:<syntaxhighlight lang="php"> | |||
$current = url()->current(); | $current = url()->current(); | ||
سطر 850: | سطر 770: | ||
$previous = url()->previous(); | $previous = url()->previous(); | ||
</syntaxhighlight> | |||
===متنوعات=== | |||
====<code>()abort</code>==== | |||
تطلق الدالة استثناء HTTP يظهر بمعالج الإستثناءات:<syntaxhighlight lang="php"> | |||
abort(403); | abort(403); | ||
</syntaxhighlight>يمكنك أيضًا توفير نص جواب الاستثناء والأجوبة المخصصة للترويسات:<syntaxhighlight lang="php"> | |||
يمكنك | |||
abort(403, 'Unauthorized.', $headers); | abort(403, 'Unauthorized.', $headers); | ||
</syntaxhighlight> | |||
()abort_if | ====<code>()abort_if</code>==== | ||
تطلق الدالة استثناء HTTP إذا كانت نتيجة عبارة منطقية ممرّرة هي القيمة <code>true</code>:<syntaxhighlight lang="php"> | |||
تطلق الدالة | |||
abort_if(! Auth::user()->isAdmin(), 403); | abort_if(! Auth::user()->isAdmin(), 403); | ||
</syntaxhighlight>مثل الدالة <code>abort</code>، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع. | |||
مثل الدالة | ====<code>()abort_unless</code>==== | ||
تطلق الدالة استثناء HTTP إذا كان نتيجة عبارة منطقية ممرّرة هي القيمة <code>false</code>:<syntaxhighlight lang="php"> | |||
()abort_unless | |||
تطلق الدالة | |||
abort_unless(Auth::user()->isAdmin(), 403); | abort_unless(Auth::user()->isAdmin(), 403); | ||
</syntaxhighlight>مثل الدالة <code>abort</code>، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع. | |||
مثل الدالة | ====<code>()app</code>==== | ||
تعيد الدالة نسخة حاوي الخدمات:<syntaxhighlight lang="php"> | |||
()app | |||
تعيد الدالة | |||
$container = app(); | $container = app(); | ||
</syntaxhighlight>يمكنك تمرير اسم صنف أو واجهة لتنفيذه من الحاوي:<syntaxhighlight lang="php"> | |||
يمكنك تمرير اسم صنف أو واجهة لتنفيذه من الحاوي: | |||
$api = app('HelpSpot\API'); | $api = app('HelpSpot\API'); | ||
</syntaxhighlight> | |||
()auth | ====<code>()auth</code>==== | ||
تعيد الدالة نسخة مُصادق (authentificator). يمكنك استعمال الدالة بدل الواجهة الساكنة Auth لسهولة العمل:<syntaxhighlight lang="php"> | |||
تعيد الدالة | |||
$user = auth()->user(); | $user = auth()->user(); | ||
</syntaxhighlight>عند الحاجة، يمكنك تحديد أي نسخة حارس تريد استعمالها:<syntaxhighlight lang="php"> | |||
عند الحاجة، يمكنك تحديد أي نسخة حارس تريد استعمالها: | |||
$user = auth('admin')->user(); | $user = auth('admin')->user(); | ||
</syntaxhighlight> | |||
()back | ====<code>()back</code>==== | ||
تنشئ الدالة جواب [[HTML]] لإعادة التوجيه للمكان السابق للمستخدم:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
return back($status = 302, $headers = [], $fallback = false); | return back($status = 302, $headers = [], $fallback = false); | ||
return back(); | return back(); | ||
</syntaxhighlight> | |||
====<code>()bcrypt</code>==== | |||
تجزّء الدالة القيمة المرّرة باستعمال Bcrypt. يمكنك استعمال الدالة كبديل عن الواجهة الساكنة Hash:<syntaxhighlight lang="php"> | |||
$password = bcrypt('my-secret-password'); | $password = bcrypt('my-secret-password'); | ||
</syntaxhighlight> | |||
()broadcast | ====<code>()broadcast</code>==== | ||
تبث الدالة الحدث المرّر للمنصتات:<syntaxhighlight lang="php"> | |||
تبث الدالة | |||
broadcast(new UserRegistered($user)); | broadcast(new UserRegistered($user)); | ||
</syntaxhighlight> | |||
()blank | ====<code>()blank</code>==== | ||
تتثبت الدالة من إذا كانت القيمة الممرّرة فارغة:<syntaxhighlight lang="php"> | |||
تتثبت الدالة | blank(); | ||
blank( | |||
blank(' '); | blank(' '); | ||
blank(null); | blank(null); | ||
blank(collect()); | blank(collect()); | ||
سطر 933: | سطر 825: | ||
blank(0); | blank(0); | ||
blank(true); | blank(true); | ||
blank(false); | blank(false); | ||
// false | // false | ||
</syntaxhighlight>لعكس وظيفة الدالة <code>blank</code>، اطلع على الدالة <code>filled</code>. | |||
====<code>()cache</code>==== | |||
تُستعمل الدالة لاسترجاع قيمة من التخزين المؤقت. إذا لم يكن المفتاح المرّر موجودًا، تعيد الدالة <code>cache</code> قيمة افتراضية:<syntaxhighlight lang="php"> | |||
$value = cache('key'); | $value = cache('key'); | ||
$value = cache('key', 'default'); | $value = cache('key', 'default'); | ||
</syntaxhighlight>يمكنك إضافة عناصر للتخزين المؤقت عبر تمرير ثنائي مفتاح \ قيمة للدالة <code>cache</code>. يجب عليك أيضًا تمرير عدد الدقائق أو المدة التي تبقى فيها القيمة صالحة في التخزين:<syntaxhighlight lang="php"> | |||
cache(['key' => 'value'], 5); | cache(['key' => 'value'], 5); | ||
cache(['key' => 'value'], now()->addSeconds(10)); | cache(['key' => 'value'], now()->addSeconds(10)); | ||
</syntaxhighlight> | |||
====<code>()class_uses_recursive</code>==== | |||
تعيد الدالة كل السمات (traits) التي يستعملها الصنف بما في ذلك السمات التي تستعملها الأصناف الآباء:<syntaxhighlight lang="php"> | |||
$traits = class_uses_recursive(App\User::class); | $traits = class_uses_recursive(App\User::class); | ||
</syntaxhighlight> | |||
()collect | ====<code>()collect</code>==== | ||
تنشئ لدالة نسخة مجموعة من القيم الممرّرة:<syntaxhighlight lang="php"> | |||
تنشئ لدالة | |||
$collection = collect(['taylor', 'abigail']); | $collection = collect(['taylor', 'abigail']); | ||
</syntaxhighlight> | |||
()config | ====<code>()config</code>==== | ||
تسترجع الدالة قيمة متغير ضبط. يمكن الوصول إلى القيمة باستعمال صياغة "النقاط" التي تتضمّن اسم الملف و الخيار الذي تريد الوصول إليه. يمكن تحديد قيمة افتراضية تعيدها الدالة <code>config</code> إذا كان خيار الضبط غير موجود:<syntaxhighlight lang="php"> | |||
تسترجع الدالة | |||
$value = config('app.timezone'); | $value = config('app.timezone'); | ||
$value = config('app.timezone', $default); | $value = config('app.timezone', $default); | ||
</syntaxhighlight>يمكنك تعيين متغيرات ضبط وقت التشغيل عبر تمرير ثنائي مفتاح \ قيمة:<syntaxhighlight lang="php"> | |||
config(['app.debug' => true]); | config(['app.debug' => true]); | ||
</syntaxhighlight> | |||
()cookie | ====<code>()cookie</code>==== | ||
تنشئ الدالة نسخة cookie جديدة:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
$cookie = cookie('name', 'value', $minutes); | $cookie = cookie('name', 'value', $minutes); | ||
</syntaxhighlight> | |||
====<code>()csrf_field</code>==== | |||
تنشئ الدالة حقل إدخال [[HTML]] مخفيًّا يحتوي قيمة الرمز csrf. مثلًا باستعمال صياغة [[Laravel/blade|Blade]]:<syntaxhighlight lang="php"> | |||
{{ csrf_field() }} | |||
</syntaxhighlight> | |||
====()csrf_token==== | |||
تستردّ الدالة قيمة رمز CSRF:<syntaxhighlight lang="php"> | |||
$token = csrf_token(); | $token = csrf_token(); | ||
</syntaxhighlight> | |||
()dd | ====<code>()dd</code>==== | ||
تُفرغ الدالة المتغيّر الممرّر وتنهي تنفيذ السكريبت:<syntaxhighlight lang="php"> | |||
تُفرغ الدالة | |||
dd($value); | dd($value); | ||
dd($value1, $value2, $value3, ...); | dd($value1, $value2, $value3, ...); | ||
</syntaxhighlight>إذا لم ترد إيقاف السكريبت، استخدم الدالة <code>dump</code>. | |||
====<code>()decrypt</code>==== | |||
تفك الدالة تشفير القيمة الممرّرة باستعمال مشفّر Laravel:<syntaxhighlight lang="php"> | |||
$decrypted = decrypt($encrypted_value); | $decrypted = decrypt($encrypted_value); | ||
</syntaxhighlight> | |||
()dispatch | ====<code>()dispatch</code>==== | ||
تُرسل الدالة المهمة الممرّرة للطابور:<syntaxhighlight lang="php"> | |||
تُرسل الدالة | |||
dispatch(new App\Jobs\SendEmails); | dispatch(new App\Jobs\SendEmails); | ||
</syntaxhighlight> | |||
()dispatch_now | ====<code>()dispatch_now</code>==== | ||
تنفذ الدالة المهمة الممرّرة وتعيد قيمة التابع <code>handle</code>:<syntaxhighlight lang="php"> | |||
تنفذ الدالة | |||
$result = dispatch_now(new App\Jobs\SendEmails); | $result = dispatch_now(new App\Jobs\SendEmails); | ||
</syntaxhighlight> | |||
()dump | ====<code>()dump</code>==== | ||
تُفرغ الدالة المتغير الممرّر:<syntaxhighlight lang="php"> | |||
تُفرغ الدالة | |||
dump($value); | dump($value); | ||
dump($value1, $value2, $value3, ...); | dump($value1, $value2, $value3, ...); | ||
</syntaxhighlight>إذا أردت إيقاف التنفيذ بعد التفريغ استعمل الدالة <code>dd</code>. | |||
ملاحظة : يمكنك استعمال الأمر <code>dump-server</code> لتلقي كل نداءات التفريغ وعرضهم في شاشة سطر الأوامر بدل المتصفح. | |||
====<code>()encrypt</code>==== | |||
تشفّر الدالة القيمة الممرّرة باستعمال مشفّر Laravel:<syntaxhighlight lang="php"> | |||
$encrypted = encrypt($unencrypted_value); | $encrypted = encrypt($unencrypted_value); | ||
</syntaxhighlight> | |||
()env | ====<code>()env</code>==== | ||
تستردّ الدالة متغيّرات البيئة أو تعيد قيمة افتراضية:<syntaxhighlight lang="php"> | |||
تستردّ الدالة | |||
$env = env('APP_ENV'); | $env = env('APP_ENV'); | ||
سطر 1٬050: | سطر 920: | ||
$env = env('APP_ENV', 'production'); | $env = env('APP_ENV', 'production'); | ||
</syntaxhighlight> | |||
====<code>()event</code>==== | |||
تطلق الدالة الأحداث للمنصتات:<syntaxhighlight lang="php"> | |||
event(new UserRegistered($user)); | event(new UserRegistered($user)); | ||
</syntaxhighlight> | |||
()factory | ====<code>()factory</code>==== | ||
تنشئ الدالة منشئ نموذج منتج (model factory builder) للصنف والاسم والكمية المرّرة. يمكن استعمالها في الاختبار و في تعبئة قاعدة البيانات:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
$user = factory(App\User::class)->make(); | $user = factory(App\User::class)->make(); | ||
</syntaxhighlight> | |||
()filled | ====<code>()filled</code>==== | ||
تعيد الدالة قيمة منطقية حول القيمة الممرّرة إن هي غير فارغة أم لا:<syntaxhighlight lang="php"> | |||
تعيد الدالة | |||
filled(0); | filled(0); | ||
filled(true); | filled(true); | ||
filled(false); | filled(false); | ||
// true | // true | ||
filled( | filled(); | ||
filled(' '); | filled(' '); | ||
filled(null); | filled(null); | ||
filled(collect()); | filled(collect()); | ||
// false | // false | ||
</syntaxhighlight>لعكس وظيفة الدالة، استعمل الدالة <code>blank</code>. | |||
====<code>()info</code>==== | |||
تكتب الدالة معلومات في ملف log:<syntaxhighlight lang="php"> | |||
info('Some helpful information!'); | info('Some helpful information!'); | ||
</syntaxhighlight>يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:<syntaxhighlight lang="php"> | |||
يمكن أيضًا تمرير مصفوفة من البيانات النصيّة: | |||
info('User login attempt failed.', ['id' => $user->id]); | info('User login attempt failed.', ['id' => $user->id]); | ||
</syntaxhighlight> | |||
()logger | ====<code>()logger</code>==== | ||
تُستعمل الدالة لكتابة رسائل في ملف الضبط في مستوى debug:<syntaxhighlight lang="php"> | |||
تُستعمل الدالة | |||
logger('Debug message'); | logger('Debug message'); | ||
</syntaxhighlight>يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:<syntaxhighlight lang="php"> | |||
يمكن أيضًا تمرير مصفوفة من البيانات النصيّة: | |||
logger('User has logged in.', ['id' => $user->id]); | logger('User has logged in.', ['id' => $user->id]); | ||
</syntaxhighlight>تعيد الدالة نسخة <code>logger</code> إذا لم تمرّر معاملات:<syntaxhighlight lang="php"> | |||
تعيد الدالة نسخة logger إذا لم تمرّر معاملات: | |||
logger()->error('You are not allowed here.'); | logger()->error('You are not allowed here.'); | ||
</syntaxhighlight> | |||
()method_field | ====<code>()method_field</code>==== | ||
تنشئ الدالة حقل كتابة مخفي يحتوي قيمة طريقة HTTP في الاستمارة. مثلًا، باستعمال صياغة [[Laravel/blade|Blade]]:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | <form method="POST"> | ||
{{ method_field('DELETE') }} | |||
<form method="POST"> | </form> | ||
</syntaxhighlight> | |||
()now | ====<code>()now</code>==== | ||
تنشئ الدالة نسخة <code>Illuminate\Support\Carbon</code> للوقت الحالي:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
$now = now(); | $now = now(); | ||
</syntaxhighlight> | |||
()old | ====<code>()old</code>==== | ||
تسترجع الدالة قيمة قديمة حُذفت من الجلسة:<syntaxhighlight lang="php"> | |||
تسترجع الدالة | |||
$value = old('value'); | $value = old('value'); | ||
$value = old('value', 'default'); | $value = old('value', 'default'); | ||
</syntaxhighlight> | |||
====<code>()optional</code>==== | |||
تقبل الدالة معاملا وتسمح لك بالوصول إلى خصائصه، توابعه، أو كائناته . سيعيد الطلب القيمة <code>null</code> بدل إحداث خطأ إذا كانت القيمة الممرّرة <code>null</code>:<syntaxhighlight lang="php"> | |||
return optional($user->address)->street; | return optional($user->address)->street; | ||
{!! old('name', optional($user)->name) !!} | {!! old('name', optional($user)->name) !!} | ||
</syntaxhighlight>تقبل الدالة أيضًا نداء Closure كمعامل ثاني. ينفَّذ المعامل الثاني إذا كانت قيمة المعامل الأول مخالفة ل<code>null</code>:<syntaxhighlight lang="php"> | |||
return optional(User::find($id), function ($user) { | return optional(User::find($id), function ($user) { | ||
return TwitterApi::findUser($user->twitter_id); | |||
}); | }); | ||
()policy | </syntaxhighlight> | ||
====<code>()policy</code>==== | |||
تستردّ الدالة | تستردّ الدالة نسخة policy لصنف ممرّر:<syntaxhighlight lang="php"> | ||
$policy = policy(App\User::class); | $policy = policy(App\User::class); | ||
</syntaxhighlight> | |||
()redirect | ====<code>()redirect</code>==== | ||
تعيد الدالة جواب HTTP لإعادة التوجيه أو تعيد نسخة الموجّه إذا نوديت دون معامل:<syntaxhighlight lang="php"> | |||
تعيد الدالة | |||
return redirect($to = null, $status = 302, $headers = [], $secure = null); | return redirect($to = null, $status = 302, $headers = [], $secure = null); | ||
سطر 1٬160: | سطر 1٬004: | ||
return redirect()->route('route.name'); | return redirect()->route('route.name'); | ||
</syntaxhighlight> | |||
==== <code>()report</code> ==== | |||
تبلغ الدالة عن وجود استثناء باستعمال التابع <code>report</code> من معالج الاستثناءات:<syntaxhighlight lang="php"> | |||
report($e); | report($e); | ||
</syntaxhighlight> | |||
()request | ==== <code>()request</code> ==== | ||
تعيد الدالة نسخة الطلب الحالي أو تحصل على عنصر إدخال:<syntaxhighlight lang="php"> | |||
تعيد الدالة | |||
$request = request(); | $request = request(); | ||
$value = request('key', $default); | $value = request('key', $default); | ||
</syntaxhighlight> | |||
==== <code>()rescue</code> ==== | |||
تنفّذ الدالة النطاق المغلق الممرّر Closure و تتلقى كل استثناء مطلق عند تنفيذه. تُرسل كل الاستثناءات للتابع <code>report</code> من معالج الاستثناءات لكن الدالة تكمل العمل:<syntaxhighlight lang="php"> | |||
return rescue(function () { | return rescue(function () { | ||
return $this->method(); | |||
}); | }); | ||
</syntaxhighlight>يمكنك تمرير معامل ثاني للدالة <code>rescue</code> يكون القيمة الافتراضية التي تعيدها في حال ظهور استثناء عند تنفيذ Closure:<syntaxhighlight lang="php"> | |||
return rescue(function () { | return rescue(function () { | ||
return $this->method(); | |||
}, false); | }, false); | ||
return rescue(function () { | return rescue(function () { | ||
return $this->method(); | |||
}, function () { | }, function () { | ||
return $this->failure(); | |||
}); | }); | ||
</syntaxhighlight> | |||
==== <code>()resolve</code> ==== | |||
تحل الدالة الصنف أو الواجهة الممرّرة باستعمال حاوي الخدمات:<syntaxhighlight lang="php"> | |||
$api = resolve('HelpSpot\API'); | $api = resolve('HelpSpot\API'); | ||
</syntaxhighlight> | |||
()response | ==== <code>()response</code> ==== | ||
تنشئ الدالة نسخة جواب أو تحصل على نسخة من منتج الجواب:<syntaxhighlight lang="php"> | |||
تنشئ الدالة | |||
return response('Hello World', 200, $headers); | return response('Hello World', 200, $headers); | ||
return response()->json(['foo' => 'bar'], 200, $headers); | return response()->json(['foo' => 'bar'], 200, $headers); | ||
</syntaxhighlight> | |||
==== <code>()retry</code> ==== | |||
تحاول الدالة تنفيذ النداء الممرّر حتى تصل للحد الأقصى المحدد من المحاولات. إذا لم يطلق النداء أي استثناء، تعيد الدالة <code>retry</code> القيمة المعادة من النداء. إذا أطلق النداء استثناء، تعيد الدالة <code>retry</code> محاولة تنفيذه. إذا وصلت الدالة للحد الأقصى من المحاولات، تطلق الدالة <code>retry</code> الاستثناء:<syntaxhighlight lang="php"> | |||
return retry(5, function () { | return retry(5, function () { | ||
// المحاولة 5 مرات مع الإنتظار 100 جزء من الثانية بين المحاولات | |||
}, 100); | }, 100); | ||
</syntaxhighlight> | |||
==== <code>()session</code> ==== | |||
يمكن استعمال الدالة لاسترداد أو تعيين قيم من الجلسة:<syntaxhighlight lang="php"> | |||
$value = session('key'); | $value = session('key'); | ||
</syntaxhighlight>يمكنك تعيين قيم بتمرير ثنائي مفتاح \ قيمة للدالة:<syntaxhighlight lang="php"> | |||
يمكنك تعيين قيم بتمرير ثنائي مفتاح \ قيمة للدالة: | |||
session(['chairs' => 7, 'instruments' => 3]); | session(['chairs' => 7, 'instruments' => 3]); | ||
</syntaxhighlight>يعاد مخزن الجلسة (session store) إذا نوديت الدالة دون تمرير أي قيمة:<syntaxhighlight lang="php"> | |||
يعاد مخزن الجلسة (session store) إذا نوديت الدالة دون تمرير أي قيمة: | |||
$value = session()->get('key'); | $value = session()->get('key'); | ||
session()->put('key', $value); | session()->put('key', $value); | ||
</syntaxhighlight> | |||
==== <code>()tap</code> ==== | |||
تقبل الدالة معاملين : قيمة عشوائية <code>value$</code> والنطاق المغلق Closure. تمرّر القيمة للنطاق المغلق Closure ثم تعيدها الدالة <code>tap</code>. القيمة التي تعيدها Closure غير مهمة:<syntaxhighlight lang="php"> | |||
$user = tap(User::first(), function ($user) { | $user = tap(User::first(), function ($user) { | ||
$user->name = 'taylor'; | |||
$user->save(); | |||
}); | }); | ||
</syntaxhighlight>إذا لم تمرّر Closure يمكنك نداء أي تابع مع القيمة <code>value$</code>. تعيد الدالة دائما <code>value$</code> مهما أعاد التابع المنادى. على سبيل المثال، التابع <code>update</code> من [[Laravel/eloquent|Eloquent]] يعيد عادة رقمًا لكن بإمكاننا إرغام التابع على إعادة النموذج نفسه عبر إضافة التابع <code>update</code> للدالة <code>tap</code>:<syntaxhighlight lang="php"> | |||
$user = tap($user)->update([ | $user = tap($user)->update([ | ||
'name' => $name, | |||
'email' => $email, | |||
]); | ]); | ||
</syntaxhighlight> | |||
==== <code>()today</code> ==== | |||
تنشئ الدالة نسخة <code>Illuminate\Support\Carbon</code> للتاريخ الحالي:<syntaxhighlight lang="php"> | |||
$today = today(); | $today = today(); | ||
</syntaxhighlight> | |||
()thow_if | ==== <code>()thow_if</code> ==== | ||
تطلق الدالة الاستثناء الممرّر إذا كانت نتيجة العبارة المنطقية الممرّرة <code>true</code>:<syntaxhighlight lang="php"> | |||
تطلق الدالة | |||
throw_if(! Auth::user()->isAdmin(), AuthorizationException::class); | throw_if(! Auth::user()->isAdmin(), AuthorizationException::class); | ||
throw_if( | throw_if( | ||
! Auth::user()->isAdmin(), | |||
AuthorizationException::class, | |||
'You are not allowed to access this page' | |||
); | ); | ||
</syntaxhighlight> | |||
==== <code>()throw_unless</code> ==== | |||
تطلق الدالة الاستثناء الممرّر إذا كانت نتيجة العبارة المنطقية الممرّرة <code>false</code>:<syntaxhighlight lang="php"> | |||
throw_unless(Auth::user()->isAdmin(), AuthorizationException::class); | throw_unless(Auth::user()->isAdmin(), AuthorizationException::class); | ||
throw_unless( | throw_unless( | ||
Auth::user()->isAdmin(), | |||
AuthorizationException::class, | |||
'You are not allowed to access this page' | |||
); | ); | ||
</syntaxhighlight> | |||
==== <code>()trait_uses_recursive</code> ==== | |||
تعيد الدالة كل السمات المستعملة من قبل سمة:<syntaxhighlight lang="php"> | |||
$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class); | $traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class); | ||
</syntaxhighlight> | |||
()transform | ==== <code>()transform</code> ==== | ||
تنفذ الدالة النطاق المغلق Closure على قيمة ممرّرة إذا لم تكن فارغة وتعيد نتيجة النطاق المغلق:<syntaxhighlight lang="php"> | |||
$callback = function ($value) { | |||
return $value * 2; | |||
}; | }; | ||
سطر 1٬302: | سطر 1٬151: | ||
// 10 | // 10 | ||
</syntaxhighlight>يمكن تمرير قيمة مبدئية أو Closure تعاد حين تكون القيمة الممرّرة فارغة:<syntaxhighlight lang="php"> | |||
$result = transform(null, $callback, 'The value is blank'); | $result = transform(null, $callback, 'The value is blank'); | ||
// The value is blank | // The value is blank | ||
</syntaxhighlight> | |||
==== <code>()validator</code> ==== | |||
تنشئ الدالة نسخة validator بالمعامل الممرّر. يمكن استعمال الدالة كبديل عن الواجهة الساكنة Validator لسهولة العمل:<syntaxhighlight lang="php"> | |||
$validator = validator($data, $rules, $messages); | $validator = validator($data, $rules, $messages); | ||
</syntaxhighlight> | |||
()value | ==== <code>()value</code> ==== | ||
تعيد الدالة القيمة الممرّرة، لكن إذا مرّرت نطاقًا مغلقًا، سينفذ وتعاد نتيجته:<syntaxhighlight lang="php"> | |||
تعيد الدالة | |||
$result = value(true); | $result = value(true); | ||
سطر 1٬323: | سطر 1٬172: | ||
$result = value(function () { | $result = value(function () { | ||
return false; | |||
}); | }); | ||
// false | // false | ||
</syntaxhighlight> | |||
==== <code>()view</code> ==== | |||
تستردّ الدالة نسخة واجهة:<syntaxhighlight lang="php"> | |||
return view('auth.login'); | return view('auth.login'); | ||
</syntaxhighlight> | |||
()with | ==== <code>()with</code> ==== | ||
تعيد الدالة القيمة الممرّرة. إذا مرّرت نطاقًا مغلقًا Closure كمعامل ثاني للدالة، سينفذ وتعاد نتيجته:<syntaxhighlight lang="php"> | |||
$callback = function ($value) { | |||
return (is_numeric($value)) ? $value * 2 : 0; | |||
}; | }; | ||
سطر 1٬354: | سطر 1٬205: | ||
// 5 | // 5 | ||
صفحة Helpers في توثيق Laravel الرسمي.<noinclude>{{DISPLAYTITLE:الدوال المساعدة في Laravel}}</noinclude> | </syntaxhighlight> | ||
[[تصنيف:Laravel]] | |||
[[تصنيف:Laravel Digging deeper]] | == مصادر == | ||
* [https://laravel.com/docs/5.6/helpers صفحة Helpers في توثيق Laravel الرسمي.] | |||
<noinclude>{{DISPLAYTITLE:الدوال المساعدة (Helpers) في Laravel}}</noinclude> | |||
[[تصنيف:Laravel|{{SUBPAGENAME}}]] | |||
[[تصنيف:Laravel Digging deeper|{{SUBPAGENAME}}]] |
المراجعة الحالية بتاريخ 14:08، 24 أكتوبر 2018
مقدمة
يتضمن Laravel عددًا من دوال PHP المساعدة. تُستعمل العديد من هذه الدوال من قبل Laravel لكن بامكانك استعمالها في تطبيقك اذا احتجتهم.
قائمة التوابع
المصفوفات والكائنات
()array_add
تضيف الدالة الثنائي مفتاح\قيمة الممرّر لمصفوفة إذا كان المفتاح غير موجود مسبقًا:
$array = array_add(['name' => 'Desk'], 'price', 100);
// ['name' => 'Desk', 'price' => 100]
()array_collapse
تحول الدالة مصفوفة مصفوفات لمصفوفة واحدة:
$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]);
// [1, 2, 3, 4, 5, 6, 7, 8, 9]
()array_divide
تعيد الدالة مصفوفتين، واحدة تحتوي المفاتيح وأخرى تحتوي القيم من المصفوفة الممرّرة:
[$keys, $values] = array_divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']
()array_dot
تسطّح الدالة مصفوفة متعددة الأبعاد لمصفوفة ببعد واحد تستعمل رمز النقطة لبيان العمق:
$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = array_dot($array);
// ['products.desk.price' => 100]
()array_except
تحذف الدالة الثنائي مفتاح\قيمة الممرّر من المصفوفة:
$array = ['name' => 'Desk', 'price' => 100];
$filtered = array_except($array, ['price']);
// ['name' => 'Desk']
()array_first
تعيد الدالة العنصر الأول من المصفوفة الممرّرة الذي يستجيب لشرط صحّة:
$array = [100, 200, 300];
$first = array_first($array, function ($value, $key) {
return $value >= 150;
});
// 200
يمكن تمرير قيمة افتراضية كمعامل ثالث. تُعاد القيمة الافتراضية في حال لم يستجب أي عنصر لشرط الصحّة:
$first = array_first($array, $callback, $default);
()array_flatten
تسطِّح الدالة مصفوفة متعدّدة الأبعاد لمصفوفة ببعد واحد:
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$flattened = array_flatten($array);
// ['Joe', 'PHP', 'Ruby']
()array_forget
تحذف الدالة الثنائي مفتاح\قيمة من مصفوفة متداخلة باستعمال رمز" النقطة ":
$array = ['products' => ['desk' => ['price' => 100]]];
array_forget($array, 'products.desk');
// ['products' => []]
()array_get
تسترجع الدالة قيمة من مصفوفة متداخلة باستعمال رمز "النقطة":
$array = ['products' => ['desk' => ['price' => 100]]];
$price = array_get($array, 'products.desk.price');
// 100
تقبل الدالة أيضًا قيمة افتراضية تعيدها في حال لم تجد المفتاح الممرّر:
$discount = array_get($array, 'products.desk.discount', 0);
// 0
()array_has
تتثبت الدالة من وجود عنصر أو عناصر ممرّرة في المصفوفة باستعمال الرمز "نقطة":
$array = ['product' => ['name' => 'Desk', 'price' => 100]];
$contains = array_has($array, 'product.name');
// true
$contains = array_has($array, ['product.price', 'product.discount']);
// false
()array_last
تعيد الدالة آخر عنصر يستجيب لشرط الصحّة:
$array = [100, 200, 300, 110];
$last = array_last($array, function ($value, $key) {
return $value >= 150;
});
// 300
يمكن تمرير قيمة افتراضية كمعامل ثالث تعيدها الدالة في حال لم يستجب أي عنصر لشرط الصحة:
$last = array_last($array, $callback, $default);
()array_only
تعبد الدالة فقط الثنائيات الممرّرة من المصفوفة:
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$slice = array_only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
()array_pluck
تستعيد الدالة كل القيم لمفتاح ممرّر من المصفوفة:
$array = [
['developer' => ['id' => 1, 'name' => 'Taylor']],
['developer' => ['id' => 2, 'name' => 'Abigail']],
$names = array_pluck($array, 'developer.name');
];
// ['Taylor', 'Abigail']
يمكنك أيضًا تحديد المفاتيح التي تريد لعرضها في النتيجة :
$names = array_pluck($array, 'developer.name', 'developer.id');
// [1 => 'Taylor', 2 => 'Abigail']
()array_prepend
تضبف الدالة عنصرًا في أول المصفوفة:
$array = ['one', 'two', 'three', 'four'];
$array = array_prepend($array, 'zero');
// ['zero', 'one', 'two', 'three', 'four']
عند الحاجة، بإمكانك تحديد المفتاح الذي يجب استعماله مع القيمة:
$array = ['price' => 100];
$array = array_prepend($array, 'Desk', 'name');
// ['name' => 'Desk', 'price' => 100]
()array_pull
تعيد الدالة وتحذف ثنائي مفتاح\قيمة من المصفوفة:
$array = ['name' => 'Desk', 'price' => 100];
$name = array_pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
يمكن تمرير قيمة افتراضية كمعامل ثالث تعيده الدالة في حال عدم وجود المفتاح:
$value = array_pull($array, $key, $default);
()array_random
تعيد الدالة قيمة عشوائية من المصفوفة:
$array = [1, 2, 3, 4, 5];
$random = array_random($array);
// 4 - (اختيرت بعشوائية)
يمكن أيضًا تحديد عدد العناصر الذي يجب إعادته كمعامل ثاني اختياري.لاحظ أن هذا الخيار سيعيد مصفوفة حتو لو اخترت عنصرًا واحدًا:
$items = array_random($array, 2);
// [2, 5] - (retrieved randomly)
()array_set
تعيّن الدالة قيمة في مصفوفة متداخلة باستعمال الرمز "نقطة":
$array = ['products' => ['desk' => ['price' => 100]]];
array_set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
()array_sort
ترتّب الدالة المصفوفة حسب القيم:
$array = ['Desk', 'Table', 'Chair'];
$sorted = array_sort($array);
// ['Chair', 'Desk', 'Table']
يمكن أيضًا ترتيب مصفوفة حسب نتائج النطاق المغلق Closure:
$array = [
['name' => 'Desk'],
['name' => 'Table'],
['name' => 'Chair'],
];
$sorted = array_values(array_sort($array, function ($value) {
return $value['name'];
}));
/*
[
['name' => 'Chair'],
['name' => 'Desk'],
['name' => 'Table'],
]
*/
()array_sort_recursive
ترتّب الدالة المصفوفة مرتبة بشكل تكراري باستعمال الدالة sort
:
$array = [
['Roman', 'Taylor', 'Li'],
['PHP', 'Ruby', 'JavaScript'],
];
$sorted = array_sort_recursive($array);
/*
[
['Li', 'Roman', 'Taylor'],
['JavaScript', 'PHP', 'Ruby'],
]
*/
()array_where
ترشح الدالة المصفوفة باستعمال النطاق المغلق المعطى Closure:
$array = [100, '200', 300, '400', 500];
$filtered = array_where($array, function ($value, $key) {
return is_string($value);
});
// [1 => '200', 3 => '400']
()array_wrap
تغلف الدالة القيمة الممرّرة في مصفوفة. إذا كانت القيمة الممرّرة مصفوفة بالأصل فلن تتغير:
$string = 'Laravel';
$array = array_wrap($string);
// ['Laravel']
إذا كانت القيمة الممرّرة null
، تعيد الدالة array_wrap
مصفوفة فارغة:
$nothing = null;
$array = array_wrap($nothing);
// []
()data_fill
تضبط الدالة قيمة مفقودة بمصفوفة متداخلة أو بكائن باستعمال الرمز "نقطة":
$data = ['products' => ['desk' => ['price' => 100]]];
data_fill($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 100]]]
data_fill($data, 'products.desk.discount', 10);
// ['products' => ['desk' => ['price' => 100, 'discount' => 10]]]
تقبل الدالة أيضًا الرمز "*" كمحرف بدل لرمز يملؤه الهدف بما يلائم:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2'],
],
];
data_fill($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 200],
],
]
()data_get
تسترجع الدالة قيمة من مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":
$data = ['products' => ['desk' => ['price' => 100]]];
$price = data_get($data, 'products.desk.price');
// 100
تقبل الدالة أيضًا قيمة افتراضيّة تعيدها إذا لم تجد المفتاح في المصفوفة:
$discount = data_get($data, 'products.desk.discount', 0);
// 0
()data_set
تضبط الدالة قيمة في مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
تقبل الدالة data_set
أيضًا محرفات بديلة وتعوضها بما يلائم:
$data = [
'products' => [
['name' => 'Desk 1', 'price' => 100],
['name' => 'Desk 2', 'price' => 150],
],
];
data_set($data, 'products.*.price', 200);
/*
[
'products' => [
['name' => 'Desk 1', 'price' => 200],
['name' => 'Desk 2', 'price' => 200],
],
]
في العادة، تعاد كتابة القيم. إذا أردت تعيين قيمة غير موجودة، يمكنك تمرير القيمة false
كمعامل ثالث:
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);
// ['products' => ['desk' => ['price' => 100]]]
()head
تعيد الدالة العنصر الأول من مصفوفة ممرّرة:
$array = [100, 200, 300];
$first = head($array);
// 100
()last
تعيد الدالة العنصر الأخير من المصفوفة الممرّرة:
$array = [100, 200, 300];
$last = last($array);
// 300
المسارات
()app_path
تعيد الدالة المسار الكامل للدليل app. يمكن أيضًا استعمال الدالة لإنشاء مسار لملف موجود في دليل التطبيق:
$path = app_path();
$path = app_path('Http/Controllers/Controller.php');
()base_path
تعيد الدالة مسارا لجذر التطبيق. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف تابع لدليل جذر التطبيق:
$path = base_path();
$path = base_path('vendor/bin');
()config_path
تعيد الدالة المسار المؤهل بشكل كامل للدليل config. يمكنك استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف معين في دليل الضبط:
$path = config_path();
$path = config_path('app.php');
()data_path
تعيد الدالة مسارا مؤهلا للدليل database. يمكن أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في دليل قاعدة البيانات:
$path = database_path();
$path = database_path('factories/UserFactory.php');
()mix
تعيد الدالة مسارا للملف Mix:
$path = mix('css/app.css');
()public_path
تعيد الدالة مسارًا مؤهلا للدليل public. يمكنك أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملفات في الدليل public:
$path = public_path();
$path = public_path('css/app.css');
()resource_path
تعيد الدالة مسارًا مؤهلا للدليل resources. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في الدليل resources:
$path = resource_path();
$path = resource_path('assets/sass/app.scss');
()storage_path
تعيد الدالة مسارًا مؤهلا للدليل storage. يمكن أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملف في الدليل storage:
$path = storage_path();
$path = storage_path('app/file.txt');
السلاسل النصية
()__
تترجم الدالة سلسلة الترجمة أو مفتاح الترجمة باستعمال ملفات الترجمة في التطبيق:
echo __('Welcome to our application');
echo __('messages.welcome');
إذا لم توجد سلسلة أو مفتاح الترجمة، تعيد الدالة القيمة الممرّرة. لذا باستعمال المثال السابق، تعيد الدالة "message.welcome" في حال عدم وجود المفتاح.
()camel_case
تحوّل الدالة السلسلة لسلسلة منسقةً بحالة سِنَام الجمل:
$converted = camel_case('foo_bar');
// fooBar
()class_basename
تعيد الدالة اسم الصنف للصنف الممرّر بعد حذف دليله:
$class = class_basename('Foo\Bar\Baz');
// Baz
()e
تنفذ الدالة الدالة htmlspecialchars
من PHP مع الخيار double_encode
على القيمة true
افتراضيًّا:
echo e('<html>foo</html>');
// <html>foo</html>
()ends_with
تحدّد الدالة إذا كانت السلسلة تنتهي بالقيمة الممرّرة:
$result = ends_with('This is my name', 'name');
// true
()kebab_case
تحول الدالة السلسلة الممرّرة منسقةً بحالة kebab-case:
$converted = kebab_case('fooBar');
// foo-bar
()preg_replace_array
تعوّض الدالة الأسلوب الممرّر في السلسلة باستعمال مصفوفة:
$string = 'The event will take place between :start and :end';
$replaced = preg_replace_array('/:[a-z_]+/', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
()snake_case
تحول الدالة السلسلة الممرّرة منسقةً بحالة snake_case:
$converted = snake_case('fooBar');
// foo_bar
()starts_with
تحدد الدالة إذا كان السلسلة الممرّرة تبدأ بالقيمة الممررّة:
$result = starts_with('This is my name', 'This');
// true
()str_after
تعيد الدالة كل شيء بعد السلسلة الممررة:
$slice = str_after('This is my name', 'This is');
// ' my name'
()str_before
تعيد الدالة كل شيء قبل السلسلة الممررة:
$slice = str_before('This is my name', 'my name');
// 'This is '
()str_contains
تحدد الدالة إذا كانت السلسلة تحتوي القيمة الممرّرة (مع احترام الحروف الكبيرة والصغيرة):
$contains = str_contains('This is my name', 'my');
// true
يمكنك تمرير مصفوفة من القيم لتحدد إذا كانت موجودة في السلسلة:
$contains = str_contains('This is my name', ['my', 'foo']);
// true
()str_finish
تضيف الدالة نسخةً واحدةً من قيمة ممرّرة لسلسلة إذا لم تكن السلسلة تنتهي بتلك القيمة:
$adjusted = str_finish('this/string', '/');
// this/string/
$adjusted = str_finish('this/string/', '/');
// this/string/
()str_is
تحدد الدالة إذا كانت السلسلة مطابقة لأسلوب ممرّر. تُستعمل الرموز "*" للدلالة على محرف بدل:
$matches = str_is('foo*', 'foobar');
// true
$matches = str_is('baz*', 'foobar');
// false
()str_limit
تقطع الدالة السلسلة حسب الطول المحدد:
cated = str_limit('The quick brown fox jumps over the lazy dog', 20);
// The quick brown fox...
يمكنك تمرير معامل ثالث لتغيير السلسلة التي تضاف في الآخر:
$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20, ' (...)');
// The quick brown fox (...)
()Str::orderedUuid
تنشئ الدالة معرف فريد عالمي لبصمة وقت يمكن تخزينه في قاعدة بيانات:
use Illuminate\Support\Str;
return (string) Str::orderedUuid();
()str_plural
تحول الدالة السلسلة لصيغة الجمع. تدعم هذه الدالة حاليا اللغة الإنقليزية فقط:
$plural = str_plural('car');
// cars
$plural = str_plural('child');
// children
يمكنك تمرير معامل ثاني للدالة لاسترجاع صيغة المفرد أو الجمع للسلسلة:
$plural = str_plural('child', 2);
// children
$plural = str_plural('child', 1);
// child
()str_random
تنشئ الدالة سلسلة نصية عشوائية بالطول المحدد. تستخدم هذه الدالة الدالة random_bytes من PHP:
$random = str_random(40);
()str_replace_array
تستبدل الدالة القيمة الممرّرة من السلسلة النصية باستخدام مصفوفة:
$string = 'The event will take place between ? and ?';
$replaced = str_replace_array('?', ['8:30', '9:00'], $string);
// The event will take place between 8:30 and 9:00
()str_replace_first
تستبدل الدالة الظهور الأول للقيمة الممرّرة بسلسة نصية:
$replaced = str_replace_first('the', 'a', 'the quick brown fox jumps over the lazy dog');
// a quick brown fox jumps over the lazy dog
()str_replace_last
تستبدل الدالة الظهور الأخير للقيمة الممرّرة بسلسة نصية:
$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog');
// the quick brown fox jumps over a lazy dog
()str_singular
تحوّل الدالة سلسلة نصية لصيغة المفرد. تدعم الدالة الآن فقط اللغة الإنقليزية:
$replaced = str_replace_last('the', 'a', 'the quick brown fox jumps over the lazy dog');
// the quick brown fox jumps over a lazy dog
()str_slug
تنشئ الدالة قيمة "slug" يمكن استعمالها مع مسارات URL:
$slug = str_slug('Laravel 5 Framework', '-');
// laravel-5-framework
()str_start
تضيف الدالة نسخة واحدة من القيمة الممرّرة في أول السلسلة إذا لم تكن موجودة:
$adjusted = str_start('this/string', '/');
// /this/string
$adjusted = str_start('/this/string', '/');
// /this/string
()studly_case
تحول الدالة السلسلة الممرّرة منسقةً بحالة StudlyCase:
$converted = studly_case('foo_bar');
// FooBar
()title_case
تحول الدالة السلسلة الممرّرة منسقةً بحالة Title Case:
$converted = title_case('a nice title uses the correct case');
// A Nice Title Uses The Correct Case
()trans
تترجم الدالة مفتاح الترجمة الممرّر باستعمال ملفات التوطين:
echo trans('messages.welcome');
إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة message.welcome في حال لم يكن المفتاح موجودًا في ملف التوطين.
()trans_choice
تترجم الدالة السلسلة الممرّرة مع مع تصريف الكلمة حسب العدد المُمرَّر إلى الدالة (inflection):
echo trans_choice('messages.notifications', $unreadCount);
إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة welcome.notifications في حال لم يكن المفتاح موجودًا.
()Str::uuid
تنشئ الدالة المعرف الفريد العالمي UUID (الإصدار 4):
use Illuminate\Support\Str;
return (string) Str::uuid();
العناوين URLs
()action
تنشئ الدالة عنوان URL لعمل وحدة التحكم. لا تحتاج لتمرير مجال الأسماء الكامل لوحدة التحكم. بدلًا من ذلك، مرّر اسم صنف وحدة التحكم نسبة لمجال الأسماء :
App\Http\Controllers:
$url = action('HomeController@index');
$url = action([HomeController::class, 'index']);
إذا كان التابع يقبل معاملات مسارات، يمكنك تمريرها كمعامل ثاني للدالة:
$url = action('UserController@profile', ['id' => 1]);
()asset
تولّد الدالة عنوان URL للأصول باستخدام مخطط الطلب ( HTTP أو HTTPS):
$url = asset('img/photo.jpg');
()secure_asset
تولّد الدالة عنوان URL لأحد الأصول باستخدام HTTPS:
$url = secure_asset('img/photo.jpg');
()route
تنشئ الدالة عنوان URL للمسار المسمى:
$url = route('routeName');
إذا كان المسار يقبل معاملات، يمكنك تمريرها كمعامل ثاني للتابع:
$url = route('routeName', ['id' => 1]);
في العادة تنشئ الدالة route
عنوان URL مطلق، إذا أردت عنوانا نسبيا، مرّر false
كمعامل ثالث:
$url = route('routeName', ['id' => 1], false);
()secure_url
تنشئ الدالة عنوان HTTPS URL مؤهل بشكل تام للمسار الممرّر:
$url = secure_url('user/profile');
$url = secure_url('user/profile', [1]);
()url
تنشئ الدالة عنوان URL مؤهل بشكل تام للمسار الممرّر:
$url = url('user/profile');
$url = url('user/profile', [1]);
إذا لم يُوفّر أي مسار، تعيد الدالة url
نسخة Illuminate\Routing\UrlGenerator
:
$current = url()->current();
$full = url()->full();
$previous = url()->previous();
متنوعات
()abort
تطلق الدالة استثناء HTTP يظهر بمعالج الإستثناءات:
abort(403);
يمكنك أيضًا توفير نص جواب الاستثناء والأجوبة المخصصة للترويسات:
abort(403, 'Unauthorized.', $headers);
()abort_if
تطلق الدالة استثناء HTTP إذا كانت نتيجة عبارة منطقية ممرّرة هي القيمة true
:
abort_if(! Auth::user()->isAdmin(), 403);
مثل الدالة abort
، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع.
()abort_unless
تطلق الدالة استثناء HTTP إذا كان نتيجة عبارة منطقية ممرّرة هي القيمة false
:
abort_unless(Auth::user()->isAdmin(), 403);
مثل الدالة abort
، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع.
()app
تعيد الدالة نسخة حاوي الخدمات:
$container = app();
يمكنك تمرير اسم صنف أو واجهة لتنفيذه من الحاوي:
$api = app('HelpSpot\API');
()auth
تعيد الدالة نسخة مُصادق (authentificator). يمكنك استعمال الدالة بدل الواجهة الساكنة Auth لسهولة العمل:
$user = auth()->user();
عند الحاجة، يمكنك تحديد أي نسخة حارس تريد استعمالها:
$user = auth('admin')->user();
()back
تنشئ الدالة جواب HTML لإعادة التوجيه للمكان السابق للمستخدم:
return back($status = 302, $headers = [], $fallback = false);
return back();
()bcrypt
تجزّء الدالة القيمة المرّرة باستعمال Bcrypt. يمكنك استعمال الدالة كبديل عن الواجهة الساكنة Hash:
$password = bcrypt('my-secret-password');
()broadcast
تبث الدالة الحدث المرّر للمنصتات:
broadcast(new UserRegistered($user));
()blank
تتثبت الدالة من إذا كانت القيمة الممرّرة فارغة:
blank();
blank(' ');
blank(null);
blank(collect());
// true
blank(0);
blank(true);
blank(false);
// false
لعكس وظيفة الدالة blank
، اطلع على الدالة filled
.
()cache
تُستعمل الدالة لاسترجاع قيمة من التخزين المؤقت. إذا لم يكن المفتاح المرّر موجودًا، تعيد الدالة cache
قيمة افتراضية:
$value = cache('key');
$value = cache('key', 'default');
يمكنك إضافة عناصر للتخزين المؤقت عبر تمرير ثنائي مفتاح \ قيمة للدالة cache
. يجب عليك أيضًا تمرير عدد الدقائق أو المدة التي تبقى فيها القيمة صالحة في التخزين:
cache(['key' => 'value'], 5);
cache(['key' => 'value'], now()->addSeconds(10));
()class_uses_recursive
تعيد الدالة كل السمات (traits) التي يستعملها الصنف بما في ذلك السمات التي تستعملها الأصناف الآباء:
$traits = class_uses_recursive(App\User::class);
()collect
تنشئ لدالة نسخة مجموعة من القيم الممرّرة:
$collection = collect(['taylor', 'abigail']);
()config
تسترجع الدالة قيمة متغير ضبط. يمكن الوصول إلى القيمة باستعمال صياغة "النقاط" التي تتضمّن اسم الملف و الخيار الذي تريد الوصول إليه. يمكن تحديد قيمة افتراضية تعيدها الدالة config
إذا كان خيار الضبط غير موجود:
$value = config('app.timezone');
$value = config('app.timezone', $default);
يمكنك تعيين متغيرات ضبط وقت التشغيل عبر تمرير ثنائي مفتاح \ قيمة:
config(['app.debug' => true]);
()cookie
تنشئ الدالة نسخة cookie جديدة:
$cookie = cookie('name', 'value', $minutes);
()csrf_field
تنشئ الدالة حقل إدخال HTML مخفيًّا يحتوي قيمة الرمز csrf. مثلًا باستعمال صياغة Blade:
{{ csrf_field() }}
()csrf_token
تستردّ الدالة قيمة رمز CSRF:
$token = csrf_token();
()dd
تُفرغ الدالة المتغيّر الممرّر وتنهي تنفيذ السكريبت:
dd($value);
dd($value1, $value2, $value3, ...);
إذا لم ترد إيقاف السكريبت، استخدم الدالة dump
.
()decrypt
تفك الدالة تشفير القيمة الممرّرة باستعمال مشفّر Laravel:
$decrypted = decrypt($encrypted_value);
()dispatch
تُرسل الدالة المهمة الممرّرة للطابور:
dispatch(new App\Jobs\SendEmails);
()dispatch_now
تنفذ الدالة المهمة الممرّرة وتعيد قيمة التابع handle
:
$result = dispatch_now(new App\Jobs\SendEmails);
()dump
تُفرغ الدالة المتغير الممرّر:
dump($value);
dump($value1, $value2, $value3, ...);
إذا أردت إيقاف التنفيذ بعد التفريغ استعمل الدالة dd
.
ملاحظة : يمكنك استعمال الأمر dump-server
لتلقي كل نداءات التفريغ وعرضهم في شاشة سطر الأوامر بدل المتصفح.
()encrypt
تشفّر الدالة القيمة الممرّرة باستعمال مشفّر Laravel:
$encrypted = encrypt($unencrypted_value);
()env
تستردّ الدالة متغيّرات البيئة أو تعيد قيمة افتراضية:
$env = env('APP_ENV');
// تعيد production إذا كانت المتغيرات غير معدّة
$env = env('APP_ENV', 'production');
()event
تطلق الدالة الأحداث للمنصتات:
event(new UserRegistered($user));
()factory
تنشئ الدالة منشئ نموذج منتج (model factory builder) للصنف والاسم والكمية المرّرة. يمكن استعمالها في الاختبار و في تعبئة قاعدة البيانات:
$user = factory(App\User::class)->make();
()filled
تعيد الدالة قيمة منطقية حول القيمة الممرّرة إن هي غير فارغة أم لا:
filled(0);
filled(true);
filled(false);
// true
filled();
filled(' ');
filled(null);
filled(collect());
// false
لعكس وظيفة الدالة، استعمل الدالة blank
.
()info
تكتب الدالة معلومات في ملف log:
info('Some helpful information!');
يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:
info('User login attempt failed.', ['id' => $user->id]);
()logger
تُستعمل الدالة لكتابة رسائل في ملف الضبط في مستوى debug:
logger('Debug message');
يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:
logger('User has logged in.', ['id' => $user->id]);
تعيد الدالة نسخة logger
إذا لم تمرّر معاملات:
logger()->error('You are not allowed here.');
()method_field
تنشئ الدالة حقل كتابة مخفي يحتوي قيمة طريقة HTTP في الاستمارة. مثلًا، باستعمال صياغة Blade:
<form method="POST">
{{ method_field('DELETE') }}
</form>
()now
تنشئ الدالة نسخة Illuminate\Support\Carbon
للوقت الحالي:
$now = now();
()old
تسترجع الدالة قيمة قديمة حُذفت من الجلسة:
$value = old('value');
$value = old('value', 'default');
()optional
تقبل الدالة معاملا وتسمح لك بالوصول إلى خصائصه، توابعه، أو كائناته . سيعيد الطلب القيمة null
بدل إحداث خطأ إذا كانت القيمة الممرّرة null
:
return optional($user->address)->street;
{!! old('name', optional($user)->name) !!}
تقبل الدالة أيضًا نداء Closure كمعامل ثاني. ينفَّذ المعامل الثاني إذا كانت قيمة المعامل الأول مخالفة لnull
:
return optional(User::find($id), function ($user) {
return TwitterApi::findUser($user->twitter_id);
});
()policy
تستردّ الدالة نسخة policy لصنف ممرّر:
$policy = policy(App\User::class);
()redirect
تعيد الدالة جواب HTTP لإعادة التوجيه أو تعيد نسخة الموجّه إذا نوديت دون معامل:
return redirect($to = null, $status = 302, $headers = [], $secure = null);
return redirect('/home');
return redirect()->route('route.name');
()report
تبلغ الدالة عن وجود استثناء باستعمال التابع report
من معالج الاستثناءات:
report($e);
()request
تعيد الدالة نسخة الطلب الحالي أو تحصل على عنصر إدخال:
$request = request();
$value = request('key', $default);
()rescue
تنفّذ الدالة النطاق المغلق الممرّر Closure و تتلقى كل استثناء مطلق عند تنفيذه. تُرسل كل الاستثناءات للتابع report
من معالج الاستثناءات لكن الدالة تكمل العمل:
return rescue(function () {
return $this->method();
});
يمكنك تمرير معامل ثاني للدالة rescue
يكون القيمة الافتراضية التي تعيدها في حال ظهور استثناء عند تنفيذ Closure:
return rescue(function () {
return $this->method();
}, false);
return rescue(function () {
return $this->method();
}, function () {
return $this->failure();
});
()resolve
تحل الدالة الصنف أو الواجهة الممرّرة باستعمال حاوي الخدمات:
$api = resolve('HelpSpot\API');
()response
تنشئ الدالة نسخة جواب أو تحصل على نسخة من منتج الجواب:
return response('Hello World', 200, $headers);
return response()->json(['foo' => 'bar'], 200, $headers);
()retry
تحاول الدالة تنفيذ النداء الممرّر حتى تصل للحد الأقصى المحدد من المحاولات. إذا لم يطلق النداء أي استثناء، تعيد الدالة retry
القيمة المعادة من النداء. إذا أطلق النداء استثناء، تعيد الدالة retry
محاولة تنفيذه. إذا وصلت الدالة للحد الأقصى من المحاولات، تطلق الدالة retry
الاستثناء:
return retry(5, function () {
// المحاولة 5 مرات مع الإنتظار 100 جزء من الثانية بين المحاولات
}, 100);
()session
يمكن استعمال الدالة لاسترداد أو تعيين قيم من الجلسة:
$value = session('key');
يمكنك تعيين قيم بتمرير ثنائي مفتاح \ قيمة للدالة:
session(['chairs' => 7, 'instruments' => 3]);
يعاد مخزن الجلسة (session store) إذا نوديت الدالة دون تمرير أي قيمة:
$value = session()->get('key');
session()->put('key', $value);
()tap
تقبل الدالة معاملين : قيمة عشوائية value$
والنطاق المغلق Closure. تمرّر القيمة للنطاق المغلق Closure ثم تعيدها الدالة tap
. القيمة التي تعيدها Closure غير مهمة:
$user = tap(User::first(), function ($user) {
$user->name = 'taylor';
$user->save();
});
إذا لم تمرّر Closure يمكنك نداء أي تابع مع القيمة value$
. تعيد الدالة دائما value$
مهما أعاد التابع المنادى. على سبيل المثال، التابع update
من Eloquent يعيد عادة رقمًا لكن بإمكاننا إرغام التابع على إعادة النموذج نفسه عبر إضافة التابع update
للدالة tap
:
$user = tap($user)->update([
'name' => $name,
'email' => $email,
]);
()today
تنشئ الدالة نسخة Illuminate\Support\Carbon
للتاريخ الحالي:
$today = today();
()thow_if
تطلق الدالة الاستثناء الممرّر إذا كانت نتيجة العبارة المنطقية الممرّرة true
:
throw_if(! Auth::user()->isAdmin(), AuthorizationException::class);
throw_if(
! Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page'
);
()throw_unless
تطلق الدالة الاستثناء الممرّر إذا كانت نتيجة العبارة المنطقية الممرّرة false
:
throw_unless(Auth::user()->isAdmin(), AuthorizationException::class);
throw_unless(
Auth::user()->isAdmin(),
AuthorizationException::class,
'You are not allowed to access this page'
);
()trait_uses_recursive
تعيد الدالة كل السمات المستعملة من قبل سمة:
$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);
()transform
تنفذ الدالة النطاق المغلق Closure على قيمة ممرّرة إذا لم تكن فارغة وتعيد نتيجة النطاق المغلق:
$callback = function ($value) {
return $value * 2;
};
$result = transform(5, $callback);
// 10
يمكن تمرير قيمة مبدئية أو Closure تعاد حين تكون القيمة الممرّرة فارغة:
$result = transform(null, $callback, 'The value is blank');
// The value is blank
()validator
تنشئ الدالة نسخة validator بالمعامل الممرّر. يمكن استعمال الدالة كبديل عن الواجهة الساكنة Validator لسهولة العمل:
$validator = validator($data, $rules, $messages);
()value
تعيد الدالة القيمة الممرّرة، لكن إذا مرّرت نطاقًا مغلقًا، سينفذ وتعاد نتيجته:
$result = value(true);
// true
$result = value(function () {
return false;
});
// false
()view
تستردّ الدالة نسخة واجهة:
return view('auth.login');
()with
تعيد الدالة القيمة الممرّرة. إذا مرّرت نطاقًا مغلقًا Closure كمعامل ثاني للدالة، سينفذ وتعاد نتيجته:
$callback = function ($value) {
return (is_numeric($value)) ? $value * 2 : 0;
};
$result = with(5, $callback);
// 10
$result = with(null, $callback);
// 0
$result = with(5, null);
// 5