• Czas czytania ~1 min
  • 31.01.2024

Chociaż cecha Dumpable jest technicznie nowa w Laravelu 11, powiedziałbym, że konsoliduje ideę dump() i w cechę dd() wielokrotnego użytku, dzięki czemu klasy nie muszą ręcznie implementować jej osobno. Deweloperzy aplikacji i autorzy pakietów mogą również korzystać z tej nowej illumiate/support cechy, aby łatwo dodawać metody debugowania w klasach łańcuchowych.

W Laravelu 10 już cieszymy się możliwością łączenia w łańcuch w różnych klasach frameworka, takich jak Carbon, , zapytanie Builderi TestResponse:Jednak

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();

w Laravelu 10 dump() metody and dd() zostały stworzone ad hoc w każdej klasie osobno, podczas gdy w Laravelu 11 cały ten kod został skonsolidowany w cechę Dumpable, Stringablektórej możemy użyć w ->dd() ->dump() dowolnej klasie. Oto przykład z klasy Illuminate Carbon w Laravelu 11:

use Illuminate\Support\Traits\Dumpable;

class Carbon extends BaseCarbon
{
    use Conditionable, Dumpable;

    // ...
}

Implementacja wygląda dump() podobnie do poniższej cechy Dumpable. Jedyna różnica polega na dd() tym, że kod zatrzyma wykonywanie i zakończy działanie:

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

    return $this;
}

Pozdrowienia dla Nuno Maduro za zaimplementowanie tej funkcji w Pull Request #47122 w celu oczyszczenia wewnętrznego użycia tych metod, ale także utorowało drogę aplikacjom i pakietom do korzystania z tej cechy.

Comments

No comments yet
Yurij Finiv

Yurij Finiv

Full stack

O

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...

O autorze CrazyBoy49z
WORK EXPERIENCE
Kontakt
Ukraine, Lutsk
+380979856297