Daha önce Laravel ortamında web yazılımı geliştirmeye atılmışsanız muhtemelen dd fonksiyonuna denk gelmişsinizdir. Bu fonksiyon esasında bir helper konseptinde kullanılan araç gibi diyebiliriz. Object, array gibi dizinleri önizlemek istediğimizde PHP dilinde var_dump print_r gibi komutlar kullanırız. Böylece geliştirdiğimiz uygulama içindeki verilerin kontrollerini, bağlantıları ve şartlarını yazabilir, projemize yön veririz. Fakat Laravel dışında bu komutu kullanmak istediğimizde ne yapmalıyız?

Composer

Composer, PHP ortamında milyonlarca proje başlangıç ayakları, kütüphaneler ve helper’lar barından bir kütüphane yönetim aracıdır . İlk etapta yazılım geliştirme yaptığımız sistemde composer’ı kurmamız gerekli. Eğer bilgisayarınızda composer elementi yüklü değilse yükleyin. Sonrasında proje anadizinimizde CLI ile aşağıdaki komutu giriyoruz.

composer require larapack/dd

Composer’ın vendor klasöründe ürettiği Autoload.php adlı dosya uygulamamızda okutuluyorsa laravel dd fonksiyonumuz da aktif olacak demektir.

Laravel dd Kullanım Örneği

Composer ile larapack/dd kurulumunu tamamladıktan sonra dd fonksiyonunu basitçe kullanabilirsiniz. Print_r veya var_dump’a nazaran açılıp kapanabilir ve veritiplerinin gösterildiği, arayüzlü bir veri ağacı önizleyici olarak dd fonksiyonu göreve hazır.

İşin Derini

Şimdi biraz derinlere inip bu komutun esasında neler yaptığına bakalım.

vendor/larapack/dd/src/helper.php

<?php

if (!function_exists('dd')) {
    function dd()
    {
        $args = func_get_args();
        call_user_func_array('dump', $args);
        die();
    }
}

if (!function_exists('d')) {
    function d()
    {
        $args = func_get_args();
        call_user_func_array('dump', $args);
    }
}

Koskoca dd komutunun kaynak kodu bu kadar mı? Tabi ki hayır. Devasa Symfony kütüphanesinin bir helperı bu aslında. Laravel kendi platformunda bir çok Symfony elementini barındırıyor ve bazı komutları kendi yapısınla uyumlu olması açısından yeniden adlandırabiliyor. larapack/dd paketinin bağımlılıklarına bakarsak bunu gözlemleyebiliriz.

Larapack/dd paketi bağımlılıkları

Laravel – dd() vs d()

Dd helper’ın kodunu incelerseniz dd komutunun yanısıra bir tane daha komut daha olduğunu göreceksiniz. Bunlar birbirinden biraz olsun farklı. Fark ise oldukça basit.

d(Array/Object $degisken); // Veriyi sadece Dump Et

dd(Array/Object $degisken); //Veriyi Dump et ve Die komutunu uygula

dd komutu kendisinden sonra çalışılması beklenen bütün emirleri durdurur. Çünkü Interpreter’a artık çalışmamasını söyler. UI testleri barındıran süreçlerde kullanılması tavsiye edilmez.