الفرق بين المراجعتين لصفحة: «Laravel/helpers»
رؤيا-بنعطية (نقاش | مساهمات) أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدوال المساعدة في Laravel}}</noinclude> تصنيف:Laravel تصنيف:Laravel Digging deeper' |
رؤيا-بنعطية (نقاش | مساهمات) لا ملخص تعديل |
||
(38 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة) | |||
سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدوال المساعدة في Laravel}}</noinclude> | ==مقدمة== | ||
[[تصنيف:Laravel]] | يتضمن [[Laravel]] عددًا من دوال [[PHP]] المساعدة. تُستعمل العديد من هذه الدوال من قبل [[Laravel]] لكن بامكانك استعمالها في تطبيقك اذا احتجتهم. | ||
[[تصنيف:Laravel Digging deeper]] | ==قائمة التوابع== | ||
===المصفوفات والكائنات=== | |||
====<code>()array_add</code>==== | |||
تضيف الدالة الثنائي مفتاح\قيمة الممرّر لمصفوفة إذا كان المفتاح غير موجود مسبقًا:<syntaxhighlight lang="php"> | |||
$array = array_add(['name' => 'Desk'], 'price', 100); | |||
// ['name' => 'Desk', 'price' => 100] | |||
</syntaxhighlight> | |||
====<code>()array_collapse</code>==== | |||
تحول الدالة مصفوفة مصفوفات لمصفوفة واحدة:<syntaxhighlight lang="php"> | |||
$array = array_collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); | |||
// [1, 2, 3, 4, 5, 6, 7, 8, 9] | |||
</syntaxhighlight> | |||
====<code>()array_divide</code>==== | |||
تعيد الدالة مصفوفتين، واحدة تحتوي المفاتيح وأخرى تحتوي القيم من المصفوفة الممرّرة:<syntaxhighlight lang="php"> | |||
[$keys, $values] = array_divide(['name' => 'Desk']); | |||
// $keys: ['name'] | |||
// $values: ['Desk'] | |||
</syntaxhighlight> | |||
====<code>()array_dot</code>==== | |||
تسطّح الدالة مصفوفة متعددة الأبعاد لمصفوفة ببعد واحد تستعمل رمز النقطة لبيان العمق:<syntaxhighlight lang="php"> | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | |||
$flattened = array_dot($array); | |||
// ['products.desk.price' => 100] | |||
</syntaxhighlight> | |||
====<code>()array_except</code>==== | |||
تحذف الدالة الثنائي مفتاح\قيمة الممرّر من المصفوفة:<syntaxhighlight lang="php"> | |||
$array = ['name' => 'Desk', 'price' => 100]; | |||
$filtered = array_except($array, ['price']); | |||
// ['name' => 'Desk'] | |||
</syntaxhighlight> | |||
====<code>()array_first</code>==== | |||
تعيد الدالة العنصر الأول من المصفوفة الممرّرة الذي يستجيب لشرط صحّة:<syntaxhighlight lang="php"> | |||
$array = [100, 200, 300]; | |||
$first = array_first($array, function ($value, $key) { | |||
return $value >= 150; | |||
}); | |||
// 200 | |||
</syntaxhighlight>يمكن تمرير قيمة افتراضية كمعامل ثالث. تُعاد القيمة الافتراضية في حال لم يستجب أي عنصر لشرط الصحّة:<syntaxhighlight lang="php"> | |||
$first = array_first($array, $callback, $default); | |||
</syntaxhighlight> | |||
====<code>()array_flatten</code>==== | |||
تسطِّح الدالة مصفوفة متعدّدة الأبعاد لمصفوفة ببعد واحد:<syntaxhighlight lang="php"> | |||
$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']]; | |||
$flattened = array_flatten($array); | |||
// ['Joe', 'PHP', 'Ruby'] | |||
</syntaxhighlight> | |||
====<code>()array_forget</code>==== | |||
تحذف الدالة الثنائي مفتاح\قيمة من مصفوفة متداخلة باستعمال رمز" النقطة ":<syntaxhighlight lang="php"> | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | |||
array_forget($array, 'products.desk'); | |||
// ['products' => []] | |||
</syntaxhighlight> | |||
====<code>()array_get</code>==== | |||
تسترجع الدالة قيمة من مصفوفة متداخلة باستعمال رمز "النقطة":<syntaxhighlight lang="php"> | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | |||
$price = array_get($array, 'products.desk.price'); | |||
// 100 | |||
</syntaxhighlight>تقبل الدالة أيضًا قيمة افتراضية تعيدها في حال لم تجد المفتاح الممرّر:<syntaxhighlight lang="php"> | |||
$discount = array_get($array, 'products.desk.discount', 0); | |||
// 0 | |||
</syntaxhighlight> | |||
====<code>()array_has</code>==== | |||
تتثبت الدالة من وجود عنصر أو عناصر ممرّرة في المصفوفة باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | |||
$array = ['product' => ['name' => 'Desk', 'price' => 100]]; | |||
$contains = array_has($array, 'product.name'); | |||
// true | |||
$contains = array_has($array, ['product.price', 'product.discount']); | |||
// false | |||
</syntaxhighlight> | |||
====<code>()array_last</code>==== | |||
تعيد الدالة آخر عنصر يستجيب لشرط الصحّة:<syntaxhighlight lang="php"> | |||
$array = [100, 200, 300, 110]; | |||
$last = array_last($array, function ($value, $key) { | |||
return $value >= 150; | |||
}); | |||
// 300 | |||
</syntaxhighlight>يمكن تمرير قيمة افتراضية كمعامل ثالث تعيدها الدالة في حال لم يستجب أي عنصر لشرط الصحة:<syntaxhighlight lang="php"> | |||
$last = array_last($array, $callback, $default); | |||
</syntaxhighlight> | |||
====<code>()array_only</code>==== | |||
تعبد الدالة فقط الثنائيات الممرّرة من المصفوفة:<syntaxhighlight lang="php"> | |||
$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10]; | |||
$slice = array_only($array, ['name', 'price']); | |||
// ['name' => 'Desk', 'price' => 100] | |||
</syntaxhighlight> | |||
====<code>()array_pluck</code>==== | |||
تستعيد الدالة كل القيم لمفتاح ممرّر من المصفوفة:<syntaxhighlight lang="php"> | |||
$array = [ | |||
['developer' => ['id' => 1, 'name' => 'Taylor']], | |||
['developer' => ['id' => 2, 'name' => 'Abigail']], | |||
$names = array_pluck($array, 'developer.name'); | |||
]; | |||
// ['Taylor', 'Abigail'] | |||
</syntaxhighlight>يمكنك أيضًا تحديد المفاتيح التي تريد لعرضها في النتيجة :<syntaxhighlight lang="php"> | |||
$names = array_pluck($array, 'developer.name', 'developer.id'); | |||
// [1 => 'Taylor', 2 => 'Abigail'] | |||
</syntaxhighlight> | |||
====<code>()array_prepend</code>==== | |||
تضبف الدالة عنصرًا في أول المصفوفة:<syntaxhighlight lang="php"> | |||
$array = ['one', 'two', 'three', 'four']; | |||
$array = array_prepend($array, 'zero'); | |||
// ['zero', 'one', 'two', 'three', 'four'] | |||
</syntaxhighlight>عند الحاجة، بإمكانك تحديد المفتاح الذي يجب استعماله مع القيمة:<syntaxhighlight lang="php"> | |||
$array = ['price' => 100]; | |||
$array = array_prepend($array, 'Desk', 'name'); | |||
// ['name' => 'Desk', 'price' => 100] | |||
</syntaxhighlight> | |||
====<code>()array_pull</code>==== | |||
تعيد الدالة وتحذف ثنائي مفتاح\قيمة من المصفوفة:<syntaxhighlight lang="php"> | |||
$array = ['name' => 'Desk', 'price' => 100]; | |||
$name = array_pull($array, 'name'); | |||
// $name: Desk | |||
// $array: ['price' => 100] | |||
</syntaxhighlight>يمكن تمرير قيمة افتراضية كمعامل ثالث تعيده الدالة في حال عدم وجود المفتاح:<syntaxhighlight lang="php"> | |||
$value = array_pull($array, $key, $default); | |||
</syntaxhighlight> | |||
====<code>()array_random</code>==== | |||
تعيد الدالة قيمة عشوائية من المصفوفة:<syntaxhighlight lang="php"> | |||
$array = [1, 2, 3, 4, 5]; | |||
$random = array_random($array); | |||
// 4 - (اختيرت بعشوائية) | |||
</syntaxhighlight>يمكن أيضًا تحديد عدد العناصر الذي يجب إعادته كمعامل ثاني اختياري.لاحظ أن هذا الخيار سيعيد مصفوفة حتو لو اخترت عنصرًا واحدًا:<syntaxhighlight lang="php"> | |||
$items = array_random($array, 2); | |||
// [2, 5] - (retrieved randomly) | |||
</syntaxhighlight> | |||
====<code>()array_set</code>==== | |||
تعيّن الدالة قيمة في مصفوفة متداخلة باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | |||
$array = ['products' => ['desk' => ['price' => 100]]]; | |||
array_set($array, 'products.desk.price', 200); | |||
// ['products' => ['desk' => ['price' => 200]]] | |||
</syntaxhighlight> | |||
====<code>()array_sort</code>==== | |||
ترتّب الدالة المصفوفة حسب القيم:<syntaxhighlight lang="php"> | |||
$array = ['Desk', 'Table', 'Chair']; | |||
$sorted = array_sort($array); | |||
// ['Chair', 'Desk', 'Table'] | |||
</syntaxhighlight>يمكن أيضًا ترتيب مصفوفة حسب نتائج النطاق المغلق Closure:<syntaxhighlight lang="php"> | |||
$array = [ | |||
['name' => 'Desk'], | |||
['name' => 'Table'], | |||
['name' => 'Chair'], | |||
]; | |||
$sorted = array_values(array_sort($array, function ($value) { | |||
return $value['name']; | |||
})); | |||
/* | |||
[ | |||
['name' => 'Chair'], | |||
['name' => 'Desk'], | |||
['name' => 'Table'], | |||
] | |||
*/ | |||
</syntaxhighlight> | |||
====<code>()array_sort_recursive</code>==== | |||
ترتّب الدالة المصفوفة مرتبة بشكل تكراري باستعمال الدالة <code>sort</code>:<syntaxhighlight lang="php"> | |||
$array = [ | |||
['Roman', 'Taylor', 'Li'], | |||
['PHP', 'Ruby', 'JavaScript'], | |||
]; | |||
$sorted = array_sort_recursive($array); | |||
/* | |||
[ | |||
['Li', 'Roman', 'Taylor'], | |||
['JavaScript', 'PHP', 'Ruby'], | |||
] | |||
*/ | |||
</syntaxhighlight> | |||
====<code>()array_where</code>==== | |||
ترشح الدالة المصفوفة باستعمال النطاق المغلق المعطى Closure:<syntaxhighlight lang="php"> | |||
$array = [100, '200', 300, '400', 500]; | |||
$filtered = array_where($array, function ($value, $key) { | |||
return is_string($value); | |||
}); | |||
// [1 => '200', 3 => '400'] | |||
</syntaxhighlight> | |||
====<code>()array_wrap</code>==== | |||
تغلف الدالة القيمة الممرّرة في مصفوفة. إذا كانت القيمة الممرّرة مصفوفة بالأصل فلن تتغير:<syntaxhighlight lang="php"> | |||
$string = 'Laravel'; | |||
$array = array_wrap($string); | |||
// ['Laravel'] | |||
</syntaxhighlight>إذا كانت القيمة الممرّرة <code>null</code>، تعيد الدالة <code>array_wrap</code> مصفوفة فارغة:<syntaxhighlight lang="php"> | |||
$nothing = null; | |||
$array = array_wrap($nothing); | |||
// [] | |||
</syntaxhighlight> | |||
====<code>()data_fill</code>==== | |||
تضبط الدالة قيمة مفقودة بمصفوفة متداخلة أو بكائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | |||
$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]]] | |||
</syntaxhighlight>تقبل الدالة أيضًا الرمز "*" كمحرف بدل لرمز يملؤه الهدف بما يلائم:<syntaxhighlight lang="php"> | |||
$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], | |||
], | |||
] | |||
</syntaxhighlight> | |||
====<code>()data_get</code>==== | |||
تسترجع الدالة قيمة من مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | |||
$price = data_get($data, 'products.desk.price'); | |||
// 100 | |||
</syntaxhighlight>تقبل الدالة أيضًا قيمة افتراضيّة تعيدها إذا لم تجد المفتاح في المصفوفة:<syntaxhighlight lang="php"> | |||
$discount = data_get($data, 'products.desk.discount', 0); | |||
// 0 | |||
</syntaxhighlight> | |||
====<code>()data_set</code>==== | |||
تضبط الدالة قيمة في مصفوفة متداخلة أو كائن باستعمال الرمز "نقطة":<syntaxhighlight lang="php"> | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | |||
data_set($data, 'products.desk.price', 200); | |||
// ['products' => ['desk' => ['price' => 200]]] | |||
</syntaxhighlight>تقبل الدالة <code>data_set</code> أيضًا محرفات بديلة وتعوضها بما يلائم:<syntaxhighlight lang="php"> | |||
$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], | |||
], | |||
] | |||
</syntaxhighlight>في العادة، تعاد كتابة القيم. إذا أردت تعيين قيمة غير موجودة، يمكنك تمرير القيمة <code>false</code> كمعامل ثالث:<syntaxhighlight lang="php"> | |||
$data = ['products' => ['desk' => ['price' => 100]]]; | |||
data_set($data, 'products.desk.price', 200, false); | |||
// ['products' => ['desk' => ['price' => 100]]] | |||
</syntaxhighlight> | |||
====<code>()head</code>==== | |||
تعيد الدالة العنصر الأول من مصفوفة ممرّرة:<syntaxhighlight lang="php"> | |||
$array = [100, 200, 300]; | |||
$first = head($array); | |||
// 100 | |||
</syntaxhighlight> | |||
====<code>()last</code>==== | |||
تعيد الدالة العنصر الأخير من المصفوفة الممرّرة:<syntaxhighlight lang="php"> | |||
$array = [100, 200, 300]; | |||
$last = last($array); | |||
// 300 | |||
</syntaxhighlight> | |||
===المسارات=== | |||
====<code>()app_path</code>==== | |||
تعيد الدالة المسار الكامل للدليل app. يمكن أيضًا استعمال الدالة لإنشاء مسار لملف موجود في دليل التطبيق:<syntaxhighlight lang="php"> | |||
$path = app_path(); | |||
$path = app_path('Http/Controllers/Controller.php'); | |||
</syntaxhighlight> | |||
====<code>()base_path</code>==== | |||
تعيد الدالة مسارا لجذر التطبيق. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف تابع لدليل جذر التطبيق:<syntaxhighlight lang="php"> | |||
$path = base_path(); | |||
$path = base_path('vendor/bin'); | |||
</syntaxhighlight> | |||
====<code>()config_path</code>==== | |||
تعيد الدالة المسار المؤهل بشكل كامل للدليل config. يمكنك استعمال الدالة لإنشاء مسار مؤهل بشكل كامل لملف معين في دليل الضبط:<syntaxhighlight lang="php"> | |||
$path = config_path(); | |||
$path = config_path('app.php'); | |||
</syntaxhighlight> | |||
====<code>()data_path</code>==== | |||
تعيد الدالة مسارا مؤهلا للدليل database. يمكن أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في دليل قاعدة البيانات:<syntaxhighlight lang="php"> | |||
$path = database_path(); | |||
$path = database_path('factories/UserFactory.php'); | |||
</syntaxhighlight> | |||
====<code>()mix</code>==== | |||
تعيد الدالة مسارا للملف Mix:<syntaxhighlight lang="php"> | |||
$path = mix('css/app.css'); | |||
</syntaxhighlight> | |||
====<code>()public_path</code>==== | |||
تعيد الدالة مسارًا مؤهلا للدليل public. يمكنك أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملفات في الدليل public:<syntaxhighlight lang="php"> | |||
$path = public_path(); | |||
$path = public_path('css/app.css'); | |||
</syntaxhighlight> | |||
====<code>()resource_path</code>==== | |||
تعيد الدالة مسارًا مؤهلا للدليل resources. يمكنك أيضًا استعمال الدالة لإنشاء مسار مؤهل لملف في الدليل resources:<syntaxhighlight lang="php"> | |||
$path = resource_path(); | |||
$path = resource_path('assets/sass/app.scss'); | |||
</syntaxhighlight> | |||
====<code>()storage_path</code>==== | |||
تعيد الدالة مسارًا مؤهلا للدليل storage. يمكن أيضًا استعمال الدالة لإنشاء مسارات مؤهلة لملف في الدليل storage:<syntaxhighlight lang="php"> | |||
$path = storage_path(); | |||
$path = storage_path('app/file.txt'); | |||
</syntaxhighlight> | |||
===السلاسل النصية=== | |||
====<code>()__</code>==== | |||
تترجم الدالة سلسلة الترجمة أو مفتاح الترجمة باستعمال ملفات الترجمة في التطبيق:<syntaxhighlight lang="php"> | |||
echo __('Welcome to our application'); | |||
echo __('messages.welcome'); | |||
</syntaxhighlight>إذا لم توجد سلسلة أو مفتاح الترجمة، تعيد الدالة القيمة الممرّرة. لذا باستعمال المثال السابق، تعيد الدالة "message.welcome" في حال عدم وجود المفتاح. | |||
====<code>()camel_case</code>==== | |||
تحوّل الدالة السلسلة لسلسلة منسقةً بحالة سِنَام الجمل:<syntaxhighlight lang="php"> | |||
$converted = camel_case('foo_bar'); | |||
// fooBar | |||
</syntaxhighlight> | |||
====<code>()class_basename</code>==== | |||
تعيد الدالة اسم الصنف للصنف الممرّر بعد حذف دليله:<syntaxhighlight lang="php"> | |||
$class = class_basename('Foo\Bar\Baz'); | |||
// Baz | |||
</syntaxhighlight> | |||
====<code>()e</code>==== | |||
تنفذ الدالة الدالة <code>[[PHP/htmlspecialchars|htmlspecialchars]]</code> من [[PHP]] مع الخيار <code>double_encode</code> على القيمة <code>true</code> افتراضيًّا:<syntaxhighlight lang="php"> | |||
echo e('<html>foo</html>'); | |||
// <html>foo</html> | |||
</syntaxhighlight> | |||
====<code>()ends_with</code>==== | |||
تحدّد الدالة إذا كانت السلسلة تنتهي بالقيمة الممرّرة:<syntaxhighlight lang="php"> | |||
$result = ends_with('This is my name', 'name'); | |||
// true | |||
</syntaxhighlight> | |||
====<code>()kebab_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة kebab-case:<syntaxhighlight lang="php"> | |||
$converted = kebab_case('fooBar'); | |||
// foo-bar | |||
</syntaxhighlight> | |||
====<code>()preg_replace_array</code>==== | |||
تعوّض الدالة الأسلوب الممرّر في السلسلة باستعمال مصفوفة:<syntaxhighlight lang="php"> | |||
$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 | |||
</syntaxhighlight> | |||
====<code>()snake_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة snake_case:<syntaxhighlight lang="php"> | |||
$converted = snake_case('fooBar'); | |||
// foo_bar | |||
</syntaxhighlight> | |||
====<code>()starts_with</code>==== | |||
تحدد الدالة إذا كان السلسلة الممرّرة تبدأ بالقيمة الممررّة:<syntaxhighlight lang="php"> | |||
$result = starts_with('This is my name', 'This'); | |||
// true | |||
</syntaxhighlight> | |||
====<code>()str_after</code>==== | |||
تعيد الدالة كل شيء بعد السلسلة الممررة:<syntaxhighlight lang="php"> | |||
$slice = str_after('This is my name', 'This is'); | |||
// ' my name' | |||
</syntaxhighlight> | |||
====<code>()str_before</code>==== | |||
تعيد الدالة كل شيء قبل السلسلة الممررة:<syntaxhighlight lang="php"> | |||
$slice = str_before('This is my name', 'my name'); | |||
// 'This is ' | |||
</syntaxhighlight> | |||
====<code>()str_contains</code>==== | |||
تحدد الدالة إذا كانت السلسلة تحتوي القيمة الممرّرة (مع احترام الحروف الكبيرة والصغيرة):<syntaxhighlight lang="php"> | |||
$contains = str_contains('This is my name', 'my'); | |||
// true | |||
</syntaxhighlight>يمكنك تمرير مصفوفة من القيم لتحدد إذا كانت موجودة في السلسلة:<syntaxhighlight lang="php"> | |||
$contains = str_contains('This is my name', ['my', 'foo']); | |||
// true | |||
</syntaxhighlight> | |||
====<code>()str_finish</code>==== | |||
تضيف الدالة نسخةً واحدةً من قيمة ممرّرة لسلسلة إذا لم تكن السلسلة تنتهي بتلك القيمة:<syntaxhighlight lang="php"> | |||
$adjusted = str_finish('this/string', '/'); | |||
// this/string/ | |||
$adjusted = str_finish('this/string/', '/'); | |||
// this/string/ | |||
</syntaxhighlight> | |||
====<code>()str_is</code>==== | |||
تحدد الدالة إذا كانت السلسلة مطابقة لأسلوب ممرّر. تُستعمل الرموز "*" للدلالة على محرف بدل:<syntaxhighlight lang="php"> | |||
$matches = str_is('foo*', 'foobar'); | |||
// true | |||
$matches = str_is('baz*', 'foobar'); | |||
// false | |||
</syntaxhighlight> | |||
====<code>()str_limit</code>==== | |||
تقطع الدالة السلسلة حسب الطول المحدد:<syntaxhighlight lang="php"> | |||
cated = str_limit('The quick brown fox jumps over the lazy dog', 20); | |||
// The quick brown fox... | |||
</syntaxhighlight>يمكنك تمرير معامل ثالث لتغيير السلسلة التي تضاف في الآخر:<syntaxhighlight lang="php"> | |||
$truncated = str_limit('The quick brown fox jumps over the lazy dog', 20, ' (...)'); | |||
// The quick brown fox (...) | |||
</syntaxhighlight> | |||
====<code>()Str::orderedUuid</code>==== | |||
تنشئ الدالة معرف فريد عالمي لبصمة وقت يمكن تخزينه في قاعدة بيانات:<syntaxhighlight lang="php"> | |||
use Illuminate\Support\Str; | |||
return (string) Str::orderedUuid(); | |||
</syntaxhighlight> | |||
====<code>()str_plural</code>==== | |||
تحول الدالة السلسلة لصيغة الجمع. تدعم هذه الدالة حاليا اللغة الإنقليزية فقط:<syntaxhighlight lang="php"> | |||
$plural = str_plural('car'); | |||
// cars | |||
$plural = str_plural('child'); | |||
// children | |||
</syntaxhighlight>يمكنك تمرير معامل ثاني للدالة لاسترجاع صيغة المفرد أو الجمع للسلسلة:<syntaxhighlight lang="php"> | |||
$plural = str_plural('child', 2); | |||
// children | |||
$plural = str_plural('child', 1); | |||
// child | |||
</syntaxhighlight> | |||
====<code>()str_random</code>==== | |||
تنشئ الدالة سلسلة نصية عشوائية بالطول المحدد. تستخدم هذه الدالة الدالة [[php/random bytes|random_bytes]] من [[PHP]]:<syntaxhighlight lang="php"> | |||
$random = str_random(40); | |||
</syntaxhighlight> | |||
====<code>()str_replace_array</code>==== | |||
تستبدل الدالة القيمة الممرّرة من السلسلة النصية باستخدام مصفوفة:<syntaxhighlight lang="php"> | |||
$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 | |||
</syntaxhighlight> | |||
====<code>()str_replace_first</code>==== | |||
تستبدل الدالة الظهور الأول للقيمة الممرّرة بسلسة نصية:<syntaxhighlight lang="php"> | |||
$replaced = str_replace_first('the', 'a', 'the 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'); | |||
// 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'); | |||
// 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', '-'); | |||
// laravel-5-framework | |||
</syntaxhighlight> | |||
====<code>()str_start</code>==== | |||
تضيف الدالة نسخة واحدة من القيمة الممرّرة في أول السلسلة إذا لم تكن موجودة:<syntaxhighlight lang="php"> | |||
$adjusted = str_start('this/string', '/'); | |||
// /this/string | |||
$adjusted = str_start('/this/string', '/'); | |||
// /this/string | |||
</syntaxhighlight> | |||
====<code>()studly_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة StudlyCase:<syntaxhighlight lang="php"> | |||
$converted = studly_case('foo_bar'); | |||
// FooBar | |||
</syntaxhighlight> | |||
====<code>()title_case</code>==== | |||
تحول الدالة السلسلة الممرّرة منسقةً بحالة Title Case:<syntaxhighlight lang="php"> | |||
$converted = title_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'); | |||
</syntaxhighlight>إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة message.welcome في حال لم يكن المفتاح موجودًا في ملف التوطين. | |||
====<code>()trans_choice</code>==== | |||
تترجم الدالة السلسلة الممرّرة مع مع تصريف الكلمة حسب العدد المُمرَّر إلى الدالة (inflection):<syntaxhighlight lang="php"> | |||
echo trans_choice('messages.notifications', $unreadCount); | |||
</syntaxhighlight>إذا لم يكن مفتاح الترجمة موجودًا، تعيد الدالة المفتاح الممرّر. لذا، في المثال السابق ستعيد الدالة welcome.notifications في حال لم يكن المفتاح موجودًا. | |||
====<code>()Str::uuid</code>==== | |||
تنشئ الدالة المعرف الفريد العالمي UUID (الإصدار 4):<syntaxhighlight lang="php"> | |||
use Illuminate\Support\Str; | |||
return (string) Str::uuid(); | |||
</syntaxhighlight> | |||
===العناوين URLs=== | |||
====<code>()action</code>==== | |||
تنشئ الدالة عنوان URL لعمل وحدة التحكم. لا تحتاج لتمرير مجال الأسماء الكامل لوحدة التحكم. بدلًا من ذلك، مرّر اسم صنف وحدة التحكم نسبة لمجال الأسماء :<syntaxhighlight lang="php"> | |||
App\Http\Controllers: | |||
$url = action('HomeController@index'); | |||
$url = action([HomeController::class, 'index']); | |||
</syntaxhighlight>إذا كان التابع يقبل معاملات مسارات، يمكنك تمريرها كمعامل ثاني للدالة:<syntaxhighlight lang="php"> | |||
$url = action('UserController@profile', ['id' => 1]); | |||
</syntaxhighlight> | |||
====<code>()asset</code>==== | |||
تولّد الدالة عنوان URL للأصول باستخدام مخطط الطلب ( HTTP أو HTTPS):<syntaxhighlight lang="php"> | |||
$url = asset('img/photo.jpg'); | |||
</syntaxhighlight> | |||
====<code>()secure_asset</code>==== | |||
تولّد الدالة عنوان URL لأحد الأصول باستخدام HTTPS:<syntaxhighlight lang="php"> | |||
$url = secure_asset('img/photo.jpg'); | |||
</syntaxhighlight> | |||
====<code>()route</code>==== | |||
تنشئ الدالة عنوان URL للمسار المسمى:<syntaxhighlight lang="php"> | |||
$url = route('routeName'); | |||
</syntaxhighlight>إذا كان المسار يقبل معاملات، يمكنك تمريرها كمعامل ثاني للتابع:<syntaxhighlight lang="php"> | |||
$url = route('routeName', ['id' => 1]); | |||
</syntaxhighlight>في العادة تنشئ الدالة <code>route</code> عنوان URL مطلق، إذا أردت عنوانا نسبيا، مرّر <code>false</code> كمعامل ثالث:<syntaxhighlight lang="php"> | |||
$url = route('routeName', ['id' => 1], false); | |||
</syntaxhighlight> | |||
====<code>()secure_url</code>==== | |||
تنشئ الدالة عنوان HTTPS URL مؤهل بشكل تام للمسار الممرّر:<syntaxhighlight lang="php"> | |||
$url = secure_url('user/profile'); | |||
$url = secure_url('user/profile', [1]); | |||
</syntaxhighlight> | |||
====<code>()url</code>==== | |||
تنشئ الدالة عنوان URL مؤهل بشكل تام للمسار الممرّر:<syntaxhighlight lang="php"> | |||
$url = url('user/profile'); | |||
$url = url('user/profile', [1]); | |||
</syntaxhighlight>إذا لم يُوفّر أي مسار، تعيد الدالة <code>url</code> نسخة <code>Illuminate\Routing\UrlGenerator</code>:<syntaxhighlight lang="php"> | |||
$current = url()->current(); | |||
$full = url()->full(); | |||
$previous = url()->previous(); | |||
</syntaxhighlight> | |||
===متنوعات=== | |||
====<code>()abort</code>==== | |||
تطلق الدالة استثناء HTTP يظهر بمعالج الإستثناءات:<syntaxhighlight lang="php"> | |||
abort(403); | |||
</syntaxhighlight>يمكنك أيضًا توفير نص جواب الاستثناء والأجوبة المخصصة للترويسات:<syntaxhighlight lang="php"> | |||
abort(403, 'Unauthorized.', $headers); | |||
</syntaxhighlight> | |||
====<code>()abort_if</code>==== | |||
تطلق الدالة استثناء HTTP إذا كانت نتيجة عبارة منطقية ممرّرة هي القيمة <code>true</code>:<syntaxhighlight lang="php"> | |||
abort_if(! Auth::user()->isAdmin(), 403); | |||
</syntaxhighlight>مثل الدالة <code>abort</code>، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع. | |||
====<code>()abort_unless</code>==== | |||
تطلق الدالة استثناء HTTP إذا كان نتيجة عبارة منطقية ممرّرة هي القيمة <code>false</code>:<syntaxhighlight lang="php"> | |||
abort_unless(Auth::user()->isAdmin(), 403); | |||
</syntaxhighlight>مثل الدالة <code>abort</code>، يمكنك توفير نص جواب الاستثناء كمعامل ثالث و مصفوفة الأجوبة المخصصة للترويسات كمعامل رابع. | |||
====<code>()app</code>==== | |||
تعيد الدالة نسخة حاوي الخدمات:<syntaxhighlight lang="php"> | |||
$container = app(); | |||
</syntaxhighlight>يمكنك تمرير اسم صنف أو واجهة لتنفيذه من الحاوي:<syntaxhighlight lang="php"> | |||
$api = app('HelpSpot\API'); | |||
</syntaxhighlight> | |||
====<code>()auth</code>==== | |||
تعيد الدالة نسخة مُصادق (authentificator). يمكنك استعمال الدالة بدل الواجهة الساكنة Auth لسهولة العمل:<syntaxhighlight lang="php"> | |||
$user = auth()->user(); | |||
</syntaxhighlight>عند الحاجة، يمكنك تحديد أي نسخة حارس تريد استعمالها:<syntaxhighlight lang="php"> | |||
$user = auth('admin')->user(); | |||
</syntaxhighlight> | |||
====<code>()back</code>==== | |||
تنشئ الدالة جواب [[HTML]] لإعادة التوجيه للمكان السابق للمستخدم:<syntaxhighlight lang="php"> | |||
return back($status = 302, $headers = [], $fallback = false); | |||
return back(); | |||
</syntaxhighlight> | |||
====<code>()bcrypt</code>==== | |||
تجزّء الدالة القيمة المرّرة باستعمال Bcrypt. يمكنك استعمال الدالة كبديل عن الواجهة الساكنة Hash:<syntaxhighlight lang="php"> | |||
$password = bcrypt('my-secret-password'); | |||
</syntaxhighlight> | |||
====<code>()broadcast</code>==== | |||
تبث الدالة الحدث المرّر للمنصتات:<syntaxhighlight lang="php"> | |||
broadcast(new UserRegistered($user)); | |||
</syntaxhighlight> | |||
====<code>()blank</code>==== | |||
تتثبت الدالة من إذا كانت القيمة الممرّرة فارغة:<syntaxhighlight lang="php"> | |||
blank(); | |||
blank(' '); | |||
blank(null); | |||
blank(collect()); | |||
// true | |||
blank(0); | |||
blank(true); | |||
blank(false); | |||
// false | |||
</syntaxhighlight>لعكس وظيفة الدالة <code>blank</code>، اطلع على الدالة <code>filled</code>. | |||
====<code>()cache</code>==== | |||
تُستعمل الدالة لاسترجاع قيمة من التخزين المؤقت. إذا لم يكن المفتاح المرّر موجودًا، تعيد الدالة <code>cache</code> قيمة افتراضية:<syntaxhighlight lang="php"> | |||
$value = cache('key'); | |||
$value = cache('key', 'default'); | |||
</syntaxhighlight>يمكنك إضافة عناصر للتخزين المؤقت عبر تمرير ثنائي مفتاح \ قيمة للدالة <code>cache</code>. يجب عليك أيضًا تمرير عدد الدقائق أو المدة التي تبقى فيها القيمة صالحة في التخزين:<syntaxhighlight lang="php"> | |||
cache(['key' => 'value'], 5); | |||
cache(['key' => 'value'], now()->addSeconds(10)); | |||
</syntaxhighlight> | |||
====<code>()class_uses_recursive</code>==== | |||
تعيد الدالة كل السمات (traits) التي يستعملها الصنف بما في ذلك السمات التي تستعملها الأصناف الآباء:<syntaxhighlight lang="php"> | |||
$traits = class_uses_recursive(App\User::class); | |||
</syntaxhighlight> | |||
====<code>()collect</code>==== | |||
تنشئ لدالة نسخة مجموعة من القيم الممرّرة:<syntaxhighlight lang="php"> | |||
$collection = collect(['taylor', 'abigail']); | |||
</syntaxhighlight> | |||
====<code>()config</code>==== | |||
تسترجع الدالة قيمة متغير ضبط. يمكن الوصول إلى القيمة باستعمال صياغة "النقاط" التي تتضمّن اسم الملف و الخيار الذي تريد الوصول إليه. يمكن تحديد قيمة افتراضية تعيدها الدالة <code>config</code> إذا كان خيار الضبط غير موجود:<syntaxhighlight lang="php"> | |||
$value = config('app.timezone'); | |||
$value = config('app.timezone', $default); | |||
</syntaxhighlight>يمكنك تعيين متغيرات ضبط وقت التشغيل عبر تمرير ثنائي مفتاح \ قيمة:<syntaxhighlight lang="php"> | |||
config(['app.debug' => true]); | |||
</syntaxhighlight> | |||
====<code>()cookie</code>==== | |||
تنشئ الدالة نسخة cookie جديدة:<syntaxhighlight lang="php"> | |||
$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(); | |||
</syntaxhighlight> | |||
====<code>()dd</code>==== | |||
تُفرغ الدالة المتغيّر الممرّر وتنهي تنفيذ السكريبت:<syntaxhighlight lang="php"> | |||
dd($value); | |||
dd($value1, $value2, $value3, ...); | |||
</syntaxhighlight>إذا لم ترد إيقاف السكريبت، استخدم الدالة <code>dump</code>. | |||
====<code>()decrypt</code>==== | |||
تفك الدالة تشفير القيمة الممرّرة باستعمال مشفّر Laravel:<syntaxhighlight lang="php"> | |||
$decrypted = decrypt($encrypted_value); | |||
</syntaxhighlight> | |||
====<code>()dispatch</code>==== | |||
تُرسل الدالة المهمة الممرّرة للطابور:<syntaxhighlight lang="php"> | |||
dispatch(new App\Jobs\SendEmails); | |||
</syntaxhighlight> | |||
====<code>()dispatch_now</code>==== | |||
تنفذ الدالة المهمة الممرّرة وتعيد قيمة التابع <code>handle</code>:<syntaxhighlight lang="php"> | |||
$result = dispatch_now(new App\Jobs\SendEmails); | |||
</syntaxhighlight> | |||
====<code>()dump</code>==== | |||
تُفرغ الدالة المتغير الممرّر:<syntaxhighlight lang="php"> | |||
dump($value); | |||
dump($value1, $value2, $value3, ...); | |||
</syntaxhighlight>إذا أردت إيقاف التنفيذ بعد التفريغ استعمل الدالة <code>dd</code>. | |||
ملاحظة : يمكنك استعمال الأمر <code>dump-server</code> لتلقي كل نداءات التفريغ وعرضهم في شاشة سطر الأوامر بدل المتصفح. | |||
====<code>()encrypt</code>==== | |||
تشفّر الدالة القيمة الممرّرة باستعمال مشفّر Laravel:<syntaxhighlight lang="php"> | |||
$encrypted = encrypt($unencrypted_value); | |||
</syntaxhighlight> | |||
====<code>()env</code>==== | |||
تستردّ الدالة متغيّرات البيئة أو تعيد قيمة افتراضية:<syntaxhighlight lang="php"> | |||
$env = env('APP_ENV'); | |||
// تعيد production إذا كانت المتغيرات غير معدّة | |||
$env = env('APP_ENV', 'production'); | |||
</syntaxhighlight> | |||
====<code>()event</code>==== | |||
تطلق الدالة الأحداث للمنصتات:<syntaxhighlight lang="php"> | |||
event(new UserRegistered($user)); | |||
</syntaxhighlight> | |||
====<code>()factory</code>==== | |||
تنشئ الدالة منشئ نموذج منتج (model factory builder) للصنف والاسم والكمية المرّرة. يمكن استعمالها في الاختبار و في تعبئة قاعدة البيانات:<syntaxhighlight lang="php"> | |||
$user = factory(App\User::class)->make(); | |||
</syntaxhighlight> | |||
====<code>()filled</code>==== | |||
تعيد الدالة قيمة منطقية حول القيمة الممرّرة إن هي غير فارغة أم لا:<syntaxhighlight lang="php"> | |||
filled(0); | |||
filled(true); | |||
filled(false); | |||
// true | |||
filled(); | |||
filled(' '); | |||
filled(null); | |||
filled(collect()); | |||
// false | |||
</syntaxhighlight>لعكس وظيفة الدالة، استعمل الدالة <code>blank</code>. | |||
====<code>()info</code>==== | |||
تكتب الدالة معلومات في ملف log:<syntaxhighlight lang="php"> | |||
info('Some helpful information!'); | |||
</syntaxhighlight>يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:<syntaxhighlight lang="php"> | |||
info('User login attempt failed.', ['id' => $user->id]); | |||
</syntaxhighlight> | |||
====<code>()logger</code>==== | |||
تُستعمل الدالة لكتابة رسائل في ملف الضبط في مستوى debug:<syntaxhighlight lang="php"> | |||
logger('Debug message'); | |||
</syntaxhighlight>يمكن أيضًا تمرير مصفوفة من البيانات النصيّة:<syntaxhighlight lang="php"> | |||
logger('User has logged in.', ['id' => $user->id]); | |||
</syntaxhighlight>تعيد الدالة نسخة <code>logger</code> إذا لم تمرّر معاملات:<syntaxhighlight lang="php"> | |||
logger()->error('You are not allowed here.'); | |||
</syntaxhighlight> | |||
====<code>()method_field</code>==== | |||
تنشئ الدالة حقل كتابة مخفي يحتوي قيمة طريقة HTTP في الاستمارة. مثلًا، باستعمال صياغة [[Laravel/blade|Blade]]:<syntaxhighlight lang="php"> | |||
<form method="POST"> | |||
{{ method_field('DELETE') }} | |||
</form> | |||
</syntaxhighlight> | |||
====<code>()now</code>==== | |||
تنشئ الدالة نسخة <code>Illuminate\Support\Carbon</code> للوقت الحالي:<syntaxhighlight lang="php"> | |||
$now = now(); | |||
</syntaxhighlight> | |||
====<code>()old</code>==== | |||
تسترجع الدالة قيمة قديمة حُذفت من الجلسة:<syntaxhighlight lang="php"> | |||
$value = old('value'); | |||
$value = old('value', 'default'); | |||
</syntaxhighlight> | |||
====<code>()optional</code>==== | |||
تقبل الدالة معاملا وتسمح لك بالوصول إلى خصائصه، توابعه، أو كائناته . سيعيد الطلب القيمة <code>null</code> بدل إحداث خطأ إذا كانت القيمة الممرّرة <code>null</code>:<syntaxhighlight lang="php"> | |||
return optional($user->address)->street; | |||
{!! old('name', optional($user)->name) !!} | |||
</syntaxhighlight>تقبل الدالة أيضًا نداء Closure كمعامل ثاني. ينفَّذ المعامل الثاني إذا كانت قيمة المعامل الأول مخالفة ل<code>null</code>:<syntaxhighlight lang="php"> | |||
return optional(User::find($id), function ($user) { | |||
return TwitterApi::findUser($user->twitter_id); | |||
}); | |||
</syntaxhighlight> | |||
====<code>()policy</code>==== | |||
تستردّ الدالة نسخة policy لصنف ممرّر:<syntaxhighlight lang="php"> | |||
$policy = policy(App\User::class); | |||
</syntaxhighlight> | |||
====<code>()redirect</code>==== | |||
تعيد الدالة جواب HTTP لإعادة التوجيه أو تعيد نسخة الموجّه إذا نوديت دون معامل:<syntaxhighlight lang="php"> | |||
return redirect($to = null, $status = 302, $headers = [], $secure = null); | |||
return redirect('/home'); | |||
return redirect()->route('route.name'); | |||
</syntaxhighlight> | |||
==== <code>()report</code> ==== | |||
تبلغ الدالة عن وجود استثناء باستعمال التابع <code>report</code> من معالج الاستثناءات:<syntaxhighlight lang="php"> | |||
report($e); | |||
</syntaxhighlight> | |||
==== <code>()request</code> ==== | |||
تعيد الدالة نسخة الطلب الحالي أو تحصل على عنصر إدخال:<syntaxhighlight lang="php"> | |||
$request = request(); | |||
$value = request('key', $default); | |||
</syntaxhighlight> | |||
==== <code>()rescue</code> ==== | |||
تنفّذ الدالة النطاق المغلق الممرّر Closure و تتلقى كل استثناء مطلق عند تنفيذه. تُرسل كل الاستثناءات للتابع <code>report</code> من معالج الاستثناءات لكن الدالة تكمل العمل:<syntaxhighlight lang="php"> | |||
return rescue(function () { | |||
return $this->method(); | |||
}); | |||
</syntaxhighlight>يمكنك تمرير معامل ثاني للدالة <code>rescue</code> يكون القيمة الافتراضية التي تعيدها في حال ظهور استثناء عند تنفيذ Closure:<syntaxhighlight lang="php"> | |||
return rescue(function () { | |||
return $this->method(); | |||
}, false); | |||
return rescue(function () { | |||
return $this->method(); | |||
}, function () { | |||
return $this->failure(); | |||
}); | |||
</syntaxhighlight> | |||
==== <code>()resolve</code> ==== | |||
تحل الدالة الصنف أو الواجهة الممرّرة باستعمال حاوي الخدمات:<syntaxhighlight lang="php"> | |||
$api = resolve('HelpSpot\API'); | |||
</syntaxhighlight> | |||
==== <code>()response</code> ==== | |||
تنشئ الدالة نسخة جواب أو تحصل على نسخة من منتج الجواب:<syntaxhighlight lang="php"> | |||
return response('Hello World', 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 () { | |||
// المحاولة 5 مرات مع الإنتظار 100 جزء من الثانية بين المحاولات | |||
}, 100); | |||
</syntaxhighlight> | |||
==== <code>()session</code> ==== | |||
يمكن استعمال الدالة لاسترداد أو تعيين قيم من الجلسة:<syntaxhighlight lang="php"> | |||
$value = session('key'); | |||
</syntaxhighlight>يمكنك تعيين قيم بتمرير ثنائي مفتاح \ قيمة للدالة:<syntaxhighlight lang="php"> | |||
session(['chairs' => 7, 'instruments' => 3]); | |||
</syntaxhighlight>يعاد مخزن الجلسة (session store) إذا نوديت الدالة دون تمرير أي قيمة:<syntaxhighlight lang="php"> | |||
$value = session()->get('key'); | |||
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->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([ | |||
'name' => $name, | |||
'email' => $email, | |||
]); | |||
</syntaxhighlight> | |||
==== <code>()today</code> ==== | |||
تنشئ الدالة نسخة <code>Illuminate\Support\Carbon</code> للتاريخ الحالي:<syntaxhighlight lang="php"> | |||
$today = today(); | |||
</syntaxhighlight> | |||
==== <code>()thow_if</code> ==== | |||
تطلق الدالة الاستثناء الممرّر إذا كانت نتيجة العبارة المنطقية الممرّرة <code>true</code>:<syntaxhighlight lang="php"> | |||
throw_if(! Auth::user()->isAdmin(), AuthorizationException::class); | |||
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, | |||
'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); | |||
</syntaxhighlight> | |||
==== <code>()transform</code> ==== | |||
تنفذ الدالة النطاق المغلق Closure على قيمة ممرّرة إذا لم تكن فارغة وتعيد نتيجة النطاق المغلق:<syntaxhighlight lang="php"> | |||
$callback = function ($value) { | |||
return $value * 2; | |||
}; | |||
$result = transform(5, $callback); | |||
// 10 | |||
</syntaxhighlight>يمكن تمرير قيمة مبدئية أو Closure تعاد حين تكون القيمة الممرّرة فارغة:<syntaxhighlight lang="php"> | |||
$result = transform(null, $callback, 'The value is blank'); | |||
// The value is blank | |||
</syntaxhighlight> | |||
==== <code>()validator</code> ==== | |||
تنشئ الدالة نسخة validator بالمعامل الممرّر. يمكن استعمال الدالة كبديل عن الواجهة الساكنة Validator لسهولة العمل:<syntaxhighlight lang="php"> | |||
$validator = validator($data, $rules, $messages); | |||
</syntaxhighlight> | |||
==== <code>()value</code> ==== | |||
تعيد الدالة القيمة الممرّرة، لكن إذا مرّرت نطاقًا مغلقًا، سينفذ وتعاد نتيجته:<syntaxhighlight lang="php"> | |||
$result = value(true); | |||
// true | |||
$result = value(function () { | |||
return false; | |||
}); | |||
// false | |||
</syntaxhighlight> | |||
==== <code>()view</code> ==== | |||
تستردّ الدالة نسخة واجهة:<syntaxhighlight lang="php"> | |||
return view('auth.login'); | |||
</syntaxhighlight> | |||
==== <code>()with</code> ==== | |||
تعيد الدالة القيمة الممرّرة. إذا مرّرت نطاقًا مغلقًا Closure كمعامل ثاني للدالة، سينفذ وتعاد نتيجته:<syntaxhighlight lang="php"> | |||
$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 | |||
</syntaxhighlight> | |||
== مصادر == | |||
* [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