Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
09.12.2024
No categories

Fábricas do Laravel: Criando dados de teste realistas com padrões de fábrica do Laravel

Fábricas de Laravel no AlexHost VPS: teste como um profissional

Por que as fábricas do Laravel na AlexHost? As fábricas do Laravel são o seu atalho para gerar dados de teste realistas, facilitando o desenvolvimento e o teste do seu aplicativo. Em conjunto com a hospedagem VPS da AlexHost – completacom acesso à raiz, velocidade SSD e segurança incrível – você tem o playground perfeito para criar e testar aplicativos Laravel. Este guia o orienta na criação e no uso de fábricas para obter dados de teste rapidamente, garantindo que seu aplicativo esteja pronto para a produção.

O que são fábricas no Laravel?

As fábricas no Laravel são classes que definem um plano para criar instâncias de modelo. Elas são particularmente úteis para gerar dados de teste falsos ou para alimentar bancos de dados com dados originais. Usando fábricas, você pode criar uma ou várias instâncias de seus modelos, cada uma com atributos exclusivos.

As fábricas usam o Faker, uma biblioteca PHP para gerar dados falsos, como nomes, endereços, e-mails e outros, para que os dados pareçam realistas.

Pré-requisitos

  • Laravel 9 ou posterior.
  • Conhecimento básico dos modelos Eloquent e da estrutura de banco de dados do Laravel.
  • Conexão com um banco de dados configurado em seu arquivo .env.

Etapa 1: criar uma fábrica de modelos

No Laravel 8 e posterior, as fábricas são definidas como classes. Você pode criar uma nova fábrica usando o comando artisan:

php artisan make:factory UserFactory

Isso criará um novo arquivo de fábrica no diretório database/factories chamado UserFactory.php.

Etapa 2: Definir a fábrica

Abra o arquivo UserFactory.php localizado em database/factories:


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

Explicação

  • $model: Indica para qual modelo do Eloquent essa fábrica se destina.
  • definition(): Esse método retorna uma matriz de atributos que definem o modelo. Ele usa a instância do Faker ($this->faker) para gerar dados aleatórios para cada atributo.
  • name: usa faker->name para gerar um nome realista.
  • email: usa faker->unique()->safeEmail para gerar um endereço de e-mail exclusivo.
  • password: define uma senha padrão usando a função bcrypt().
  • remember_token: Gera uma string aleatória para o campo remember_token.

Essa definição de fábrica criará credenciais de usuário realistas com um e-mail exclusivo e nomes aleatórios.

Etapa 3: Use fábricas para criar instâncias de modelo

Você pode usar a fábrica para criar instâncias únicas ou múltiplas de um modelo. Aqui estão alguns exemplos:

3.1. Criação de um único usuário

Para criar uma única instância de um usuário em um teste ou semeador, use o método create:

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

Isso cria um usuário no banco de dados com os atributos definidos na fábrica.

3.2. Criar vários usuários

Para criar várias instâncias de usuários:

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

Isso cria 10 registros de usuários no banco de dados.

3.3. Criar instância sem salvar (método Make)

Se você quiser criar uma instância sem salvá-la no banco de dados, use o método make:

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

Isso criará um objeto do modelo User sem salvá-lo no banco de dados.

Etapa 4: Personalizar os estados de fábrica

Os estados permitem definir diferentes versões da fábrica, o que pode ser útil para criar usuários com diferentes funções ou status.

4.1. Definir um estado

Você pode definir estados na classe de fábrica:

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

Esse estado de administrador pode ser usado para criar usuários com o atributo is_admin definido como true.

4.2. Usando o estado

Para usar o estado de administrador ao criar usuários:

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

Isso criará um usuário com o atributo is_admin definido como true.

Etapa 5: usar fábricas em testes

As fábricas são particularmente poderosas ao escrever testes. Elas permitem que você crie rapidamente dados de teste e se concentre na lógica que está testando.

5.1. Crie dados de teste em um caso de teste

Veja a seguir um exemplo de uso de uma fábrica em um teste:

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

Esse teste cria um usuário e, em seguida, verifica se ele existe na tabela de usuários com o e-mail especificado.

Etapa 6: preencher o banco de dados com fábricas

As fábricas também podem ser usadas nos semeadores de banco de dados para preencher as tabelas de dados de amostra.

6.1. Criação de um semeador

Crie um semeador usando o comando artisan:

php artisan make:seeder UserSeeder

Abra o arquivo UserSeeder.php em database/seeders e use a fábrica para gerar usuários:


}
}

Esse semeador criará 50 usuários usando a fábrica de usuários.

6.2. Iniciando o semeador

Inicie o semeador usando:

php artisan db:seed --class=UserSeeder

Esse comando preenche a tabela de usuários com 50 registros de usuários aleatórios.

Etapa 7: uso de conexões em fábricas

Se você tiver modelos com links, como User e Post, poderá criar fábricas que criam dados vinculados:

7.1. Definir conexões

Em PostFactory.php:

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

Essa definição garante que, quando uma postagem é criada, um usuário é gerado automaticamente usando a fábrica de usuários.

7.2. Criação de uma postagem com um usuário associado

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

Isso criará um post com um usuário associado a ele.

Conclusão: Fábricas AlexHost = Nirvana de testes

As fábricas do Laravel tornam os dados de teste muito fáceis, e o VPS da AlexHost dá ao seu aplicativo Laravel a velocidade e o controle para brilhar. De usuários individuais a relacionamentos complexos, as fábricas simplificam os testes e a propagação. Implemente em seu VPS, execute php artisan db:seed e veja seu aplicativo ganhar vida. Precisa de ajuda? A AlexHost está com você – codifique, teste, conquiste!

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills

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