یاوران
معرفی
لاراول شامل انواع مختلفی از توابع جهانی "کمک کننده" PHP است. بسیاری از این توابع توسط خود چارچوب استفاده می شود. با این حال، شما آزاد هستید که از آنها در برنامه های کاربردی خود استفاده کنید اگر آنها را راحت می دانید.
روش های موجود
آرایه ها و اشیاء
Arr:: قابل دسترسی Arr::افزودن Arr:: فرو ریختن Arr::crossJoin Arr:: تقسیم Arr::dot Arr::به جز Arr::وجود دارد آر::اول Arr:: مسطح کردن آر::فراموش کن Arr:: دریافت Arr:: دارد Arr::hasAny Arr::isAssoc Arr::isList Arr::پیوستن Arr::keyBy آر::آخرین Arr:: نقشه Arr::فقط Arr:: چیدن Arr::prepend Arr::prependKeysWith آر::کشیدن Arr::پرس و جو Arr:: تصادفی Arr:: مجموعه Arr:: مخلوط کردن Arr:: مرتب سازی Arr:: sortDesc Arr::sortRecursive Arr::toCssClasses Arr:: unot آر:: کجا Arr::whereNotNull Arr:: wrap data_fill data_get داده_مجموعه سر آخر
راه ها
رشته های
__ class_basename ه preg_replace_array خ::بعد Str::afterLast Str::ascii خیابان::قبل از Str::beforeLast خیابان::بین Str::betweenFirst خ::شتر خ::حاوی Str:: حاوی همه Str::endsWith Str::گزیده خ::پایان Str::headline Str::inlineMarkdown Str::is Str::isAscii Str::isJson Str::isUlid Str::isUuid خ::کباب Str::lcfirst Str:: طول Str::Limit Str:: پایین تر Str::markdown خیابان::ماسک Str::orderedUuid Str::padBoth Str::padLeft Str::padRight Str:: جمع Str::pluralStudly خیابان::تصادفی Str::حذف خیابان:: جایگزین Str::replaceArray Str::replaceFirst Str::replaceLast Str:: معکوس خ::مفرد Str::slug خ::مار Str::squish خیابان::شروع Str:: startsWith Str:: مطالعه Str::substr Str::substrCount Str::substrReplace خیابان::مبادله Str::title Str::toHtmlString Str::ucfirst Str::ucsplit خیابان::بالا Str::ulid Str::uuid Str::wordCount Str::words خ ترانس trans_choice
رشته های روان
بعد از afterLast ضمیمه آسکی نام پایه قبل از یکی قبل از اخر بین بین اول شتر classBasename شامل شامل همه dirname به پایان می رسد با گزیده دقیقا منفجر شود تمام کردن عنوان inlineMarkdown است isAscii خالی است isNotEmpty است isJson isUlid isUuid کباب اولا طول حد پایین تر ltrim نشانه گذاری ماسک همخوانی داشتن مطابقت همه خط جدید پد هر دو padLeft padRight لوله جمع پیش انداختن برداشتن جایگزین کردن جایگزین آرایه جایگزین اول جایگزین آخرین جایگزین مسابقات rtrim اسکن کنید مفرد حلزون حرکت کردن مار شکاف له کردن شروع کنید شروع می شود با مطالعه substr substrReplace مبادله ضربه زدن تست عنوان کوتاه کردن اول ucsplit بالا چه زمانی هنگامی که حاوی whenContainsAll وقتی خالی WhenNotEmpty WhenStartsWith WhenEndsWith دقیقا چه وقت وقتی نه دقیقا چه زمانی هست whenIsAscii whenIsUlid whenIsUuid WhenTest تعداد کلمه کلمات
URL ها
متفرقه
سقط abort_if abort_مگر اینکه برنامه اعتبار بازگشت bcrypt جای خالی پخش حافظه پنهان class_uses_recursive جمع آوری کنید پیکربندی کوکی csrf_field csrf_token رمزگشایی DD ارسال زباله رمزگذاری env رویداد جعلی پر شده است اطلاعات متمرکز ساز روش_فیلد اکنون قدیمی اختیاری خط مشی تغییر مسیر گزارش گزارش_اگر گزارش_مگر اینکه درخواست نجات برطرف کردن واکنش دوباره امتحان کنید جلسه ضربه زدن انداختن_اگر پرتاب_مگر امروز trait_uses_recursive تبدیل تایید کننده ارزش چشم انداز با
فهرست روش
آرایه ها و اشیاء
Arr::accessible()
این
Arr::accessible
روش تعیین می کند که آیا مقدار داده شده در دسترس آرایه است:
use Illuminate\Support\Arr;use Illuminate\Support\Collection; $isAccessible = Arr::accessible(['a' => 1, 'b' => 2]); // true $isAccessible = Arr::accessible(new Collection); // true $isAccessible = Arr::accessible('abc'); // false $isAccessible = Arr::accessible(new stdClass); // false
Arr::add()
این
Arr::add
متد یک جفت کلید/مقدار معین را به یک آرایه اضافه می کند اگر کلید داده شده
از قبل در آرایه وجود نداشته باشد یا روی
null
:
use Illuminate\Support\Arr; $array = Arr::add(['name' => 'Desk'], 'price', 100); // ['name' => 'Desk', 'price' => 100] $array = Arr::add(['name' => 'Desk', 'price' => null], 'price', 100); // ['name' => 'Desk', 'price' => 100]
Arr::collapse()
این
Arr::collapse
روش یک آرایه از آرایه ها را در یک آرایه منفرد جمع می کند:
use Illuminate\Support\Arr; $array = Arr::collapse([[1, 2, 3], [4, 5, 6], [7, 8, 9]]); // [1, 2, 3, 4, 5, 6, 7, 8, 9]
Arr::crossJoin()
متد
Arr::crossJoin
متقاطع به آرایه های داده شده می پیوندد و یک محصول دکارتی را با همه جایگشت
های ممکن برمی گرداند:
use Illuminate\Support\Arr; $matrix = Arr::crossJoin([1, 2], ['a', 'b']); /* [ [1, 'a'], [1, 'b'], [2, 'a'], [2, 'b'], ]*/ $matrix = Arr::crossJoin([1, 2], ['a', 'b'], ['I', 'II']); /* [ [1, 'a', 'I'], [1, 'a', 'II'], [1, 'b', 'I'], [1, 'b', 'II'], [2, 'a', 'I'], [2, 'a', 'II'], [2, 'b', 'I'], [2, 'b', 'II'], ]*/
Arr::divide()
متد
Arr::divide
دو آرایه را برمی گرداند: یکی حاوی کلیدها و دیگری حاوی مقادیر آرایه داده
شده:
use Illuminate\Support\Arr; [$keys, $values] = Arr::divide(['name' => 'Desk']); // $keys: ['name'] // $values: ['Desk']
Arr::dot()
این
Arr::dot
روش یک آرایه چند بعدی را به یک آرایه سطح تکی مسطح می کند که از نماد
"نقطه" برای نشان دادن عمق استفاده می کند:
use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; $flattened = Arr::dot($array); // ['products.desk.price' => 100]
Arr::except()
این
Arr::except
روش جفت های کلید / مقدار داده شده را از یک آرایه حذف می کند:
use Illuminate\Support\Arr; $array = ['name' => 'Desk', 'price' => 100]; $filtered = Arr::except($array, ['price']); // ['name' => 'Desk']
Arr::exists()
متد
Arr::exists
بررسی می کند که کلید داده شده در آرایه ارائه شده وجود داشته باشد:
use Illuminate\Support\Arr; $array = ['name' => 'John Doe', 'age' => 17]; $exists = Arr::exists($array, 'name'); // true $exists = Arr::exists($array, 'salary'); // false
Arr::first()
این
Arr::first
متد اولین عنصر آرایه ای را که آزمون صدق داده شده را رد می کند، برمی
گرداند:
use Illuminate\Support\Arr; $array = [100, 200, 300]; $first = Arr::first($array, function ($value, $key) { return $value >= 150;}); // 200
یک مقدار پیش فرض نیز ممکن است به عنوان پارامتر سوم به متد ارسال شود. در صورتی که هیچ مقداری از آزمون حقیقت عبور نکند، این مقدار برگردانده خواهد شد:
use Illuminate\Support\Arr; $first = Arr::first($array, $callback, $default);
Arr::flatten()
این
Arr::flatten
روش یک آرایه چند بعدی را به یک آرایه سطح واحد مسطح می کند:
use Illuminate\Support\Arr; $array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']]; $flattened = Arr::flatten($array); // ['Joe', 'PHP', 'Ruby']
Arr::forget()
این
Arr::forget
روش یک جفت کلید/مقدار داده شده را از یک آرایه عمیق تو در تو با استفاده از
نماد "نقطه" حذف می کند:
use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; Arr::forget($array, 'products.desk'); // ['products' => []]
Arr::get()
این
Arr::get
روش مقداری را از یک آرایه عمیق تو در تو با استفاده از نماد "نقطه" بازیابی
می کند:
use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; $price = Arr::get($array, 'products.desk.price'); // 100
این
Arr::get
متد یک مقدار پیشفرض را نیز میپذیرد که اگر کلید مشخص شده در آرایه وجود
نداشته باشد، برگردانده میشود:
use Illuminate\Support\Arr; $discount = Arr::get($array, 'products.desk.discount', 0); // 0
Arr::has()
این
Arr::has
روش بررسی می کند که آیا یک مورد یا موارد داده شده در یک آرایه با استفاده
از نماد "نقطه" وجود دارد یا خیر:
use Illuminate\Support\Arr; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $contains = Arr::has($array, 'product.name'); // true $contains = Arr::has($array, ['product.price', 'product.discount']); // false
Arr::hasAny()
این
Arr::hasAny
روش بررسی میکند که آیا هر آیتمی در یک مجموعه داده شده در یک آرایه با
استفاده از نماد "نقطه" وجود دارد یا خیر:
use Illuminate\Support\Arr; $array = ['product' => ['name' => 'Desk', 'price' => 100]]; $contains = Arr::hasAny($array, 'product.name'); // true $contains = Arr::hasAny($array, ['product.name', 'product.discount']); // true $contains = Arr::hasAny($array, ['category', 'product.discount']); // false
Arr::isAssoc()
اگر آرایه داده شده یک آرایه انجمنی باشد،
روش
Arr::isAssoc
برمی گردد .
true
اگر یک آرایه دارای کلیدهای عددی متوالی نباشد که با صفر شروع می شوند،
"تداعی" در نظر گرفته می شود:
use Illuminate\Support\Arr; $isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]); // true $isAssoc = Arr::isAssoc([1, 2, 3]); // false
Arr::isList()
اگر کلیدهای آرایه داده شده اعداد صحیح متوالی باشند که از صفر شروع می
شوند،
روش
Arr::isList
برمی گردد :
true
use Illuminate\Support\Arr; $isList = Arr::isList(['foo', 'bar', 'baz']); // true $isList = Arr::isList(['product' => ['name' => 'Desk', 'price' => 100]]); // false
Arr::join()
متد
Arr::join
عناصر آرایه را با یک رشته به هم می پیوندد. با استفاده از آرگومان دوم این
روش، میتوانید رشته اتصال را برای عنصر نهایی آرایه نیز مشخص کنید:
use Illuminate\Support\Arr; $array = ['Tailwind', 'Alpine', 'Laravel', 'Livewire']; $joined = Arr::join($array, ', '); // Tailwind, Alpine, Laravel, Livewire $joined = Arr::join($array, ', ', ' and '); // Tailwind, Alpine, Laravel and Livewire
Arr::keyBy()
متد
Arr::keyBy
آرایه را با کلید داده شده کلید می زند. اگر چندین آیتم دارای یک کلید
باشند، فقط آخرین مورد در آرایه جدید ظاهر می شود:
use Illuminate\Support\Arr; $array = [ ['product_id' => 'prod-100', 'name' => 'Desk'], ['product_id' => 'prod-200', 'name' => 'Chair'],]; $keyed = Arr::keyBy($array, 'product_id'); /* [ 'prod-100' => ['product_id' => 'prod-100', 'name' => 'Desk'], 'prod-200' => ['product_id' => 'prod-200', 'name' => 'Chair'], ]*/
Arr::last()
متد
Arr::last
آخرین عنصر آرایه ای را که آزمون صدق داده شده را رد می کند، برمی گرداند:
use Illuminate\Support\Arr; $array = [100, 200, 300, 110]; $last = Arr::last($array, function ($value, $key) { return $value >= 150;}); // 300
یک مقدار پیش فرض ممکن است به عنوان آرگومان سوم به متد ارسال شود. در صورتی که هیچ مقداری از آزمون حقیقت عبور نکند، این مقدار برگردانده خواهد شد:
use Illuminate\Support\Arr; $last = Arr::last($array, $callback, $default);
Arr::map()
متد
Arr::map
از طریق آرایه تکرار می شود و هر مقدار و کلید را به فراخوانی داده شده
ارسال می کند. مقدار آرایه با مقدار بازگشتی با callback جایگزین می شود:
use Illuminate\Support\Arr; $array = ['first' => 'james', 'last' => 'kirk']; $mapped = Arr::map($array, function ($value, $key) { return ucfirst($value);}); // ['first' => 'James', 'last' => 'Kirk']
Arr::only()
متد
Arr::only
فقط جفت های کلید/مقدار مشخص شده را از آرایه داده شده برمی گرداند:
use Illuminate\Support\Arr; $array = ['name' => 'Desk', 'price' => 100, 'orders' => 10]; $slice = Arr::only($array, ['name', 'price']); // ['name' => 'Desk', 'price' => 100]
Arr::pluck()
این
Arr::pluck
متد تمام مقادیر یک کلید داده شده را از یک آرایه بازیابی می کند:
use Illuminate\Support\Arr; $array = [ ['developer' => ['id' => 1, 'name' => 'Taylor']], ['developer' => ['id' => 2, 'name' => 'Abigail']],]; $names = Arr::pluck($array, 'developer.name'); // ['Taylor', 'Abigail']
همچنین میتوانید تعیین کنید که چگونه میخواهید فهرست به دست آمده کلید شود:
use Illuminate\Support\Arr; $names = Arr::pluck($array, 'developer.name', 'developer.id'); // [1 => 'Taylor', 2 => 'Abigail']
Arr::prepend()
این
Arr::prepend
روش یک آیتم را به ابتدای یک آرایه فشار می دهد:
use Illuminate\Support\Arr; $array = ['one', 'two', 'three', 'four']; $array = Arr::prepend($array, 'zero'); // ['zero', 'one', 'two', 'three', 'four']
در صورت نیاز، می توانید کلیدی را که باید برای مقدار استفاده شود مشخص کنید:
use Illuminate\Support\Arr; $array = ['price' => 100]; $array = Arr::prepend($array, 'Desk', 'name'); // ['name' => 'Desk', 'price' => 100]
Arr::prependKeysWith()
Arr::prependKeysWith
تمام نامهای کلیدی یک آرایه انجمنی را با پیشوند داده شده اضافه میکند
:
use Illuminate\Support\Arr; $array = [ 'name' => 'Desk', 'price' => 100,]; $keyed = Arr::prependKeysWith($array, 'product.'); /* [ 'product.name' => 'Desk', 'product.price' => 100, ]*/
Arr::pull()
متد
Arr::pull
یک جفت کلید / مقدار را از یک آرایه برمی گرداند و حذف می کند:
use Illuminate\Support\Arr; $array = ['name' => 'Desk', 'price' => 100]; $name = Arr::pull($array, 'name'); // $name: Desk // $array: ['price' => 100]
یک مقدار پیش فرض ممکن است به عنوان آرگومان سوم به متد ارسال شود. اگر کلید وجود نداشته باشد، این مقدار برگردانده خواهد شد:
use Illuminate\Support\Arr; $value = Arr::pull($array, $key, $default);
Arr::query()
متد
Arr::query
آرایه را به یک query string تبدیل می کند:
use Illuminate\Support\Arr; $array = [ 'name' => 'Taylor', 'order' => [ 'column' => 'created_at', 'direction' => 'desc' ]]; Arr::query($array); // name=Taylor&order[column]=created_at&order[direction]=desc
Arr::random()
متد
Arr::random
یک مقدار تصادفی را از یک آرایه برمی گرداند:
use Illuminate\Support\Arr; $array = [1, 2, 3, 4, 5]; $random = Arr::random($array); // 4 - (retrieved randomly)
همچنین می توانید تعداد آیتم هایی را که باید به عنوان آرگومان دوم اختیاری برگردانده شوند، مشخص کنید. توجه داشته باشید که ارائه این آرگومان یک آرایه را برمی گرداند حتی اگر فقط یک آیتم مورد نظر باشد:
use Illuminate\Support\Arr; $items = Arr::random($array, 2); // [2, 5] - (retrieved randomly)
Arr::set()
این
Arr::set
روش مقداری را در یک آرایه عمیق تو در تو با استفاده از نماد "نقطه" تنظیم
می کند:
use Illuminate\Support\Arr; $array = ['products' => ['desk' => ['price' => 100]]]; Arr::set($array, 'products.desk.price', 200); // ['products' => ['desk' => ['price' => 200]]]
Arr::shuffle()
این
Arr::shuffle
روش به طور تصادفی موارد موجود در آرایه را با هم مخلوط می کند:
use Illuminate\Support\Arr; $array = Arr::shuffle([1, 2, 3, 4, 5]); // [3, 2, 5, 1, 4] - (generated randomly)
Arr::sort()
متد
Arr::sort
یک آرایه را بر اساس مقادیر آن مرتب می کند:
use Illuminate\Support\Arr; $array = ['Desk', 'Table', 'Chair']; $sorted = Arr::sort($array); // ['Chair', 'Desk', 'Table']
همچنین می توانید آرایه را بر اساس نتایج یک بسته شدن مشخص مرتب کنید:
use Illuminate\Support\Arr; $array = [ ['name' => 'Desk'], ['name' => 'Table'], ['name' => 'Chair'],]; $sorted = array_values(Arr::sort($array, function ($value) { return $value['name'];})); /* [ ['name' => 'Chair'], ['name' => 'Desk'], ['name' => 'Table'], ]*/
Arr::sortDesc()
این
Arr::sortDesc
روش یک آرایه را به ترتیب نزولی بر اساس مقادیر آن مرتب می کند:
use Illuminate\Support\Arr; $array = ['Desk', 'Table', 'Chair']; $sorted = Arr::sortDesc($array); // ['Table', 'Desk', 'Chair']
همچنین می توانید آرایه را بر اساس نتایج یک بسته شدن مشخص مرتب کنید:
use Illuminate\Support\Arr; $array = [ ['name' => 'Desk'], ['name' => 'Table'], ['name' => 'Chair'],]; $sorted = array_values(Arr::sortDesc($array, function ($value) { return $value['name'];})); /* [ ['name' => 'Table'], ['name' => 'Desk'], ['name' => 'Chair'], ]*/
Arr::sortRecursive()
این
Arr::sortRecursive
روش به صورت بازگشتی یک آرایه را با استفاده از
sort
تابع برای زیر آرایه های شاخص عددی و
ksort
تابع برای زیر آرایه های انجمنی مرتب می کند:
use Illuminate\Support\Arr; $array = [ ['Roman', 'Taylor', 'Li'], ['PHP', 'Ruby', 'JavaScript'], ['one' => 1, 'two' => 2, 'three' => 3],]; $sorted = Arr::sortRecursive($array); /* [ ['JavaScript', 'PHP', 'Ruby'], ['one' => 1, 'three' => 3, 'two' => 2], ['Li', 'Roman', 'Taylor'], ]*/
Arr::toCssClasses()
به
Arr::toCssClasses
صورت مشروط یک رشته کلاس CSS را کامپایل می کند. متد آرایه ای از کلاس ها را
می پذیرد که در آن کلید آرایه شامل کلاس یا کلاس هایی است که می خواهید اضافه کنید، در حالی که مقدار یک عبارت
بولی است. اگر عنصر آرایه دارای یک کلید عددی باشد، همیشه در لیست کلاس رندر شده قرار می گیرد:
use Illuminate\Support\Arr; $isActive = false;$hasError = true; $array = ['p-4', 'font-bold' => $isActive, 'bg-red' => $hasError]; $classes = Arr::toCssClasses($array); /* 'p-4 bg-red'*/
این روش عملکرد لاراول را تقویت می کند و اجازه می دهد تا
کلاس ها را با کیسه ویژگی Blade جزء
و همچنین
@class
دستورالعمل Blade
ادغام کنند .
Arr::undot()
این
Arr::undot
روش یک آرایه تک بعدی را که از نماد "نقطه" استفاده می کند به یک آرایه چند
بعدی گسترش می دهد:
use Illuminate\Support\Arr; $array = [ 'user.name' => 'Kevin Malone', 'user.occupation' => 'Accountant',]; $array = Arr::undot($array); // ['user' => ['name' => 'Kevin Malone', 'occupation' => 'Accountant']]
Arr::where()
این
Arr::where
روش یک آرایه را با استفاده از بسته شدن داده شده فیلتر می کند:
use Illuminate\Support\Arr; $array = [100, '200', 300, '400', 500]; $filtered = Arr::where($array, function ($value, $key) { return is_string($value);}); // [1 => '200', 3 => '400']
Arr::whereNotNull()
متد
Arr::whereNotNull
تمام
null
مقادیر را از آرایه داده شده حذف می کند:
use Illuminate\Support\Arr; $array = [0, null]; $filtered = Arr::whereNotNull($array); // [0 => 0]
Arr::wrap()
این
Arr::wrap
روش مقدار داده شده را در یک آرایه پیچیده می کند. اگر مقدار داده شده از
قبل یک آرایه باشد، بدون تغییر برگردانده می شود:
use Illuminate\Support\Arr; $string = 'Laravel'; $array = Arr::wrap($string); // ['Laravel']
اگر مقدار داده شده باشد
null
، یک آرایه خالی برگردانده می شود:
use Illuminate\Support\Arr; $array = Arr::wrap(null); // []
data_fill()
این
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_get
تابع مقداری را از یک آرایه یا شی تودرتو با استفاده از نماد "نقطه" بازیابی
می کند:
$data = ['products' => ['desk' => ['price' => 100]]]; $price = data_get($data, 'products.desk.price'); // 100
تابع
data_get
همچنین یک مقدار پیشفرض را میپذیرد که در صورت یافت نشدن کلید مشخص شده
برگردانده میشود:
$discount = data_get($data, 'products.desk.discount', 0); // 0
این تابع همچنین با استفاده از ستاره هایی که ممکن است هر کلیدی از آرایه یا شی را هدف قرار دهند، حروف عام را می پذیرد:
$data = [ 'product-one' => ['name' => 'Desk 1', 'price' => 100], 'product-two' => ['name' => 'Desk 2', 'price' => 150],]; data_get($data, '*.name'); // ['Desk 1', 'Desk 2'];
data_set()
این
data_set
تابع مقداری را در یک آرایه یا شی تودرتو با استفاده از نماد "نقطه" تنظیم
می کند:
$data = ['products' => ['desk' => ['price' => 100]]]; data_set($data, 'products.desk.price', 200); // ['products' => ['desk' => ['price' => 200]]]
این تابع همچنین با استفاده از ستاره، حروف عام را می پذیرد و مقادیر را بر روی هدف تنظیم می کند:
$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, overwrite: false); // ['products' => ['desk' => ['price' => 100]]]
head()
تابع
head
اولین عنصر در آرایه داده شده را برمی گرداند:
$array = [100, 200, 300]; $first = head($array); // 100
last()
تابع
last
آخرین عنصر در آرایه داده شده را برمی گرداند:
$array = [100, 200, 300]; $last = last($array); // 300
راه ها
app_path()
این
app_path
تابع مسیر کاملا واجد شرایط را به
app
فهرست برنامه شما برمی گرداند. همچنین می توانید از این
app_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل نسبت به فهرست برنامه
استفاده کنید:
$path = app_path(); $path = app_path('Http/Controllers/Controller.php');
base_path()
تابع
base_path
مسیر کاملا واجد شرایط را به دایرکتوری ریشه برنامه شما برمی گرداند. همچنین
می توانید از
base_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل داده شده نسبت به
دایرکتوری ریشه پروژه استفاده کنید:
$path = base_path(); $path = base_path('vendor/bin');
config_path()
این
config_path
تابع مسیر کاملا واجد شرایط را به
config
فهرست برنامه شما برمی گرداند. همچنین میتوانید از این
config_path
تابع برای ایجاد یک مسیر کاملاً واجد شرایط به یک فایل معین در دایرکتوری
پیکربندی برنامه استفاده کنید:
$path = config_path(); $path = config_path('app.php');
database_path()
این
database_path
تابع مسیر کاملا واجد شرایط را به
database
فهرست برنامه شما برمی گرداند. همچنین می توانید از
database_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل معین در فهرست پایگاه
داده استفاده کنید:
$path = database_path(); $path = database_path('factories/UserFactory.php');
lang_path()
این
lang_path
تابع مسیر کاملا واجد شرایط را به
lang
فهرست برنامه شما برمی گرداند. همچنین می توانید از
lang_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل معین در دایرکتوری
استفاده کنید:
$path = lang_path(); $path = lang_path('en/messages.php');
mix()
تابع
mix
مسیر را به
فایل Mix نسخه شده
برمی گرداند :
$path = mix('css/app.css');
public_path()
این
public_path
تابع مسیر کاملا واجد شرایط را به
public
فهرست برنامه شما برمی گرداند. همچنین میتوانید از
public_path
تابع برای ایجاد یک مسیر کاملاً واجد شرایط به یک فایل معین در فهرست عمومی
استفاده کنید:
$path = public_path(); $path = public_path('css/app.css');
resource_path()
این
resource_path
تابع مسیر کاملا واجد شرایط را به
resources
فهرست برنامه شما برمی گرداند. همچنین می توانید از
resource_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل معین در فهرست منابع
استفاده کنید:
$path = resource_path(); $path = resource_path('sass/app.scss');
storage_path()
این
storage_path
تابع مسیر کاملا واجد شرایط را به
storage
فهرست برنامه شما برمی گرداند. همچنین می توانید از این
storage_path
تابع برای ایجاد یک مسیر کاملا واجد شرایط به یک فایل معین در فهرست ذخیره
سازی استفاده کنید:
$path = storage_path(); $path = storage_path('app/file.txt');
رشته های
__()
تابع
__
، رشته ترجمه یا کلید ترجمه داده شده را با استفاده از
فایل های محلی سازی
شما ترجمه می کند :
echo __('Welcome to our application'); echo __('messages.welcome');
اگر رشته یا کلید ترجمه مشخص شده وجود نداشته باشد،
__
تابع مقدار داده شده را برمی گرداند. بنابراین، با استفاده از مثال بالا،
اگر کلید ترجمه وجود نداشته باشد،
__
تابع برمی گردد .
messages.welcome
class_basename()
تابع
class_basename
نام کلاس کلاس داده شده را با حذف فضای نام کلاس برمی گرداند:
$class = class_basename('Foo\Bar\Baz'); // Baz
e()
این
e
تابع تابع PHP را
htmlspecialchars
با
double_encode
گزینه ای که به صورت پیش فرض تنظیم شده است اجرا می کند
true
:
echo e('<html>foo</html>'); // <html>foo</html>
preg_replace_array()
تابع
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
Str::after()
متد
Str::after
همه چیز را بعد از مقدار داده شده در یک رشته برمی گرداند. اگر مقدار درون
رشته وجود نداشته باشد، کل رشته برگردانده خواهد شد:
use Illuminate\Support\Str; $slice = Str::after('This is my name', 'This is'); // ' my name'
Str::afterLast()
متد
Str::afterLast
همه چیز را پس از آخرین وقوع مقدار داده شده در یک رشته برمی گرداند. اگر
مقدار درون رشته وجود نداشته باشد، کل رشته برگردانده خواهد شد:
use Illuminate\Support\Str; $slice = Str::afterLast('App\Http\Controllers\Controller', '\\'); // 'Controller'
Str::ascii()
این
Str::ascii
روش تلاش خواهد کرد تا رشته را به یک مقدار ASCII تبدیل کند:
use Illuminate\Support\Str; $slice = Str::ascii('û'); // 'u'
Str::before()
متد
Str::before
همه چیز را قبل از مقدار داده شده در یک رشته برمی گرداند:
use Illuminate\Support\Str; $slice = Str::before('This is my name', 'my name'); // 'This is '
Str::beforeLast()
متد
Str::beforeLast
همه چیز را قبل از آخرین وقوع مقدار داده شده در یک رشته برمی گرداند:
use Illuminate\Support\Str; $slice = Str::beforeLast('This is my name', 'is'); // 'This '
Str::between()
متد
Str::between
بخشی از یک رشته را بین دو مقدار برمی گرداند:
use Illuminate\Support\Str; $slice = Str::between('This is my name', 'This', 'name'); // ' is my '
Str::betweenFirst()
این
Str::betweenFirst
متد کوچکترین بخش ممکن از یک رشته را بین دو مقدار برمی گرداند:
use Illuminate\Support\Str; $slice = Str::betweenFirst('[a] bc [d]', '[', ']'); // 'a'
Str::camel()
متد
Str::camel
رشته داده شده را به
camelCase
:
use Illuminate\Support\Str; $converted = Str::camel('foo_bar'); // fooBar
Str::contains()
متد
Str::contains
تعیین می کند که آیا رشته داده شده حاوی مقدار داده شده است یا خیر. این روش
به حروف کوچک و بزرگ حساس است:
use Illuminate\Support\Str; $contains = Str::contains('This is my name', 'my'); // true
همچنین میتوانید آرایهای از مقادیر را ارسال کنید تا تعیین کنید آیا رشته داده شده حاوی هر یک از مقادیر آرایه است یا خیر:
use Illuminate\Support\Str; $contains = Str::contains('This is my name', ['my', 'foo']); // true
Str::containsAll()
متد
Str::containsAll
تعیین می کند که آیا رشته داده شده حاوی تمام مقادیر یک آرایه معین است یا
خیر:
use Illuminate\Support\Str; $containsAll = Str::containsAll('This is my name', ['my', 'name']); // true
Str::endsWith()
متد
Str::endsWith
تعیین می کند که آیا رشته داده شده با مقدار داده شده به پایان می رسد:
use Illuminate\Support\Str; $result = Str::endsWith('This is my name', 'name'); // true
همچنین میتوانید آرایهای از مقادیر را ارسال کنید تا مشخص کنید که آیا رشته داده شده به هر یک از مقادیر آرایه ختم میشود یا خیر:
use Illuminate\Support\Str; $result = Str::endsWith('This is my name', ['name', 'foo']); // true $result = Str::endsWith('This is my name', ['this', 'foo']); // false
Str::excerpt()
این
Str::excerpt
روش یک گزیده از یک رشته داده شده را استخراج می کند که با اولین نمونه از
یک عبارت در آن رشته مطابقت دارد:
use Illuminate\Support\Str; $excerpt = Str::excerpt('This is my name', 'my', [ 'radius' => 3]); // '...is my na...'
گزینه ای
radius
که به طور پیش فرض روی است
100
، به شما امکان می دهد تعداد کاراکترهایی را که باید در هر طرف رشته کوتاه
شده ظاهر شوند، تعیین کنید.
علاوه بر این، میتوانید از این
omission
گزینه برای تعریف رشتهای استفاده کنید که از قبل به رشته کوتاه شده اضافه
میشود:
use Illuminate\Support\Str; $excerpt = Str::excerpt('This is my name', 'name', [ 'radius' => 3, 'omission' => '(...) ']); // '(...) my name'
Str::finish()
این
Str::finish
متد یک نمونه از مقدار داده شده را به یک رشته اضافه می کند اگر قبلاً به آن
مقدار ختم نشده باشد:
use Illuminate\Support\Str; $adjusted = Str::finish('this/string', '/'); // this/string/ $adjusted = Str::finish('this/string/', '/'); // this/string/
Str::headline()
این
Str::headline
روش رشتههایی را که با حروف، خط تیره یا زیرخط مشخص شدهاند، به رشتهای با
فاصله با حروف اول هر کلمه تبدیل میکند:
use Illuminate\Support\Str; $headline = Str::headline('steve_jobs'); // Steve Jobs $headline = Str::headline('EmailNotificationSent'); // Email Notification Sent
Str::inlineMarkdown()
این روش Markdown با طعم GitHub را با استفاده از
CommonMark
Str::inlineMarkdown
به HTML درون خطی تبدیل می کند
. با این حال، بر خلاف
روش، تمام HTML تولید شده را در یک عنصر در سطح بلوک قرار نمی دهد:
markdown
use Illuminate\Support\Str; $html = Str::inlineMarkdown('**Laravel**'); // <strong>Laravel</strong>
Str::is()
این
Str::is
روش تعیین می کند که آیا یک رشته داده شده با یک الگوی داده شده مطابقت دارد
یا خیر. ستاره ها ممکن است به عنوان مقادیر عام استفاده شوند:
use Illuminate\Support\Str; $matches = Str::is('foo*', 'foobar'); // true $matches = Str::is('baz*', 'foobar'); // false
Str::isAscii()
این
Str::isAscii
روش تعیین می کند که آیا یک رشته داده شده ASCII 7 بیتی است یا خیر:
use Illuminate\Support\Str; $isAscii = Str::isAscii('Taylor'); // true $isAscii = Str::isAscii('ü'); // false
Str::isJson()
متد
Str::isJson
تعیین می کند که آیا رشته داده شده JSON معتبر است یا خیر:
use Illuminate\Support\Str; $result = Str::isJson('[1,2,3]'); // true $result = Str::isJson('{"first": "John", "last": "Doe"}'); // true $result = Str::isJson('{first: "John", last: "Doe"}'); // false
Str::isUlid()
متد
Str::isUlid
تعیین می کند که آیا رشته داده شده یک ULID معتبر است یا خیر:
use Illuminate\Support\Str; $isUlid = Str::isUlid('01gd6r360bp37zj17nxb55yv40'); // true $isUlid = Str::isUlid('laravel'); // false
Str::isUuid()
این
Str::isUuid
روش تعیین می کند که آیا رشته داده شده یک UUID معتبر است یا خیر:
use Illuminate\Support\Str; $isUuid = Str::isUuid('a0a2a2d2-0b87-4a18-83f2-2529882be2de'); // true $isUuid = Str::isUuid('laravel'); // false
Str::kebab()
متد
Str::kebab
رشته داده شده را به
kebab-case
:
use Illuminate\Support\Str; $converted = Str::kebab('fooBar'); // foo-bar
Str::lcfirst()
متد
Str::lcfirst
رشته داده شده را با اولین کاراکتر کوچک برمی گرداند:
use Illuminate\Support\Str; $string = Str::lcfirst('Foo Bar'); // foo Bar
Str::length()
متد
Str::length
طول رشته داده شده را برمی گرداند:
use Illuminate\Support\Str; $length = Str::length('Laravel'); // 7
Str::limit()
متد
Str::limit
رشته داده شده را به طول مشخص شده کوتاه می کند:
use Illuminate\Support\Str; $truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20); // The quick brown fox...
برای تغییر رشته ای که به انتهای رشته کوتاه شده اضافه می شود، می توانید آرگومان سومی را به متد ارسال کنید:
use Illuminate\Support\Str; $truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, ' (...)'); // The quick brown fox (...)
Str::lower()
متد
Str::lower
رشته داده شده را به حروف کوچک تبدیل می کند:
use Illuminate\Support\Str; $converted = Str::lower('LARAVEL'); // laravel
Str::markdown()
این روش Markdown با طعم GitHub را با استفاده از
CommonMark
Str::markdown
به HTML تبدیل می کند
:
use Illuminate\Support\Str; $html = Str::markdown('# Laravel'); // <h1>Laravel</h1> $html = Str::markdown('# Taylor <b>Otwell</b>', [ 'html_input' => 'strip',]); // <h1>Taylor Otwell</h1>
Str::mask()
این
Str::mask
روش بخشی از یک رشته را با یک کاراکتر تکراری ماسک می کند و ممکن است برای
مبهم کردن بخش هایی از رشته ها مانند آدرس ایمیل و شماره تلفن استفاده شود:
use Illuminate\Support\Str; $string = Str::mask('taylor@example.com', '*', 3); // tay***************
در صورت نیاز، یک عدد منفی به عنوان آرگومان سوم به
mask
متد ارائه میدهید، که به متد دستور میدهد تا در فاصله مشخص شده از انتهای
رشته، ماسک کردن را آغاز کند:
$string = Str::mask('taylor@example.com', '*', -15, 3); // tay***@example.com
Str::orderedUuid()
این
Str::orderedUuid
روش یک UUID "مهر زمانی" تولید می کند که ممکن است به طور موثر در یک ستون
پایگاه داده نمایه شده ذخیره شود. هر UUID که با استفاده از این روش تولید میشود، پس از UUIDهایی که قبلاً با
استفاده از روش ایجاد شدهاند مرتب میشوند:
use Illuminate\Support\Str; return (string) Str::orderedUuid();
Str::padBoth()
این
Str::padBoth
روش تابع PHP را بسته بندی می کند
str_pad
و هر دو طرف یک رشته را با یک رشته دیگر اضافه می کند تا اینکه رشته نهایی
به طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::padBoth('James', 10, '_'); // '__James___' $padded = Str::padBoth('James', 10); // ' James '
Str::padLeft()
این
Str::padLeft
روش تابع PHP را پیچیده میکند
str_pad
و سمت چپ یک رشته را با یک رشته دیگر اضافه میکند تا اینکه رشته نهایی به
طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::padLeft('James', 10, '-='); // '-=-=-James' $padded = Str::padLeft('James', 10); // ' James'
Str::padRight()
این
Str::padRight
روش تابع PHP را پیچیده میکند
str_pad
و سمت راست یک رشته را با یک رشته دیگر اضافه میکند تا اینکه رشته نهایی به
طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::padRight('James', 10, '-'); // 'James-----' $padded = Str::padRight('James', 10); // 'James '
Str::plural()
این
Str::plural
روش یک رشته کلمه مفرد را به شکل جمع آن تبدیل می کند. این تابع از
هر یک از زبان های پشتیبانی شده توسط پلورالیزر لاراول
پشتیبانی می کند :
use Illuminate\Support\Str; $plural = Str::plural('car'); // cars $plural = Str::plural('child'); // children
می توانید یک عدد صحیح به عنوان آرگومان دوم برای تابع برای بازیابی شکل مفرد یا جمع رشته ارائه دهید:
use Illuminate\Support\Str; $plural = Str::plural('child', 2); // children $singular = Str::plural('child', 1); // child
Str::pluralStudly()
این
Str::pluralStudly
روش یک رشته کلمه مفرد را که با حروف studly caps قالب بندی شده است به شکل
جمع آن تبدیل می کند. این تابع از
هر یک از زبان های پشتیبانی شده توسط پلورالیزر لاراول
پشتیبانی می کند :
use Illuminate\Support\Str; $plural = Str::pluralStudly('VerifiedHuman'); // VerifiedHumans $plural = Str::pluralStudly('UserFeedback'); // UserFeedback
می توانید یک عدد صحیح به عنوان آرگومان دوم برای تابع برای بازیابی شکل مفرد یا جمع رشته ارائه دهید:
use Illuminate\Support\Str; $plural = Str::pluralStudly('VerifiedHuman', 2); // VerifiedHumans $singular = Str::pluralStudly('VerifiedHuman', 1); // VerifiedHuman
Str::random()
این
Str::random
روش یک رشته تصادفی با طول مشخص شده تولید می کند. این تابع از تابع PHP
استفاده می کند
random_bytes
:
use Illuminate\Support\Str; $random = Str::random(40);
Str::remove()
متد
Str::remove
مقدار داده شده یا آرایه مقادیر را از رشته حذف می کند:
use Illuminate\Support\Str; $string = 'Peter Piper picked a peck of pickled peppers.'; $removed = Str::remove('e', $string); // Ptr Pipr pickd a pck of pickld ppprs.
همچنین میتوانید
false
بهعنوان آرگومان سوم به
remove
متد ارسال کنید تا هنگام حذف رشتهها، حروف کوچک و بزرگ نادیده گرفته شود.
Str::replace()
متد
Str::replace
یک رشته داده شده را در رشته جایگزین می کند:
use Illuminate\Support\Str; $string = 'Laravel 8.x'; $replaced = Str::replace('8.x', '9.x', $string); // Laravel 9.x
Str::replaceArray()
این
Str::replaceArray
روش با استفاده از یک آرایه، مقدار داده شده را در رشته جایگزین می کند:
use Illuminate\Support\Str; $string = 'The event will take place between ? and ?'; $replaced = Str::replaceArray('?', ['8:30', '9:00'], $string); // The event will take place between 8:30 and 9:00
Str::replaceFirst()
متد
Str::replaceFirst
اولین وقوع یک مقدار داده شده را در یک رشته جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::replaceFirst('the', 'a', 'the quick brown fox jumps over the lazy dog'); // a quick brown fox jumps over the lazy dog
Str::replaceLast()
متد
Str::replaceLast
آخرین وقوع یک مقدار داده شده را در یک رشته جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::replaceLast('the', 'a', 'the quick brown fox jumps over the lazy dog'); // the quick brown fox jumps over a lazy dog
Str::reverse()
متد
Str::reverse
رشته داده شده را معکوس می کند:
use Illuminate\Support\Str; $reversed = Str::reverse('Hello World'); // dlroW olleH
Str::singular()
این
Str::singular
روش یک رشته را به شکل تکی آن تبدیل می کند. این تابع از
هر یک از زبان های پشتیبانی شده توسط پلورالیزر لاراول
پشتیبانی می کند :
use Illuminate\Support\Str; $singular = Str::singular('cars'); // car $singular = Str::singular('children'); // child
Str::slug()
این
Str::slug
روش یک URL دوستدار "slug" از رشته داده شده ایجاد می کند:
use Illuminate\Support\Str; $slug = Str::slug('Laravel 5 Framework', '-'); // laravel-5-framework
Str::snake()
متد
Str::snake
رشته داده شده را به
snake_case
:
use Illuminate\Support\Str; $converted = Str::snake('fooBar'); // foo_bar $converted = Str::snake('fooBar', '-'); // foo-bar
Str::squish()
این
Str::squish
روش تمام فضای سفید اضافی را از یک رشته حذف می کند، از جمله فضای سفید
خارجی بین کلمات:
use Illuminate\Support\Str; $string = Str::squish(' laravel framework '); // laravel framework
Str::start()
این
Str::start
متد در صورتی که از قبل با آن مقدار شروع نشده باشد، یک نمونه واحد از مقدار
داده شده را به رشته اضافه می کند:
use Illuminate\Support\Str; $adjusted = Str::start('this/string', '/'); // /this/string $adjusted = Str::start('/this/string', '/'); // /this/string
Str::startsWith()
متد
Str::startsWith
تعیین می کند که آیا رشته داده شده با مقدار داده شده شروع می شود:
use Illuminate\Support\Str; $result = Str::startsWith('This is my name', 'This'); // true
اگر آرایه ای از مقادیر ممکن ارسال شود،
اگر رشته با هر یک از مقادیر داده شده شروع شود،
startsWith
متد برمی گردد :
true
$result = Str::startsWith('This is my name', ['This', 'That', 'There']); // true
Str::studly()
متد
Str::studly
رشته داده شده را به
StudlyCase
:
use Illuminate\Support\Str; $converted = Str::studly('foo_bar'); // FooBar
Str::substr()
متد
Str::substr
بخشی از رشته را که توسط پارامترهای start و length مشخص شده است برمی
گرداند:
use Illuminate\Support\Str; $converted = Str::substr('The Laravel Framework', 4, 7); // Laravel
Str::substrCount()
متد
Str::substrCount
تعداد وقوع یک مقدار معین را در رشته داده شده برمی گرداند:
use Illuminate\Support\Str; $count = Str::substrCount('If you like ice cream, you will like snow cones.', 'like'); // 2
Str::substrReplace()
این
Str::substrReplace
متد متن را در قسمتی از رشته جایگزین می کند، از موقعیتی که توسط آرگومان
سوم مشخص شده شروع می شود و تعداد کاراکترهای مشخص شده توسط آرگومان چهارم را جایگزین می کند. با عبور
0
به آرگومان چهارم متد، رشته را در موقعیت مشخص شده بدون جایگزینی هیچ یک از
کاراکترهای موجود در رشته وارد میکند:
use Illuminate\Support\Str; $result = Str::substrReplace('1300', ':', 2);// 13: $result = Str::substrReplace('1300', ':', 2, 0);// 13:00
Str::swap()
این
Str::swap
روش با استفاده از تابع PHP چندین مقدار را در رشته داده شده جایگزین می کند
strtr
:
use Illuminate\Support\Str; $string = Str::swap([ 'Tacos' => 'Burritos', 'great' => 'fantastic',], 'Tacos are great!'); // Burritos are fantastic!
Str::title()
متد
Str::title
رشته داده شده را به
Title Case
:
use Illuminate\Support\Str; $converted = Str::title('a nice title uses the correct case'); // A Nice Title Uses The Correct Case
Str::toHtmlString()
این
Str::toHtmlString
روش نمونه رشته را به نمونه ای تبدیل می کند
Illuminate\Support\HtmlString
که ممکن است در قالب های Blade نمایش داده شود:
use Illuminate\Support\Str; $htmlString = Str::of('Nuno Maduro')->toHtmlString();
Str::ucfirst()
متد
Str::ucfirst
رشته داده شده را با حروف بزرگ برمی گرداند:
use Illuminate\Support\Str; $string = Str::ucfirst('foo bar'); // Foo bar
Str::ucsplit()
این
Str::ucsplit
روش رشته داده شده را با حروف بزرگ به یک آرایه تقسیم می کند:
use Illuminate\Support\Str; $segments = Str::ucsplit('FooBar'); // [0 => 'Foo', 1 => 'Bar']
Str::upper()
متد
Str::upper
رشته داده شده را به حروف بزرگ تبدیل می کند:
use Illuminate\Support\Str; $string = Str::upper('laravel'); // LARAVEL
Str::ulid()
این
Str::ulid
روش یک ULID تولید می کند:
use Illuminate\Support\Str; return (string) Str::ulid(); // 01gd6r360bp37zj17nxb55yv40
Str::uuid()
این
Str::uuid
روش یک UUID (نسخه 4) تولید می کند:
use Illuminate\Support\Str; return (string) Str::uuid();
Str::wordCount()
متد
Str::wordCount
تعداد کلماتی را که یک رشته شامل می شود برمی گرداند:
use Illuminate\Support\Str; Str::wordCount('Hello, world!'); // 2
Str::words()
این
Str::words
روش تعداد کلمات یک رشته را محدود می کند. ممکن است یک رشته اضافی از طریق
آرگومان سوم به این متد ارسال شود تا مشخص شود کدام رشته باید به انتهای رشته کوتاه شده اضافه شود:
use Illuminate\Support\Str; return Str::words('Perfectly balanced, as all things should be.', 3, ' >>>'); // Perfectly balanced, as >>>
str()
تابع
str
یک نمونه جدید
Illuminate\Support\Stringable
از رشته داده شده را برمی گرداند. این تابع معادل
Str::of
روش زیر است:
$string = str('Taylor')->append(' Otwell'); // 'Taylor Otwell'
اگر هیچ آرگومانی به تابع ارائه نشود
str
، تابع نمونه ای از
Illuminate\Support\Str
:
$snake = str()->snake('FooBar'); // 'foo_bar'
trans()
تابع
trans
کلید ترجمه داده شده را با استفاده از
فایل های محلی سازی
شما ترجمه می کند :
echo trans('messages.welcome');
اگر کلید ترجمه مشخص شده وجود نداشته باشد،
trans
تابع کلید داده شده را برمی گرداند. بنابراین، با استفاده از مثال بالا،
اگر کلید ترجمه وجود نداشته باشد،
trans
تابع برمی گردد .
messages.welcome
trans_choice()
تابع
trans_choice
کلید ترجمه داده شده را با عطف ترجمه می کند:
echo trans_choice('messages.notifications', $unreadCount);
اگر کلید ترجمه مشخص شده وجود نداشته باشد،
trans_choice
تابع کلید داده شده را برمی گرداند. بنابراین، با استفاده از مثال بالا،
اگر کلید ترجمه وجود نداشته باشد،
trans_choice
تابع برمی گردد .
messages.notifications
رشته های روان
رشته های روان یک رابط شی گراتر و روان تر برای کار با مقادیر رشته ارائه می کنند و به شما این امکان را می دهند که چندین عملیات رشته را با استفاده از یک نحو خواناتر در مقایسه با عملیات رشته سنتی زنجیره ای کنید.
after
متد
after
همه چیز را بعد از مقدار داده شده در یک رشته برمی گرداند. اگر مقدار درون
رشته وجود نداشته باشد، کل رشته برگردانده خواهد شد:
use Illuminate\Support\Str; $slice = Str::of('This is my name')->after('This is'); // ' my name'
afterLast
متد
afterLast
همه چیز را پس از آخرین وقوع مقدار داده شده در یک رشته برمی گرداند. اگر
مقدار درون رشته وجود نداشته باشد، کل رشته برگردانده خواهد شد:
use Illuminate\Support\Str; $slice = Str::of('App\Http\Controllers\Controller')->afterLast('\\'); // 'Controller'
append
متد
append
مقادیر داده شده را به رشته اضافه می کند:
use Illuminate\Support\Str; $string = Str::of('Taylor')->append(' Otwell'); // 'Taylor Otwell'
ascii
این
ascii
روش تلاش خواهد کرد تا رشته را به یک مقدار ASCII تبدیل کند:
use Illuminate\Support\Str; $string = Str::of('ü')->ascii(); // 'u'
basename
متد
basename
مولفه نام انتهایی رشته داده شده را برمی گرداند:
use Illuminate\Support\Str; $string = Str::of('/foo/bar/baz')->basename(); // 'baz'
در صورت نیاز، میتوانید یک «افزونه» ارائه دهید که از مؤلفه انتهایی حذف میشود:
use Illuminate\Support\Str; $string = Str::of('/foo/bar/baz.jpg')->basename('.jpg'); // 'baz'
before
متد
before
همه چیز را قبل از مقدار داده شده در یک رشته برمی گرداند:
use Illuminate\Support\Str; $slice = Str::of('This is my name')->before('my name'); // 'This is '
beforeLast
متد
beforeLast
همه چیز را قبل از آخرین وقوع مقدار داده شده در یک رشته برمی گرداند:
use Illuminate\Support\Str; $slice = Str::of('This is my name')->beforeLast('is'); // 'This '
between
متد
between
بخشی از یک رشته را بین دو مقدار برمی گرداند:
use Illuminate\Support\Str; $converted = Str::of('This is my name')->between('This', 'name'); // ' is my '
betweenFirst
این
betweenFirst
متد کوچکترین بخش ممکن از یک رشته را بین دو مقدار برمی گرداند:
use Illuminate\Support\Str; $converted = Str::of('[a] bc [d]')->betweenFirst('[', ']'); // 'a'
camel
متد
camel
رشته داده شده را به
camelCase
:
use Illuminate\Support\Str; $converted = Str::of('foo_bar')->camel(); // fooBar
classBasename
متد
classBasename
نام کلاس کلاس داده شده را با حذف فضای نام کلاس برمی گرداند:
use Illuminate\Support\Str; $class = Str::of('Foo\Bar\Baz')->classBasename(); // Baz
contains
متد
contains
تعیین می کند که آیا رشته داده شده حاوی مقدار داده شده است یا خیر. این روش
به حروف کوچک و بزرگ حساس است:
use Illuminate\Support\Str; $contains = Str::of('This is my name')->contains('my'); // true
همچنین میتوانید آرایهای از مقادیر را ارسال کنید تا تعیین کنید آیا رشته داده شده حاوی هر یک از مقادیر آرایه است یا خیر:
use Illuminate\Support\Str; $contains = Str::of('This is my name')->contains(['my', 'foo']); // true
containsAll
متد
containsAll
تعیین می کند که آیا رشته داده شده حاوی تمام مقادیر آرایه داده شده است یا
خیر:
use Illuminate\Support\Str; $containsAll = Str::of('This is my name')->containsAll(['my', 'name']); // true
dirname
متد
dirname
قسمت دایرکتوری والد رشته داده شده را برمی گرداند:
use Illuminate\Support\Str; $string = Str::of('/foo/bar/baz')->dirname(); // '/foo/bar'
در صورت لزوم، می توانید تعیین کنید که چند سطح دایرکتوری را می خواهید از رشته برش دهید:
use Illuminate\Support\Str; $string = Str::of('/foo/bar/baz')->dirname(2); // '/foo'
excerpt
این
excerpt
روش گزیده ای از رشته را استخراج می کند که با اولین نمونه از یک عبارت در
آن رشته مطابقت دارد:
use Illuminate\Support\Str; $excerpt = Str::of('This is my name')->excerpt('my', [ 'radius' => 3]); // '...is my na...'
گزینه ای
radius
که به طور پیش فرض روی است
100
، به شما امکان می دهد تعداد کاراکترهایی را که باید در هر طرف رشته کوتاه
شده ظاهر شوند، تعیین کنید.
علاوه بر این، میتوانید از
omission
گزینه تغییر رشتهای که از قبل به رشته کوتاه شده اضافه میشود، استفاده
کنید:
use Illuminate\Support\Str; $excerpt = Str::of('This is my name')->excerpt('name', [ 'radius' => 3, 'omission' => '(...) ']); // '(...) my name'
endsWith
متد
endsWith
تعیین می کند که آیا رشته داده شده با مقدار داده شده به پایان می رسد:
use Illuminate\Support\Str; $result = Str::of('This is my name')->endsWith('name'); // true
همچنین میتوانید آرایهای از مقادیر را ارسال کنید تا مشخص کنید که آیا رشته داده شده به هر یک از مقادیر آرایه ختم میشود یا خیر:
use Illuminate\Support\Str; $result = Str::of('This is my name')->endsWith(['name', 'foo']); // true $result = Str::of('This is my name')->endsWith(['this', 'foo']); // false
exactly
این
exactly
روش تعیین می کند که آیا رشته داده شده با رشته دیگری مطابقت دارد یا خیر:
use Illuminate\Support\Str; $result = Str::of('Laravel')->exactly('Laravel'); // true
explode
متد
explode
رشته را با جداکننده داده شده تقسیم می کند و مجموعه ای حاوی هر بخش از رشته
تقسیم را برمی گرداند:
use Illuminate\Support\Str; $collection = Str::of('foo bar baz')->explode(' '); // collect(['foo', 'bar', 'baz'])
finish
این
finish
متد یک نمونه از مقدار داده شده را به یک رشته اضافه می کند اگر قبلاً به آن
مقدار ختم نشده باشد:
use Illuminate\Support\Str; $adjusted = Str::of('this/string')->finish('/'); // this/string/ $adjusted = Str::of('this/string/')->finish('/'); // this/string/
headline
این
headline
روش رشتههایی را که با حروف، خط تیره یا زیرخط مشخص شدهاند، به رشتهای با
فاصله با حروف اول هر کلمه تبدیل میکند:
use Illuminate\Support\Str; $headline = Str::of('taylor_otwell')->headline(); // Taylor Otwell $headline = Str::of('EmailNotificationSent')->headline(); // Email Notification Sent
inlineMarkdown
این روش Markdown با طعم GitHub را با استفاده از
CommonMark
inlineMarkdown
به HTML درون خطی تبدیل می کند
. با این حال، بر خلاف
روش، تمام HTML تولید شده را در یک عنصر در سطح بلوک قرار نمی دهد:
markdown
use Illuminate\Support\Str; $html = Str::of('**Laravel**')->inlineMarkdown(); // <strong>Laravel</strong>
is
این
is
روش تعیین می کند که آیا یک رشته داده شده با یک الگوی داده شده مطابقت دارد
یا خیر. ستاره ها ممکن است به عنوان مقادیر عام استفاده شوند
use Illuminate\Support\Str; $matches = Str::of('foobar')->is('foo*'); // true $matches = Str::of('foobar')->is('baz*'); // false
isAscii
این
isAscii
روش تعیین می کند که آیا یک رشته داده شده یک رشته ASCII است:
use Illuminate\Support\Str; $result = Str::of('Taylor')->isAscii(); // true $result = Str::of('ü')->isAscii(); // false
isEmpty
متد
isEmpty
مشخص می کند که آیا رشته داده شده خالی است:
use Illuminate\Support\Str; $result = Str::of(' ')->trim()->isEmpty(); // true $result = Str::of('Laravel')->trim()->isEmpty(); // false
isNotEmpty
متد
isNotEmpty
تعیین می کند که آیا رشته داده شده خالی نباشد:
use Illuminate\Support\Str; $result = Str::of(' ')->trim()->isNotEmpty(); // false $result = Str::of('Laravel')->trim()->isNotEmpty(); // true
isJson
متد
isJson
تعیین می کند که آیا یک رشته داده شده JSON معتبر است یا خیر:
use Illuminate\Support\Str; $result = Str::of('[1,2,3]')->isJson(); // true $result = Str::of('{"first": "John", "last": "Doe"}')->isJson(); // true $result = Str::of('{first: "John", last: "Doe"}')->isJson(); // false
isUlid
متد
isUlid
تعیین می کند که آیا یک رشته داده شده یک ULID است یا خیر:
use Illuminate\Support\Str; $result = Str::of('01gd6r360bp37zj17nxb55yv40')->isUlid(); // true $result = Str::of('Taylor')->isUlid(); // false
isUuid
این
isUuid
روش تعیین می کند که آیا یک رشته داده شده یک UUID است یا خیر:
use Illuminate\Support\Str; $result = Str::of('5ace9ab9-e9cf-4ec6-a19d-5881212a452c')->isUuid(); // true $result = Str::of('Taylor')->isUuid(); // false
kebab
متد
kebab
رشته داده شده را به
kebab-case
:
use Illuminate\Support\Str; $converted = Str::of('fooBar')->kebab(); // foo-bar
lcfirst
متد
lcfirst
رشته داده شده را با اولین کاراکتر کوچک برمی گرداند:
use Illuminate\Support\Str; $string = Str::of('Foo Bar')->lcfirst(); // foo Bar
length
متد
length
طول رشته داده شده را برمی گرداند:
use Illuminate\Support\Str; $length = Str::of('Laravel')->length(); // 7
limit
متد
limit
رشته داده شده را به طول مشخص شده کوتاه می کند:
use Illuminate\Support\Str; $truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20); // The quick brown fox...
همچنین می توانید یک آرگومان دوم برای تغییر رشته ای که به انتهای رشته کوتاه شده اضافه می شود، ارسال کنید:
use Illuminate\Support\Str; $truncated = Str::of('The quick brown fox jumps over the lazy dog')->limit(20, ' (...)'); // The quick brown fox (...)
lower
متد
lower
رشته داده شده را به حروف کوچک تبدیل می کند:
use Illuminate\Support\Str; $result = Str::of('LARAVEL')->lower(); // 'laravel'
ltrim
این
ltrim
روش سمت چپ رشته را برش می دهد:
use Illuminate\Support\Str; $string = Str::of(' Laravel ')->ltrim(); // 'Laravel ' $string = Str::of('/Laravel/')->ltrim('/'); // 'Laravel/'
markdown
این
markdown
روش Markdown با طعم GitHub را به HTML تبدیل می کند:
use Illuminate\Support\Str; $html = Str::of('# Laravel')->markdown(); // <h1>Laravel</h1> $html = Str::of('# Taylor <b>Otwell</b>')->markdown([ 'html_input' => 'strip',]); // <h1>Taylor Otwell</h1>
mask
این
mask
روش بخشی از یک رشته را با یک کاراکتر تکراری ماسک می کند و ممکن است برای
مبهم کردن بخش هایی از رشته ها مانند آدرس ایمیل و شماره تلفن استفاده شود:
use Illuminate\Support\Str; $string = Str::of('taylor@example.com')->mask('*', 3); // tay***************
در صورت نیاز، می توانید اعداد منفی را به عنوان آرگومان سوم یا چهارم به
mask
متد ارائه دهید، که به متد دستور می دهد تا در فاصله مشخص شده از انتهای
رشته، ماسک کردن را آغاز کند:
$string = Str::of('taylor@example.com')->mask('*', -15, 3); // tay***@example.com $string = Str::of('taylor@example.com')->mask('*', 4, -4); // tayl**********.com
match
متد
match
بخشی از یک رشته را برمی گرداند که با الگوی عبارت منظم داده شده مطابقت
دارد:
use Illuminate\Support\Str; $result = Str::of('foo bar')->match('/bar/'); // 'bar' $result = Str::of('foo bar')->match('/foo (.*)/'); // 'bar'
matchAll
این
matchAll
متد مجموعهای حاوی بخشهایی از یک رشته را برمیگرداند که با الگوی عبارت
منظم داده شده مطابقت دارد:
use Illuminate\Support\Str; $result = Str::of('bar foo bar')->matchAll('/bar/'); // collect(['bar', 'bar'])
اگر یک گروه منطبق را در عبارت مشخص کنید، لاراول مجموعه ای از مطابقت های آن گروه را برمی گرداند:
use Illuminate\Support\Str; $result = Str::of('bar fun bar fly')->matchAll('/f(\w*)/'); // collect(['un', 'ly']);
اگر هیچ منطبقی پیدا نشد، یک مجموعه خالی برگردانده خواهد شد.
newLine
این
newLine
روش یک کاراکتر "انتهای خط" را به یک رشته اضافه می کند:
use Illuminate\Support\Str; $padded = Str::of('Laravel')->newLine()->append('Framework'); // 'Laravel// Framework'
padBoth
این
padBoth
روش تابع PHP را بسته بندی می کند
str_pad
و هر دو طرف یک رشته را با یک رشته دیگر اضافه می کند تا اینکه رشته نهایی
به طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::of('James')->padBoth(10, '_'); // '__James___' $padded = Str::of('James')->padBoth(10); // ' James '
padLeft
این
padLeft
روش تابع PHP را پیچیده میکند
str_pad
و سمت چپ یک رشته را با یک رشته دیگر اضافه میکند تا اینکه رشته نهایی به
طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::of('James')->padLeft(10, '-='); // '-=-=-James' $padded = Str::of('James')->padLeft(10); // ' James'
padRight
این
padRight
روش تابع PHP را پیچیده میکند
str_pad
و سمت راست یک رشته را با یک رشته دیگر اضافه میکند تا اینکه رشته نهایی به
طول دلخواه برسد:
use Illuminate\Support\Str; $padded = Str::of('James')->padRight(10, '-'); // 'James-----' $padded = Str::of('James')->padRight(10); // 'James '
pipe
این
pipe
روش به شما امکان می دهد رشته را با ارسال مقدار فعلی آن به قابل فراخوانی
داده شده تبدیل کنید:
use Illuminate\Support\Str; $hash = Str::of('Laravel')->pipe('md5')->prepend('Checksum: '); // 'Checksum: a5c95b86291ea299fcbe64458ed12702' $closure = Str::of('foo')->pipe(function ($str) { return 'bar';}); // 'bar'
plural
این
plural
روش یک رشته کلمه مفرد را به شکل جمع آن تبدیل می کند. این تابع از
هر یک از زبان های پشتیبانی شده توسط پلورالیزر لاراول
پشتیبانی می کند :
use Illuminate\Support\Str; $plural = Str::of('car')->plural(); // cars $plural = Str::of('child')->plural(); // children
می توانید یک عدد صحیح به عنوان آرگومان دوم برای تابع برای بازیابی شکل مفرد یا جمع رشته ارائه دهید:
use Illuminate\Support\Str; $plural = Str::of('child')->plural(2); // children $plural = Str::of('child')->plural(1); // child
prepend
متد
prepend
مقادیر داده شده را به رشته اضافه می کند:
use Illuminate\Support\Str; $string = Str::of('Framework')->prepend('Laravel '); // Laravel Framework
remove
متد
remove
مقدار داده شده یا آرایه مقادیر را از رشته حذف می کند:
use Illuminate\Support\Str; $string = Str::of('Arkansas is quite beautiful!')->remove('quite'); // Arkansas is beautiful!
شما همچنین می توانید
false
به عنوان پارامتر دوم برای نادیده گرفتن حروف بزرگ هنگام حذف رشته ها ارسال
کنید.
replace
متد
replace
یک رشته داده شده را در رشته جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::of('Laravel 6.x')->replace('6.x', '7.x'); // Laravel 7.x
replaceArray
این
replaceArray
روش با استفاده از یک آرایه، مقدار داده شده را در رشته جایگزین می کند:
use Illuminate\Support\Str; $string = 'The event will take place between ? and ?'; $replaced = Str::of($string)->replaceArray('?', ['8:30', '9:00']); // The event will take place between 8:30 and 9:00
replaceFirst
متد
replaceFirst
اولین وقوع یک مقدار داده شده را در یک رشته جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceFirst('the', 'a'); // a quick brown fox jumps over the lazy dog
replaceLast
متد
replaceLast
آخرین وقوع یک مقدار داده شده را در یک رشته جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::of('the quick brown fox jumps over the lazy dog')->replaceLast('the', 'a'); // the quick brown fox jumps over a lazy dog
replaceMatches
این
replaceMatches
روش تمام بخش های یک رشته را که با یک الگو مطابقت دارد با رشته جایگزین
داده شده جایگزین می کند:
use Illuminate\Support\Str; $replaced = Str::of('(+1) 501-555-1000')->replaceMatches('/[^A-Za-z0-9]++/', '') // '15015551000'
این
replaceMatches
روش همچنین بستهای را میپذیرد که با هر بخش از رشته مطابق با الگوی داده
شده فراخوانی میشود و به شما امکان میدهد منطق جایگزینی را در بسته شدن انجام دهید و مقدار جایگزین شده را
برگردانید:
use Illuminate\Support\Str; $replaced = Str::of('123')->replaceMatches('/\d/', function ($match) { return '['.$match[0].']';}); // '[1][2][3]'
rtrim
متد
rtrim
سمت راست رشته داده شده را برش می دهد:
use Illuminate\Support\Str; $string = Str::of(' Laravel ')->rtrim(); // ' Laravel' $string = Str::of('/Laravel/')->rtrim('/'); // '/Laravel'
scan
متد
scan
ورودی را از یک رشته به یک مجموعه بر اساس فرمتی که توسط
sscanf
تابع PHP
پشتیبانی می شود تجزیه می کند :
use Illuminate\Support\Str; $collection = Str::of('filename.jpg')->scan('%[^.].%s'); // collect(['filename', 'jpg'])
singular
این
singular
روش یک رشته را به شکل تکی آن تبدیل می کند. این تابع از
هر یک از زبان های پشتیبانی شده توسط پلورالیزر لاراول
پشتیبانی می کند :
use Illuminate\Support\Str; $singular = Str::of('cars')->singular(); // car $singular = Str::of('children')->singular(); // child
slug
این
slug
روش یک URL دوستدار "slug" از رشته داده شده ایجاد می کند:
use Illuminate\Support\Str; $slug = Str::of('Laravel Framework')->slug('-'); // laravel-framework
snake
متد
snake
رشته داده شده را به
snake_case
:
use Illuminate\Support\Str; $converted = Str::of('fooBar')->snake(); // foo_bar
split
این
split
روش یک رشته را با استفاده از یک عبارت منظم به یک مجموعه تقسیم می کند:
use Illuminate\Support\Str; $segments = Str::of('one, two, three')->split('/[\s,]+/'); // collect(["one", "two", "three"])
squish
این
squish
روش تمام فضای سفید اضافی را از یک رشته حذف می کند، از جمله فضای سفید
خارجی بین کلمات:
use Illuminate\Support\Str; $string = Str::of(' laravel framework ')->squish(); // laravel framework
start
این
start
متد در صورتی که از قبل با آن مقدار شروع نشده باشد، یک نمونه واحد از مقدار
داده شده را به رشته اضافه می کند:
use Illuminate\Support\Str; $adjusted = Str::of('this/string')->start('/'); // /this/string $adjusted = Str::of('/this/string')->start('/'); // /this/string
startsWith
متد
startsWith
تعیین می کند که آیا رشته داده شده با مقدار داده شده شروع می شود:
use Illuminate\Support\Str; $result = Str::of('This is my name')->startsWith('This'); // true
studly
متد
studly
رشته داده شده را به
StudlyCase
:
use Illuminate\Support\Str; $converted = Str::of('foo_bar')->studly(); // FooBar
substr
متد
substr
بخشی از رشته را که توسط پارامترهای شروع و طول مشخص شده برمی گرداند:
use Illuminate\Support\Str; $string = Str::of('Laravel Framework')->substr(8); // Framework $string = Str::of('Laravel Framework')->substr(8, 5); // Frame
substrReplace
این
substrReplace
متد متن را در قسمتی از رشته جایگزین میکند و از موقعیتی که توسط آرگومان
دوم مشخص شده شروع میشود و تعداد کاراکترهای مشخصشده توسط آرگومان سوم را جایگزین میکند. با ارسال
0
به آرگومان سوم متد، رشته را در موقعیت مشخص شده بدون جایگزینی هیچ یک از
کاراکترهای موجود در رشته وارد می کند:
use Illuminate\Support\Str; $string = Str::of('1300')->substrReplace(':', 2); // 13: $string = Str::of('The Framework')->substrReplace(' Laravel', 3, 0); // The Laravel Framework
swap
این روش با استفاده از
تابع
swap
PHP چندین مقدار را در رشته جایگزین می کند :
strtr
use Illuminate\Support\Str; $string = Str::of('Tacos are great!') ->swap([ 'Tacos' => 'Burritos', 'great' => 'fantastic', ]); // Burritos are fantastic!
tap
این
tap
روش رشته را به بسته داده شده منتقل می کند و به شما امکان می دهد رشته را
بررسی کرده و با آن تعامل داشته باشید در حالی که روی خود رشته تأثیر نمی گذارد. رشته اصلی با
tap
روش برگردانده می شود بدون توجه به آنچه که با بسته شدن بازگردانده می شود:
use Illuminate\Support\Str; $string = Str::of('Laravel') ->append(' Framework') ->tap(function ($string) { dump('String after append: '.$string); }) ->upper(); // LARAVEL FRAMEWORK
test
این
test
روش تعیین می کند که آیا یک رشته با الگوی عبارت منظم داده شده مطابقت دارد
یا خیر:
use Illuminate\Support\Str; $result = Str::of('Laravel Framework')->test('/Laravel/'); // true
title
متد
title
رشته داده شده را به
Title Case
:
use Illuminate\Support\Str; $converted = Str::of('a nice title uses the correct case')->title(); // A Nice Title Uses The Correct Case
trim
متد
trim
رشته داده شده را برش می دهد:
use Illuminate\Support\Str; $string = Str::of(' Laravel ')->trim(); // 'Laravel' $string = Str::of('/Laravel/')->trim('/'); // 'Laravel'
ucfirst
متد
ucfirst
رشته داده شده را با حروف بزرگ برمی گرداند:
use Illuminate\Support\Str; $string = Str::of('foo bar')->ucfirst(); // Foo bar
ucsplit
این
ucsplit
روش رشته داده شده را با حروف بزرگ به مجموعه ای تقسیم می کند:
use Illuminate\Support\Str; $string = Str::of('Foo Bar')->ucsplit(); // collect(['Foo', 'Bar'])
upper
متد
upper
رشته داده شده را به حروف بزرگ تبدیل می کند:
use Illuminate\Support\Str; $adjusted = Str::of('laravel')->upper(); // LARAVEL
when
این
when
روش بسته شدن داده شده را در صورتی فراخوانی می کند که یک شرط معین باشد
true
. بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('Taylor') ->when(true, function ($string) { return $string->append(' Otwell'); }); // 'Taylor Otwell'
در صورت لزوم، می توانید یک بسته دیگر را به عنوان پارامتر سوم به
when
روش ارسال کنید. این بسته شدن در صورتی اجرا می شود که پارامتر شرط به
false
.
whenContains
whenContains
اگر رشته حاوی مقدار داده شده باشد، متد بسته شدن داده شده را فراخوانی می
کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('tony stark') ->whenContains('tony', function ($string) { return $string->title(); }); // 'Tony Stark'
در صورت لزوم، می توانید یک بسته دیگر را به عنوان پارامتر سوم به
when
روش ارسال کنید. اگر رشته حاوی مقدار داده شده نباشد، این بسته اجرا می شود.
همچنین میتوانید آرایهای از مقادیر را ارسال کنید تا تعیین کنید آیا رشته داده شده حاوی هر یک از مقادیر آرایه است یا خیر:
use Illuminate\Support\Str; $string = Str::of('tony stark') ->whenContains(['tony', 'hulk'], function ($string) { return $string->title(); }); // Tony Stark
whenContainsAll
whenContainsAll
اگر رشته شامل تمام رشته های فرعی داده شده باشد، متد بسته شدن داده شده را
فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('tony stark') ->whenContainsAll(['tony', 'stark'], function ($string) { return $string->title(); }); // 'Tony Stark'
در صورت لزوم، می توانید یک بسته دیگر را به عنوان پارامتر سوم به
when
روش ارسال کنید. این بسته شدن در صورتی اجرا می شود که پارامتر شرط به
false
.
whenEmpty
whenEmpty
اگر رشته خالی باشد، متد بسته شدن داده شده را فراخوانی می کند
.
اگر بسته شدن مقداری را برگرداند، آن مقدار نیز با
whenEmpty
روش برگردانده می شود. اگر بسته شدن مقداری برنگرداند، نمونه رشته روان
برگردانده میشود:
use Illuminate\Support\Str; $string = Str::of(' ')->whenEmpty(function ($string) { return $string->trim()->prepend('Laravel');}); // 'Laravel'
whenNotEmpty
whenNotEmpty
اگر رشته خالی نباشد، متد بسته شدن داده شده را فراخوانی می کند
.
اگر بسته شدن مقداری را برگرداند، آن مقدار نیز با
whenNotEmpty
روش برگردانده می شود. اگر بسته شدن مقداری برنگرداند، نمونه رشته روان
برگردانده میشود:
use Illuminate\Support\Str; $string = Str::of('Framework')->whenNotEmpty(function ($string) { return $string->prepend('Laravel ');}); // 'Laravel Framework'
whenStartsWith
whenStartsWith
اگر رشته با رشته فرعی داده شده شروع شود، روش بسته شدن داده شده را
فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('disney world')->whenStartsWith('disney', function ($string) { return $string->title();}); // 'Disney World'
whenEndsWith
whenEndsWith
اگر رشته با رشته فرعی داده شده به پایان برسد،
این روش بسته شدن داده شده را فراخوانی می کند.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('disney world')->whenEndsWith('world', function ($string) { return $string->title();}); // 'Disney World'
whenExactly
whenExactly
اگر رشته دقیقاً با رشته داده شده مطابقت داشته باشد، متد بسته شدن داده شده
را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('laravel')->whenExactly('laravel', function ($string) { return $string->title();}); // 'Laravel'
whenNotExactly
whenNotExactly
اگر رشته دقیقاً با رشته داده شده مطابقت نداشته باشد، روش بسته شدن داده
شده را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('framework')->whenNotExactly('laravel', function ($string) { return $string->title();}); // 'Framework'
whenIs
whenIs
اگر رشته با الگوی داده شده مطابقت داشته باشد، روش بسته شدن داده شده را
فراخوانی می کند
.
ستاره ها ممکن است به عنوان مقادیر عام استفاده شوند. بسته شدن نمونه رشته
روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('foo/bar')->whenIs('foo/*', function ($string) { return $string->append('/baz');}); // 'foo/bar/baz'
whenIsAscii
whenIsAscii
اگر رشته ASCII 7 بیتی باشد، روش بسته شدن داده شده را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('laravel')->whenIsAscii(function ($string) { return $string->title();}); // 'Laravel'
whenIsUlid
whenIsUlid
اگر رشته یک ULID معتبر باشد، متد بسته شدن داده شده را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('01gd6r360bp37zj17nxb55yv40')->whenIsUlid(function ($string) { return $string->substr(0, 8);}); // '01gd6r36'
whenIsUuid
whenIsUuid
اگر رشته یک UUID معتبر باشد، روش بسته شدن داده شده را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('a0a2a2d2-0b87-4a18-83f2-2529882be2de')->whenIsUuid(function ($string) { return $string->substr(0, 8);}); // 'a0a2a2d2'
whenTest
whenTest
اگر رشته با عبارت منظم داده شده مطابقت داشته باشد، متد بسته شدن داده شده
را فراخوانی می کند
.
بسته شدن نمونه رشته روان را دریافت می کند:
use Illuminate\Support\Str; $string = Str::of('laravel framework')->whenTest('/laravel/', function ($string) { return $string->title();}); // 'Laravel Framework'
wordCount
متد
wordCount
تعداد کلماتی را که یک رشته شامل می شود برمی گرداند:
use Illuminate\Support\Str; Str::of('Hello, world!')->wordCount(); // 2
words
این
words
روش تعداد کلمات یک رشته را محدود می کند. در صورت لزوم، می توانید یک رشته
اضافی را مشخص کنید که به رشته کوتاه شده اضافه می شود:
use Illuminate\Support\Str; $string = Str::of('Perfectly balanced, as all things should be.')->words(3, ' >>>'); // Perfectly balanced, as >>>
URL ها
action()
تابع
action
یک URL برای عملکرد کنترلر داده شده ایجاد می کند:
use App\Http\Controllers\HomeController; $url = action([HomeController::class, 'index']);
اگر متد پارامترهای مسیر را بپذیرد، می توانید آنها را به عنوان آرگومان دوم به متد ارسال کنید:
$url = action([UserController::class, 'profile'], ['id' => 1]);
asset()
این
asset
تابع با استفاده از طرح فعلی درخواست (HTTP یا HTTPS)، یک URL برای یک
دارایی ایجاد می کند:
$url = asset('img/photo.jpg');
میتوانید میزبان URL دارایی را با تنظیم
ASSET_URL
متغیر در
.env
فایل خود پیکربندی کنید. اگر دارایی های خود را روی یک سرویس خارجی مانند
آمازون S3 یا CDN دیگری میزبانی کنید، می تواند مفید باشد:
// ASSET_URL=http://example.com/assets $url = asset('img/photo.jpg'); // http://example.com/assets/img/photo.jpg
route()
تابع
route
یک URL برای یک
مسیر با نام
مشخص تولید می کند :
$url = route('route.name');
اگر مسیر پارامترها را می پذیرد، می توانید آنها را به عنوان آرگومان دوم به تابع ارسال کنید:
$url = route('route.name', ['id' => 1]);
به طور پیش فرض،
route
تابع یک URL مطلق تولید می کند. اگر می خواهید یک URL نسبی ایجاد کنید، می
توانید
false
به عنوان آرگومان سوم به تابع ارسال کنید:
$url = route('route.name', ['id' => 1], false);
secure_asset()
تابع
secure_asset
با استفاده از HTTPS یک URL برای یک دارایی ایجاد می کند:
$url = secure_asset('img/photo.jpg');
secure_url()
تابع
secure_url
یک URL HTTPS کاملا واجد شرایط به مسیر داده شده تولید می کند. بخشهای URL
اضافی ممکن است در آرگومان دوم تابع ارسال شوند:
$url = secure_url('user/profile'); $url = secure_url('user/profile', [1]);
to_route()
تابع
to_route
یک
پاسخ HTTP تغییر مسیر را
برای یک
مسیر با نام
مشخص تولید می کند :
return to_route('users.show', ['user' => 1]);
در صورت لزوم، می توانید کد وضعیت HTTP را که باید به ریدایرکت اختصاص داده
شود و هر سرصفحه پاسخ اضافی به عنوان آرگومان سوم و چهارم به متد ارسال کنید
to_route
:
return to_route('users.show', ['user' => 1], 302, ['X-Framework' => 'Laravel']);
url()
تابع
url
یک URL کاملا واجد شرایط برای مسیر داده شده ایجاد می کند:
$url = url('user/profile'); $url = url('user/profile', [1]);
اگر مسیری ارائه نشده باشد، یک
Illuminate\Routing\UrlGenerator
نمونه برگردانده می شود:
$current = url()->current(); $full = url()->full(); $previous = url()->previous();
متفرقه
abort()
این
abort
تابع
یک استثنای HTTP ایجاد می کند که توسط
کنترل کننده استثنا
ارائه می شود
:
abort(403);
همچنین میتوانید پیام استثنا و سرصفحههای پاسخ HTTP سفارشی را که باید به مرورگر ارسال شود ارائه دهید:
abort(403, 'Unauthorized.', $headers);
abort_if()
abort_if
اگر یک عبارت بولی داده شده به صورت زیر ارزیابی شود، تابع یک استثنا HTTP
ایجاد می
کند
true
:
abort_if(! Auth::user()->isAdmin(), 403);
مانند
abort
روش، میتوانید متن پاسخ استثنا را به عنوان آرگومان سوم و آرایهای از
سرصفحههای پاسخ سفارشی را به عنوان آرگومان چهارم برای تابع ارائه دهید.
abort_unless()
abort_unless
اگر یک عبارت بولی داده شده به صورت زیر ارزیابی شود، تابع یک استثنا HTTP
ایجاد می
کند
false
:
abort_unless(Auth::user()->isAdmin(), 403);
مانند
abort
روش، میتوانید متن پاسخ استثنا را به عنوان آرگومان سوم و آرایهای از
سرصفحههای پاسخ سفارشی را به عنوان آرگومان چهارم برای تابع ارائه دهید.
app()
تابع نمونه
کانتینر سرویس
app
را برمی گرداند
:
$container = app();
می توانید یک کلاس یا نام رابط را برای حل آن از کانتینر ارسال کنید:
$api = app('HelpSpot\API');
auth()
تابع
auth
یک نمونه
احراز هویت کننده
را برمی گرداند . می توانید از آن به عنوان جایگزینی برای
Auth
نما استفاده کنید:
$user = auth()->user();
در صورت نیاز، می توانید مشخص کنید که به کدام نمونه نگهبان می خواهید دسترسی داشته باشید:
$user = auth('admin')->user();
back()
این
back
تابع یک
پاسخ HTTP تغییر مسیر
به مکان قبلی کاربر ایجاد می کند:
return back($status = 302, $headers = [], $fallback = '/'); return back();
bcrypt()
تابع
با استفاده از Bcrypt مقدار داده شده را
هش می کند
bcrypt
.
می توانید از این عملکرد به عنوان جایگزینی برای
نما استفاده کنید:
Hash
$password = bcrypt('my-secret-password');
blank()
تابع
blank
تعیین می کند که آیا مقدار داده شده "خالی" است:
blank('');blank(' ');blank(null);blank(collect()); // true blank(0);blank(true);blank(false); // false
برای معکوس
blank
،
filled
روش را ببینید.
broadcast()
تابع
رویداد
داده شده را برای
broadcast
شنوندگان
خود
پخش می کند :
broadcast(new UserRegistered($user)); broadcast(new UserRegistered($user))->toOthers();
cache()
این
cache
تابع ممکن است برای دریافت مقادیر از
حافظه پنهان
استفاده شود . اگر کلید داده شده در حافظه پنهان وجود نداشته باشد، یک
مقدار پیش فرض اختیاری برگردانده می شود:
$value = cache('key'); $value = cache('key', 'default');
میتوانید با ارسال آرایهای از جفتهای کلید/مقدار به تابع، موارد را به حافظه پنهان اضافه کنید. همچنین باید تعداد ثانیه ها یا مدت زمانی را که مقدار کش شده باید معتبر در نظر گرفته شود، بگذرانید:
cache(['key' => 'value'], 300); cache(['key' => 'value'], now()->addSeconds(10));
class_uses_recursive()
این
class_uses_recursive
تابع تمام صفات استفاده شده توسط یک کلاس، از جمله صفات استفاده شده توسط
تمام کلاس های والد آن را برمی گرداند:
$traits = class_uses_recursive(App\Models\User::class);
collect()
تابع
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()
تابع
csrf_field
یک فیلد ورودی HTML
hidden
حاوی مقدار توکن CSRF تولید می کند. به عنوان مثال، با استفاده از
دستور Blade
:
{{ csrf_field() }}
csrf_token()
تابع
csrf_token
مقدار توکن CSRF فعلی را بازیابی می کند:
$token = csrf_token();
decrypt()
تابع
مقدار داده شده را
رمزگشایی می کند
decrypt
.
می توانید از این عملکرد به عنوان جایگزینی برای
نما استفاده کنید:
Crypt
$password = decrypt($value);
dd()
تابع
dd
متغیرهای داده شده را تخلیه می کند و اجرای اسکریپت را پایان می دهد:
dd($value); dd($value1, $value2, $value3, ...);
اگر نمی خواهید اجرای اسکریپت خود را متوقف کنید،
dump
به جای آن از تابع استفاده کنید.
dispatch()
تابع
کار
dispatch
داده شده را به
صف کار
لاراول فشار می دهد
:
dispatch(new App\Jobs\SendEmails);
dump()
تابع
dump
متغیرهای داده شده را تخلیه می کند:
dump($value); dump($value1, $value2, $value3, ...);
اگر می خواهید پس از حذف متغیرها اجرای اسکریپت را متوقف کنید،
dd
به جای آن از تابع استفاده کنید.
encrypt()
تابع
مقدار داده شده را
رمزگذاری می کند
encrypt
.
می توانید از این عملکرد به عنوان جایگزینی برای
نما استفاده کنید:
Crypt
$secret = encrypt('my-secret-value');
env()
تابع
env
مقدار یک
متغیر محیطی
را بازیابی می کند یا یک مقدار پیش فرض را برمی گرداند:
$env = env('APP_ENV'); $env = env('APP_ENV', 'production');
اگر فرمان را در طول فرآیند استقرار خود اجرا می کنید
config:cache
، باید مطمئن باشید کهenv
تابع را فقط از داخل فایل های پیکربندی خود فراخوانی می کنید. هنگامی که پیکربندی کش شد،.env
فایل بارگیری نمیشود و همه تماسهای تابعenv
برمیگردندnull
.
event()
تابع
رویداد
event
داده شده را
به شنوندگان خود ارسال می کند:
event(new UserRegistered($user));
fake()
این
fake
تابع یک
Faker
singleton را از ظرف جدا میکند، که میتواند هنگام ایجاد دادههای جعلی در
کارخانههای مدل، کاشت پایگاه داده، آزمایشها و نماهای نمونهسازی مفید باشد:
@for($i = 0; $i < 10; $i++) <dl> <dt>Name</dt> <dd>{{ fake()->name() }}</dd> <dt>Email</dt> <dd>{{ fake()->unique()->safeEmail() }}</dd> </dl>@endfor
به طور پیش فرض، تابع از گزینه پیکربندی در
فایل پیکربندی
شما
fake
استفاده می کند .
با این حال، شما همچنین می توانید محلی را با ارسال آن به
تابع مشخص کنید. هر محلی یک تکتن جداگانه را حل میکند:
app.faker_locale
config/app.php
fake
fake('nl_NL')->name()
filled()
تابع
filled
تعیین می کند که آیا مقدار داده شده "خالی" نیست:
filled(0);filled(true);filled(false); // true filled('');filled(' ');filled(null);filled(collect()); // false
برای معکوس
filled
،
blank
روش را ببینید.
info()
تابع اطلاعات را در
گزارش
info
برنامه شما می نویسد
:
info('Some helpful information!');
آرایه ای از داده های متنی نیز ممکن است به تابع ارسال شود:
info('User login attempt failed.', ['id' => $user->id]);
logger()
از این تابع می توان برای نوشتن یک
پیام سطح به
گزارش
logger
استفاده کرد
:
debug
logger('Debug message');
آرایه ای از داده های متنی نیز ممکن است به تابع ارسال شود:
logger('User has logged in.', ['id' => $user->id]);
اگر مقداری به تابع ارسال نشود، یک نمونه لاگر برگردانده می شود:
logger()->error('You are not allowed here.');
method_field()
این
method_field
تابع یک فیلد ورودی HTML
hidden
حاوی مقدار جعلی فعل HTTP فرم تولید می کند. به عنوان مثال، با استفاده از
دستور Blade
:
<form method="POST"> {{ method_field('DELETE') }}</form>
now()
تابع
now
یک نمونه جدید
Illuminate\Support\Carbon
برای زمان فعلی ایجاد می کند:
$now = now();
old()
تابع
یک مقدار
ورودی قدیمی
فلش شده در جلسه
old
را
بازیابی می کند :
$value = old('value'); $value = old('value', 'default');
از آنجایی که «مقدار پیشفرض» ارائهشده بهعنوان آرگومان دوم برای تابع،
old
اغلب ویژگی یک مدل Eloquent است، لاراول به شما اجازه میدهد تا به سادگی کل
مدل Eloquent را بهعنوان آرگومان دوم به تابع منتقل کنید
old
. هنگام انجام این کار، لاراول فرض می کند اولین آرگومان ارائه شده به
old
تابع، نام ویژگی Eloquent است که باید به عنوان "مقدار پیش فرض" در نظر
گرفته شود:
{{ old('name', $user->name) }} // Is equivalent to... {{ old('name', $user) }}
optional()
تابع
optional
هر آرگومان را می پذیرد و به شما امکان می دهد به ویژگی ها یا فراخوانی
متدهای آن شیء دسترسی داشته باشید. اگر شی داده شده باشد ، خواص و متدها
به جای ایجاد خطا
null
برمی گردند :
null
return optional($user->address)->street; {!! old('name', optional($user)->name) !!}
تابع
optional
همچنین بسته شدن را به عنوان آرگومان دوم خود می پذیرد. اگر مقدار ارائه شده
به عنوان آرگومان اول تهی نباشد، بسته شدن فراخوانی می شود:
return optional(User::find($id), function ($user) { return $user->name;});
policy()
متد
policy
یک نمونه
سیاست
را برای یک کلاس مشخص بازیابی می کند:
$policy = policy(App\Models\User::class);
redirect()
تابع یک
پاسخ HTTP ریدایرکت را
redirect
برمیگرداند
، یا اگر بدون آرگومان فراخوانی شود، نمونه redirector را برمیگرداند:
return redirect($to = null, $status = 302, $headers = [], $https = null); return redirect('/home'); return redirect()->route('route.name');
report()
تابع با استفاده از
کنترل کننده استثنای
report
شما یک استثنا را گزارش می کند
:
report($e);
تابع
report
همچنین یک رشته را به عنوان آرگومان می پذیرد. هنگامی که یک رشته به تابع
داده می شود، تابع یک استثنا با رشته داده شده به عنوان پیام خود ایجاد می کند:
report('Something went wrong.');
report_if()
در صورتی که شرط داده شده به صورت زیر باشد،
تابع با استفاده از
کنترل کننده استثنا
report_if
شما یک استثنا را گزارش می کند
:
true
report_if($shouldReport, $e); report_if($shouldReport, 'Something went wrong.');
report_unless()
در صورتی که شرط داده شده به صورت زیر باشد،
تابع با استفاده از
کنترل کننده استثنا
report_unless
شما یک استثنا را گزارش می کند
:
false
report_unless($reportingDisabled, $e); report_unless($reportingDisabled, 'Something went wrong.');
request()
تابع نمونه
درخواست
request
فعلی را برمی گرداند
یا مقدار یک فیلد ورودی را از درخواست فعلی بدست می آورد:
$request = request(); $value = request('key', $default);
rescue()
تابع
rescue
بسته بندی داده شده را اجرا می کند و هر استثنایی را که در طول اجرای آن رخ
می دهد را می گیرد. تمام استثناهایی که به دست می آیند به
کنترل کننده استثنای
شما ارسال می شوند
. با این حال، درخواست به پردازش ادامه خواهد داد:
return rescue(function () { return $this->method();});
همچنین می توانید آرگومان دوم را به
rescue
تابع ارسال کنید. این آرگومان مقدار «پیشفرض» خواهد بود که در صورت بروز
استثنا در حین اجرای بسته شدن باید برگردانده شود:
return rescue(function () { return $this->method();}, false); return rescue(function () { return $this->method();}, function () { return $this->failure();});
resolve()
این
resolve
تابع یک کلاس یا نام واسط معین را به یک نمونه با استفاده از
کانتینر سرویس
حل می کند :
$api = resolve('HelpSpot\API');
response()
تابع
response
یک نمونه
پاسخ
ایجاد می کند یا نمونه ای از کارخانه پاسخ را به دست می آورد:
return response('Hello World', 200, $headers); return response()->json(['foo' => 'bar'], 200, $headers);
retry()
تابع
retry
تلاش می کند تا زمانی که آستانه حداکثر تلاش داده شده برآورده شود، پاسخ
تماس داده شده را اجرا کند. اگر فراخوانی استثنایی ایجاد نکند، مقدار بازگشتی آن برگردانده خواهد شد. اگر پاسخ
تماس یک استثنا ایجاد کند، به طور خودکار دوباره امتحان می شود. اگر از حداکثر تعداد تلاش فراتر رود، استثنا
ایجاد می شود:
return retry(5, function () { // Attempt 5 times while resting 100ms between attempts...}, 100);
اگر میخواهید تعداد میلیثانیههای خواب بین تلاشها را به صورت دستی
محاسبه کنید، میتوانید یک بسته را به عنوان آرگومان سوم به تابع ارسال کنید
retry
:
return retry(5, function () { // ...}, function ($attempt, $exception) { return $attempt * 100;});
برای راحتی، ممکن است یک آرایه به عنوان اولین آرگومان برای
retry
تابع ارائه کنید. این آرایه برای تعیین چند میلی ثانیه خواب بین تلاش های
بعدی استفاده می شود:
return retry([100, 200], function () { // Sleep for 100ms on first retry, 200ms on second retry...});
فقط برای تلاش مجدد در شرایط خاص، می توانید یک بسته را به عنوان آرگومان
چهارم به
retry
تابع ارسال کنید:
return retry(5, function () { // ...}, 100, function ($exception) { return $exception instanceof RetryException;});
session()
این
session
تابع ممکن است برای دریافت یا تنظیم
مقادیر
جلسه استفاده شود:
$value = session('key');
شما می توانید مقادیر را با ارسال یک آرایه از جفت کلید / مقدار به تابع تنظیم کنید:
session(['chairs' => 7, 'instruments' => 3]);
اگر مقداری به تابع ارسال نشود، Session Store برگردانده خواهد شد:
$value = session()->get('key'); session()->put('key', $value);
tap()
تابع
tap
دو آرگومان را می پذیرد: یک آرگومان دلخواه
$value
و یک آرگومان بسته.
$value
به بسته شدن منتقل می شود و سپس توسط تابع برگردانده می
شود
tap
. ارزش بازگشتی بسته شدن نامربوط است:
$user = tap(User::first(), function ($user) { $user->name = 'taylor'; $user->save();});
اگر هیچ بسته ای به تابع منتقل نشد
tap
، می توانید هر متدی را در داده شده فراخوانی کنید
$value
. مقدار برگشتی متدی که فراخوانی می کنید همیشه خواهد بود
$value
، صرف نظر از اینکه متد در تعریف خود چه چیزی را واقعاً برمی گرداند. برای
مثال، روش Eloquent
update
به طور معمول یک عدد صحیح را برمی گرداند. با این حال، میتوانیم متد را
مجبور کنیم تا با زنجیر کردن
update
فراخوانی متد از طریق
tap
تابع، خود مدل را برگرداند:
$user = tap($user)->update([ 'name' => $name, 'email' => $email,]);
برای افزودن یک
tap
متد به یک کلاس، میتوانید
Illuminate\Support\Traits\Tappable
ویژگی را به کلاس اضافه کنید. روش
tap
این خصیصه یک Close را به عنوان تنها استدلال خود می پذیرد. خود نمونه شی به
Closure ارسال می شود و سپس با
tap
روش زیر برگردانده می شود:
return $user->tap(function ($user) { //});
throw_if()
throw_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()
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.');
today()
تابع
today
یک نمونه جدید
Illuminate\Support\Carbon
برای تاریخ جاری ایجاد می کند:
$today = today();
trait_uses_recursive()
تابع
trait_uses_recursive
تمام صفات استفاده شده توسط یک صفت را برمی گرداند:
$traits = trait_uses_recursive(\Illuminate\Notifications\Notifiable::class);
transform()
transform
اگر مقدار آن
خالی
نباشد، تابع یک بسته را روی یک مقدار مشخص اجرا می کند
و سپس مقدار بازگشتی بسته شدن را برمی گرداند:
$callback = function ($value) { return $value * 2;}; $result = transform(5, $callback); // 10
یک مقدار پیش فرض یا بسته شدن ممکن است به عنوان آرگومان سوم به تابع ارسال شود. اگر مقدار داده شده خالی باشد، این مقدار برگردانده می شود:
$result = transform(null, $callback, 'The value is blank'); // The value is blank
validator()
تابع
با آرگومان های داده شده یک نمونه
اعتبار سنج
validator
جدید ایجاد می کند .
می توانید از آن به عنوان جایگزینی برای
نما استفاده کنید:
Validator
$validator = validator($data, $rules, $messages);
value()
تابع
value
مقدار داده شده را برمی گرداند. با این حال، اگر یک بسته را به تابع ارسال
کنید، بسته شدن اجرا می شود و مقدار بازگشتی آن برگردانده می شود:
$result = value(true); // true $result = value(function () { return false;}); // false
ممکن است آرگومان های اضافی به تابع ارسال شود
value
. اگر آرگومان اول بسته باشد، پارامترهای اضافی به عنوان آرگومان به بسته
شدن منتقل میشوند، در غیر این صورت نادیده گرفته میشوند:
$result = value(function ($name) { return $parameter;}, 'Taylor'); // 'Taylor'
view()
تابع
view
یک نمونه
view را
بازیابی می کند :
return view('auth.login');
with()
تابع
with
مقدار داده شده را برمی گرداند. اگر یک بسته به عنوان آرگومان دوم به تابع
ارسال شود، بسته شدن اجرا می شود و مقدار بازگشتی آن برگردانده می شود:
$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
سایر ابزارهای کمکی
محک زدن
گاهی اوقات ممکن است بخواهید به سرعت عملکرد بخش های خاصی از برنامه خود را
آزمایش کنید. در این مواقع، میتوانید از
Benchmark
کلاس پشتیبانی برای اندازهگیری تعداد میلیثانیهای که برای تکمیل تماسهای
داده شده طول میکشد، استفاده کنید:
<?php use App\Models\User;use Illuminate\Support\Benchmark; Benchmark::dd(fn () => User::find(1)); // 0.1 ms Benchmark::dd([ 'Scenario 1' => fn () => User::count(), // 0.5 ms 'Scenario 2' => fn () => User::all()->count(), // 20.0 ms]);
به طور پیش فرض، تماس های داده شده یک بار (یک بار تکرار) اجرا می شوند و مدت زمان آنها در مرورگر / کنسول نمایش داده می شود.
برای فراخوانی یک فراخوانی بیش از یک بار، میتوانید تعداد تکرارهایی را که
بازخوانی باید به عنوان آرگومان دوم متد فراخوانی شود، مشخص کنید. هنگامی که یک تماس برگشتی بیش از یک بار اجرا
می شود،
Benchmark
کلاس میانگین میلی ثانیه ای را که برای اجرای پاسخ در تمام تکرارها صرف شده
است، برمی گرداند:
Benchmark::dd(fn () => User::count(), iterations: 10); // 0.5 ms
بخت آزمایی
کلاس قرعه کشی لاراول ممکن است برای اجرای callback بر اساس مجموعه ای از شانس های داده شده استفاده شود. این می تواند به ویژه زمانی مفید باشد که شما فقط می خواهید کدی را برای درصدی از درخواست های دریافتی خود اجرا کنید:
use Illuminate\Support\Lottery; Lottery::odds(1, 20) ->winner(fn () => $user->won()) ->loser(fn () => $user->lost()) ->choose();
می توانید کلاس قرعه کشی لاراول را با سایر ویژگی های لاراول ترکیب کنید. برای مثال، ممکن است بخواهید فقط درصد کمی از پرس و جوهای کند را به کنترل کننده استثناء خود گزارش دهید. و از آنجایی که کلاس قرعه کشی قابل فراخوانی است، ممکن است نمونه ای از کلاس را به هر متدی که فراخوانی ها را می پذیرد، ارسال کنیم:
use Carbon\CarbonInterval;use Illuminate\Support\Facades\DB;use Illuminate\Support\Lottery; DB::whenQueryingForLongerThan( CarbonInterval::seconds(2), Lottery::odds(1, 100)->winner(fn () => report('Querying > 2 seconds.')),);
تست لاتاری
لاراول روشهای سادهای را ارائه میکند که به شما امکان میدهد به راحتی درخواستهای قرعهکشی برنامه خود را آزمایش کنید:
// Lottery will always win...Lottery::alwaysWin(); // Lottery will always lose...Lottery::alwaysLose(); // Lottery will win then lose, and finally return to normal behavior...Lottery::fix([true, false]); // Lottery will return to normal behavior...Lottery::determineResultsNormally();