• Час читання ~0 хв
  • 31.01.2024

Незважаючи на те, що ця Dumpable риса є технічно новою в Laravel 11, я б сказав, що вона консолідує ідею dump() та dd() функцію багаторазового використання, так що класам не потрібно вручну реалізовувати це окремо. Розробники додатків і автори пакетів також можуть скористатися цією новою illumiate/support рисою, щоб легко додавати методи налагодження в ланцюжкові класи.

У Laravel 10 ми вже насолоджуємося можливістю з'єднувати в ланцюжок в a ->dd() або ->dump() в різні класи фреймворків, такі як Carbon, , запит Builderі :TestResponse

use Illuminate\Support\Carbon;

$time = Carbon::now()
  ->addDay()
  ->addMinute()
  ->addSecond();

// dumping before adding a minute and second
$time = Carbon::now()
  ->addDay()
  ->dump()
  ->addMinute()
  ->dump()
  ->addSecond();

Однак у Laravel 10 dump() методи and dd() були створені ad hoc в кожному класі окремо, тоді як у Laravel 11 весь цей код був об'єднаний у ознаку Dumpable, Stringableяку ми можемо використовувати в будь-якому класі. Ось приклад з класу Illuminate Carbon в Laravel 11:

use Illuminate\Support\Traits\Dumpable;

class Carbon extends BaseCarbon
{
    use Conditionable, Dumpable;

    // ...
}

Реалізація виглядає dump() наступним чином у рисі Dumpable. Єдина відмінність полягає dd() в тому, що код зупинить виконання та завершить роботу:

public function dump(...$args)
{
    dump($this, ...$args);

    return $this;
}

Дякую Нуно Мадуро за реалізацію цієї функції у Запиті на Пул #47122 для очищення внутрішнього використання цих методів, а також проклав шлях для використання цієї риси у додатках та пакунках.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

Про мене

Professional Fullstack Developer with extensive experience in website and desktop application development. Proficient in a wide range of tools and technologies, including Bootstrap, Tailwind, HTML5, CSS3, PUG, JavaScript, Alpine.js, jQuery, PHP, MODX, and Node.js. Skilled in website development using Symfony, MODX, and Laravel. Experience: Contributed to the development and translation of MODX3 i...

Про автора CrazyBoy49z
WORK EXPERIENCE
Контакти
Ukraine, Lutsk
+380979856297