Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills
09.12.2024
No categories

Laravel Fabrikaları: Laravel Fabrika Kalıpları ile Gerçekçi Test Verileri Oluşturma

AlexHost VPS’de Laravel Fabrikaları: Bir Profesyonel Gibi Test Edin

Neden AlexHost’ta Laravel fabrikaları? Laravel fabrikaları, gerçekçi test verileri oluşturmak için kısayolunuzdur ve uygulama geliştirmenizi ve test etmenizi kolaylaştırır. AlexHost’unkök erişimi, SSD hızı ve inanılmaz güvenliğe sahip VPS hostingiile birlikte Laravel uygulamalarını oluşturmak ve test etmek için mükemmel bir oyun alanına sahip olursunuz. Bu kılavuz, uygulamanızın üretime hazır olmasını sağlayarak test verilerini hızlı bir şekilde hazırlamak için fabrikalar oluşturma ve kullanma konusunda size yol gösterir.

Laravel’de fabrikalar nedir?

Laravel’deki fabrikalar, model örnekleri oluşturmak için bir plan tanımlayan sınıflardır. Özellikle sahte test verileri oluşturmak veya veritabanlarını orijinal verilerle beslemek için kullanışlıdırlar. Fabrikaları kullanarak, modellerinizin her biri benzersiz niteliklere sahip tekli veya çoklu örneklerini oluşturabilirsiniz.

Fabrikalar, verilerin gerçekçi görünmesini sağlamak amacıyla isimler, adresler, e-postalar ve daha fazlası gibi sahte veriler oluşturmak için bir PHP kütüphanesi olan Faker’ı kullanır.

Ön Koşullar

  • Laravel 9 veya üstü.
  • Eloquent modelleri ve Laravel veritabanı yapısı hakkında temel bilgi.
  • .env dosyanızda yapılandırılmış bir veritabanına bağlantı.

Adım 1: Bir model fabrikası oluşturun

Laravel 8 ve sonrasında, fabrikalar sınıf olarak tanımlanır. Artisan komutunu kullanarak yeni bir fabrika oluşturabilirsiniz:

php artisan make:factory UserFactory

Bu, veritabanı/factories dizininde UserFactory.php adında yeni bir fabrika dosyası oluşturacaktır.

Adım 2: Fabrikayı tanımlayın

Database/factories içinde bulunan UserFactory.php dosyasını açın:


'email' => $this->faker->unique()->safeEmail,
'email_verified_at' => now(),
'password' => bcrypt('password'), // or Hash::make('password')
'remember_token' => Str::random(10),
];}}

Açıklama

  • $model: Bu fabrikanın hangi Eloquent modeli için olduğunu belirtir.
  • definition(): Bu yöntem, modeli tanımlayan bir öznitelik dizisi döndürür. Her öznitelik için rastgele veri üretmek üzere Faker örneğini ($this->faker) kullanır.
  • name: Gerçekçi bir isim oluşturmak için faker->name kullanır.
  • email: benzersiz bir e-posta adresi oluşturmak için faker->unique()->safeEmail kullanır.
  • password: bcrypt() fonksiyonunu kullanarak varsayılan bir şifre belirler.
  • remember_token: Remember_token alanı için rastgele bir dize oluşturur.

Bu fabrika tanımı, benzersiz bir e-posta ve rastgele adlarla gerçekçi kullanıcı kimlik bilgileri oluşturacaktır.

Adım 3: Model örnekleri oluşturmak için fabrikaları kullanın

Fabrikayı bir modelin tekli veya çoklu örneklerini oluşturmak için kullanabilirsiniz. İşte bazı örnekler:

3.1. Tek bir kullanıcı oluşturma

Bir test veya seeder’da tek bir kullanıcı örneği oluşturmak için create yöntemini kullanın:

$user = \App\Models\User::factory()->create();

Bu, veritabanında fabrikada tanımlanan niteliklere sahip bir kullanıcı oluşturur.

3.2. Birden fazla kullanıcı oluşturma

Birden fazla kullanıcı örneği oluşturmak için:

$users = \App\Models\User::factory()->count(10)->create();

Bu, veritabanında 10 kullanıcı kaydı oluşturur.

3.3. Kaydetmeden örnek oluşturma (Make yöntemi)

Bir örneği veritabanına kaydetmeden oluşturmak istiyorsanız make yöntemini kullanın:

$user = \App\Models\User::factory()->make();

Bu, veritabanına kaydetmeden bir Kullanıcı modeli nesnesi oluşturacaktır.

Adım 4: Fabrika durumlarını özelleştirin

Durumlar, fabrikanın farklı sürümlerini tanımlamanıza olanak tanır; bu da farklı rollere veya durumlara sahip kullanıcılar oluşturmak için yararlı olabilir.

4.1. Bir durum tanımlayın

Durumları fabrika sınıfı içinde tanımlayabilirsiniz:

public function admin()
{
return $this->state(function (array $attributes) {
return [
'is_admin' => true,
];
});
}

Bu yönetici durumu, is_admin özniteliği true olarak ayarlanmış kullanıcılar oluşturmak için kullanılabilir.

4.2. Eyaleti kullanma

Kullanıcı oluştururken yönetici durumunu kullanmak için:

$adminUser = \App\Models\User::factory()->admin()->create();

Bu, is_admin özniteliği true olarak ayarlanmış bir kullanıcı oluşturacaktır.

Adım 5: Testlerde fabrikaları kullanma

Fabrikalar özellikle test yazarken çok güçlüdür. Hızlı bir şekilde test verileri oluşturmanızı ve test ettiğiniz mantığa odaklanmanızı sağlarlar.

5.1. Bir test senaryosunda test verileri oluşturma

İşte bir testte fabrika kullanımına bir örnek:

public function test_users_can_be_created()
{
$user = \App\Models\User::factory()->create();$this->assertDatabaseHas('users', [
'email' => $user->email,
]);
}

Bu test bir kullanıcı oluşturur ve ardından belirtilen e-posta ile kullanıcılar tablosunda var olup olmadığını kontrol eder.

Adım 6: Veritabanını fabrikalarla doldurun

Fabrikalar, örnek veri tablolarını doldurmak için veritabanı tohumlayıcılarında da kullanılabilir.

6.1. Bir ekleyici oluşturma

Artisan komutunu kullanarak bir seeder oluşturun:

php artisan make:seeder UserSeeder

UserSeeder.php dosyasını database/seeders içinde açın ve kullanıcıları oluşturmak için fabrikayı kullanın:


}
}

Bu ekleyici, Kullanıcı fabrikasını kullanarak 50 kullanıcı oluşturacaktır.

6.2. Mibzerin Çalıştırılması

Ekme makinesini kullanarak başlatın:

php artisan db:seed --class=UserSeeder

Bu komut, users tablosunu 50 rastgele kullanıcı kaydıyla doldurur.

Adım 7: Fabrikalarda bağlantıları kullanma

User ve Post gibi bağlantıları olan modelleriniz varsa, bağlantılı veriler oluşturan fabrikalar oluşturabilirsiniz:

7.1. Bağlantıları tanımlayın

PostFactory.php içinde:

public function definition()
{
return [
'user_id' => \App\Models\User::factory(),
'title' => $this->faker->sentence,
'body' => $this->faker->paragraph,
];
}

Bu tanım, bir gönderi oluşturulduğunda, kullanıcı fabrikası kullanılarak otomatik olarak bir kullanıcı oluşturulmasını sağlar.

7.2. İlişkili bir kullanıcı ile gönderi oluşturma

$post = \App\Models\Post::factory()->create();

Bu, kendisiyle ilişkilendirilmiş bir kullanıcı ile bir gönderi oluşturacaktır.

Sonuç: Fabrikalar AlexHost = Test Nirvana

Laravel fabrikaları test verilerini çok kolay hale getirir ve AlexHost’un VPS’si Laravel uygulamanıza parlaması için hız ve kontrol sağlar. Tek kullanıcılardan karmaşık ilişkilere kadar, fabrikalar test ve tohumlamayı kolaylaştırır. VPS’inize dağıtın, php artisan db:seed’i çalıştırın ve uygulamanızın canlanmasını izleyin. Yardıma mı ihtiyacınız var? AlexHost yanınızda-kodlayın, test edin, fethedin!

Tüm Barındırma hizmetlerimizde becerilerinizi test edin ve % 15 indirim kazanın!

Ödeme sırasında kodu kullanın:

Skills

Похожие записи не найдены.