Laravel Helpers

Laravel Helpers Methodları

Laravel’de işlerimizi kolaylaştırmak için kullanabileceğimiz bir tanım paketler mevcut. Bu paketler içerisinde yer alan Helpers adı altında toplanmış bazı sınıflar mevcut. Bu sınıfları ve içinde yer alan diziler ve objeler için kullanılanlardan bahsedeceğim.

Dizinler & Objeler
       
       Bu başlık altında Diziler ve Objelerle alakalı yapacağımız işlemleri kolaylaştıracak metotlardan bahsedeceğim.
 
Arr::accessible Arr::get Arr::set
Arr::add Arr::has Arr::shuffle
Arr::collapse Arr::hasAny Arr::sort
Arr::crossJoin Arr::isAssoc Arr::sortRecursive
Arr::divide Arr::last Arr::where
Arr::dot Arr::only Arr::wrap
Arr::except Arr::pluck data_fill
Arr::exists Arr::prepend data_get
Arr::first Arr::pull data_set
Arr::flatten Arr::query head
Arr::forget Arr::random last


      Arr:: sınıfı altında yer alan metotlardan faydalanmak istiyorsak bu metotların bulunduğu sınıfı projemize dahil etmemiz gerektiğini unutmayalım. Aşağıdaki kod ile bunu sayfanın en üstünde tanımlıyoruz.
use Illuminate\Support\Arr;

A-) Dizinler & Objeler
A.1-) Arr::accessible()
      Belirtilen dize ve ya objeye erişilebilirliği kontrol eder. True ve ya False dönderir.
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
 
A.2-) Arr::add()
      Diziye değer eklemede kullanılır. Eğer anahtar mevcutsa değeri günceller.
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]

A.3-) Arr::collapse()
      Birden fazla diziyi birleştirerek yeni bir dizi oluşturmasını sağlar.
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]

A.4-) Arr::crossJoin()
      Dizinleri aralarında permütasyon kurallarına göre sırasıyla eşleştirir ve yeni bir dizine ekler.
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'],
    ]
*/

A.5-) Arr::divide()
      Belirtilen bir diziyi anahtar ve değerine göre iki farklı dizi oluşturur, içine atar.
use Illuminate\Support\Arr;

[$keys, $values] = Arr::divide(['name' => 'Desk']);
// $keys: ['name']
// $values: ['Desk']

A.6-) Arr::dot()
      Belirtilen çoklu bir dizide istenilen bir veriyi çekmek için kullanılır. İstenilen veri konumu yazılırken noktalı(.) bir formatta yazılır. Örnekten daha iyi anlayacaksınız.
use Illuminate\Support\Arr;

$array = ['products' => ['desk' => ['price' => 100]]];
$flattened = Arr::dot($array);
// ['products.desk.price' => 100]

A.7-) Arr::except()
      Dizi içinde yer alan anahtar değerine göre anahtar ve değeri siler, kalanlarla yeni bir dizi oluşturur.
use Illuminate\Support\Arr;

$array = ['name' => 'Desk', 'price' => 100];
$filtered = Arr::except($array, ['price']);
// ['name' => 'Desk']
.
A.8-) Arr::exists()
      Dizide girilen anahtarın olup olmadığını kontrol eder. True ve ya False değer döner.
use Illuminate\Support\Arr;

$array = ['name' => 'John Doe', 'age' => 17];
$exists = Arr::exists($array, 'name');
// true
$exists = Arr::exists($array, 'salary');
// false
.
A.9-) Arr::first()
      Dizideki ilk değeri dönderir. İlk değeri belirli bir mantıksal sınamaya göre belirleyebilir ve fonksiyon ile istenilen işlemleri yapabilirsiniz.
use Illuminate\Support\Arr;

$array = [100, 200, 300];
$first = Arr::first($array, function ($value, $key) {
        return $value >= 150;
});
// 200
.
A.10-) Arr::flatten()
      Çok boyuttan oluşan bir dizini tek boyutlu bir dizine çevmek için kullanılır.
use Illuminate\Support\Arr;

$array = ['name' => 'Joe', 'languages' => ['PHP', 'Ruby']];
$flattened = Arr::flatten($array);
// ['Joe', 'PHP', 'Ruby']
.
A.11-) Arr::forget()
      Noktalı gösterimle belirtilen konumdaki dizini siler Mevcut dizinden çıkartır.
use Illuminate\Support\Arr;

$array = ['products' => ['desk' => ['price' => 100]]];
Arr::forget($array, 'products.desk');
// ['products' => []]
.
A.12-) Arr::get()
      Noktalı gösterimle belirtilen konumdaki diziye ait değeri dönderir.
use Illuminate\Support\Arr;

$array = ['products' => ['desk' => ['price' => 100]]];
$price = Arr::get($array, 'products.desk.price');
// 100
      Eğer anahtar ve ya dizinin olmama ihtimaline karşın Varsayılan değer tanımlanabilir.
use Illuminate\Support\Arr;

$discount = Arr::get($array, 'products.desk.discount', 0);
// 0
.
A.13-) Arr::has()
      Çoklu bir dizide noktalı gösterimle belirtilen verilerin olup olmadığını kontrol eder. Birden fazla değer aynı anda kontrol edilebilir. True ve ya False döner.
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
.
A.14-) Arr::hasAny()
      Çoklu bir dizide noktalı gösterimle belirtilen verilerin olup olmadığını kontrol eder. Arr::has'den farkı herhangi bir tanesi olması durumunda sonuç True döner.
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
.
A.15-) Arr::isAssoc()
      Bir dizi içeriğinin ilişkilendirilmiş şekilde tanımlanıp tanımlanmadığını kontrol eder.True ve ya False döner.
use Illuminate\Support\Arr;

$isAssoc = Arr::isAssoc(['product' => ['name' => 'Desk', 'price' => 100]]);
// true
$isAssoc = Arr::isAssoc([1, 2, 3]);
// false
.
A.16-) Arr::last()
      Dizideki son değeri dönderir. Son değeri belirli bir mantıksal sınamaya göre belirleyebilir ve fonksiyon ile istenilen işlemleri yapabilirsiniz.
use Illuminate\Support\Arr;

$array = [100, 200, 300, 110];
$last = Arr::last($array, function ($value, $key) {
    return $value >= 150;
});
// 300
      İsterseniz varsayılan değer tanımlayabilirsiniz.
use Illuminate\Support\Arr;

$last = Arr::last($array, $callback, $default);
A.17-) Arr::only()
      Dizideki yalnızca belirtilen anahtarlar göre anahtar ve değerlerini dönderir.
use Illuminate\Support\Arr;

$array = ['name' => 'Desk', 'price' => 100, 'orders' => 10];
$slice = Arr::only($array, ['name', 'price']);
// ['name' => 'Desk', 'price' => 100]
.
A.18-) Arr::pluck()
      Belirtilen anahtara ait tüm değerleri numaralı bir dizi halinde dönderir.
use Illuminate\Support\Arr;

$array = [
    ['developer' => ['id' => 1, 'name' => 'Taylor']],
    ['developer' => ['id' => 2, 'name' => 'Abigail']],
];
$names = Arr::pluck($array, 'developer.name');
// ['Taylor', 'Abigail']
      Aşağıdaki gibide kullanabilirsiniz.
use Illuminate\Support\Arr;

$names = Arr::pluck($array, 'developer.name', 'developer.id');
// [1 => 'Taylor', 2 => 'Abigail']
.
A.19-) Arr::prepend()
      Dizinin başına belirtilen değeri ekler.Dilerseniz anahtarınıda belirtebilirsiniz.
use Illuminate\Support\Arr;

$array = ['one', 'two', 'three', 'four'];
$array = Arr::prepend($array, 'zero');
// ['zero', 'one', 'two', 'three', 'four']
      Aşağıdaki gibide kullanabilirsiniz.
use Illuminate\Support\Arr;

$array = ['price' => 100];
$array = Arr::prepend($array, 'Desk', 'name');
// ['name' => 'Desk', 'price' => 100]
.
A.20-) Arr::pull()
      Dizinde anahtarını tanımladığınız değer çiftini siler Geri kalanı size dönderir.
use Illuminate\Support\Arr;

$array = ['name' => 'Desk', 'price' => 100];
$name = Arr::pull($array, 'name');
// $name: Desk
// $array: ['price' => 100]
    İsterseniz varsayılan değer tanımlayabilirsiniz. Anahtar bulunmazsa bu değeri dönderir.
use Illuminate\Support\Arr;

$last = Arr::pull($array, $key, $default);

A.21-) Arr::query()
      Belirtilen bir diziyi sorgu haline çevirir. Örnekte daha iyi anlayacaksınız.
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
.
A.22-) Arr::random()
      Belirtilen bir dizi içinden rastgele değer ve ya değerler döndermenizi sağlar.
use Illuminate\Support\Arr;

$array = [1, 2, 3, 4, 5];
$random = Arr::random($array);
// 4 - (retrieved randomly)
    İsterseniz birden fazla random değer dönderebilirsiniz.
use Illuminate\Support\Arr;

$items = Arr::random($array, 2);
// [2, 5] - (retrieved randomly)

A.23-) Arr::set()
      Dizin içerisinde noktalı gösterim ile belirtilen anahtara ait değeri düzenlemenizi sağlar.
use Illuminate\Support\Arr;

$array = ['products' => ['desk' => ['price' => 100]]];
Arr::set($array, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
.
A.24-) Arr::shuffle()
      Dizi içinde yer alan değerlerin sıralarını karıştırmak için kullanılır.
use Illuminate\Support\Arr;

$array = Arr::shuffle([1, 2, 3, 4, 5]);
// [3, 2, 5, 1, 4] - (generated randomly)
.
A.25-) Arr::sort()
      Dizi içinde yer alan değer çifterini sıralamak için kullanılır. Anahtar ve değerleri ayırmaz. Sıralama küçükten büyüğe doğrudur.
use Illuminate\Support\Arr;

$array = ['Desk', 'Table', 'Chair'];
$sorted = Arr::sort($array);
// ['Chair', 'Desk', 'Table'] 
      İsterseniz aynı anahtara sahip değerleride sıralatabilirsiniz.
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'],
    ]
*/
.
A.26-) Arr::sortRecursive()
      Çok boyutlu bir dizinde sıralama işlemi yaptırmak için kullanılır.Dizideki değerleri küçükten büyüğe doğru sıralar.
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'],
    ]
*/
.
A.27-) Arr::where()
      Belirtilen bir dizide filtreleme yapmak için kullanılır.Filtreleme kuralı fonksiyon içinde tanımlanır. Örnekten çok daha iyi anlayacaksınız.
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']
.
A.28-) Arr::wrap()
      Belirtilen bir değeri dizi içerisine aktarır.Dizi içerisinde mevcut olan tüm veriyi siler ve sadece istenilen veriyi ekler.
use Illuminate\Support\Arr;

$string = 'Laravel';
$array = Arr::wrap($string);
// ['Laravel']
.
A.29-) data_fill()
      Dizide ve ya nesnede noktalı gösterimle belirtilen konumda veri yoksa belirtilen veriyi eklemeyi sağlar.
$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]]]
      Ek olarak yıldız(*) karakteri joker karakteri temsil eder.
$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],
            ],
    ]
*/
.
A.30-) data_get()
      Dizi ve ya nesnede noktalı olarak gösterilen konumdaki verinin değerini dönderir. Eğer değer yoksa varsayılan değerde tanımlanabilir.
$data = ['products' => ['desk' => ['price' => 100]]];
$price = data_get($data, 'products.desk.price',$default);
// 100
      Ek olarak yıldız(*) karakteri joker karakteri temsil eder.
$data = [
    'product-one' => ['name' => 'Desk 1', 'price' => 100],
    'product-two' => ['name' => 'Desk 2', 'price' => 150],
];
data_get($data, '*.name');
// ['Desk 1', 'Desk 2'];

A.31-) data_set()
      Dizide ve ya nesnede noktalı olarak gösterilen konumdaki veriyi düzenlemek için kullanılır.
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200);
// ['products' => ['desk' => ['price' => 200]]]
      Ek olarak yıldız(*) karakteri joker karakteri temsil eder.
$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],
        ],
    ]
*/
      Sadece değer yoksa bu değeri düzenlemek ve ya eklemek istiyorsanız bu şekilde kullanabilirsiniz.
$data = ['products' => ['desk' => ['price' => 100]]];
data_set($data, 'products.desk.price', 200, false);
// ['products' => ['desk' => ['price' => 100]]]
.
A.32-) head()
      Belirtilen bir dizide dizinin ilk eleman değerini dönderir. Diziyi bozmaz.
$array = [100, 200, 300];
$first = head($array);
// 100
.
A.33-) last()
      Belirtilen dizinin yalnızca son eleman değerini dönderir. Diziyi bozmaz.
$array = [100, 200, 300];
$last = last($array);
// 300
Makaleyi buradan beğenebilirsiniz.

Yorumlar (1)

  • Misafir

    testyorum

    2020-08-08 18:37:50

    testyorum

    Sil

Yorum Yap