O que é Eloquent ORM e para que serve?
\n\nEloquent ORM (Object-Relational Mapping) é uma biblioteca embutida para trabalhar com bancos de dados no framework PHP Laravel. Ela fornece uma maneira elegante e intuitiva de interagir com bancos de dados relacionais (MySQL, PostgreSQL, SQLite, SQL Server) usando o padrão Active Record.
\n\nPara que serve o Eloquent?
\n- \n
- Abstração de SQL: Em vez de escrever consultas SQL brutas, você trabalha com objetos PHP. Isso torna o código mais limpo, legível e seguro. \n
- Active Record: Cada modelo Eloquent representa uma tabela no banco de dados. Uma instância do modelo é uma linha nessa tabela. Você pode ler, modificar e salvar dados apenas trabalhando com as propriedades do objeto. \n
- Proteção contra injeção de SQL: O Eloquent usa PDO (PHP Data Objects) com consultas preparadas, que escapam automaticamente a entrada do usuário. \n
- Relacionamentos: Defina e use facilmente relações entre tabelas (um para um, um para muitos, muitos para muitos, etc.). \n
- Coleções: Os resultados das consultas são retornados como coleções — objetos poderosos que fornecem muitos métodos úteis para processamento de dados (map, filter, reduce, pluck, etc.). \n
- Mutators e Accessors: Permitem transformar dados ao salvar (mutators) ou ao ler (accessors) do banco de dados. \n
Eloquent não é apenas uma biblioteca, é uma parte fundamental do ecossistema Laravel. Compreender o Eloquent é necessário para o desenvolvimento eficaz neste framework.
\n\nInstalação
\n\nO Eloquent ORM é instalado automaticamente junto com o framework Laravel. Se você estiver criando um novo projeto Laravel, o Eloquent já está pronto para uso.
\n\nInstalação via Composer (se você estiver usando Laravel):
\ncomposer create-project laravel/laravel example-app\ncd example-app\n\nInstalação do Eloquent sem Laravel (Standalone):
\nVocê pode usar o Eloquent fora do Laravel, por exemplo, em seu próprio projeto. Para isso, você precisará instalar o pacote illuminate/database e configurar a conexão com o banco de dados.
composer require illuminate/database\ncomposer require illuminate/events // Para trabalhar com eventos de modelos (opcional)\n\nExemplo de configuração de conexão (standalone):
\n<?php\nrequire 'vendor/autoload.php';\n\nuse Illuminate\\Database\\Capsule\\Manager as Capsule;\n\n$capsule = new Capsule;\n\n$capsule->addConnection([\n 'driver' => 'mysql',\n 'host' => 'localhost',\n 'database' => 'your_database',\n 'username' => 'your_username',\n 'password' => 'your_password',\n 'charset' => 'utf8',\n 'collation' => 'utf8_unicode_ci',\n 'prefix' => '',\n]);\n\n// Configurar a instância global do Eloquent\n$capsule->setAsGlobal();\n\n// Iniciar o Eloquent\n$capsule->bootEloquent();\n\n\nInício rápido com exemplo de código
\n\nSuponha que temos uma tabela users no banco de dados. Vamos criar um modelo Eloquent para trabalhar com ela.
Passo 1: Criando o modelo
\nNo Laravel, os modelos geralmente são armazenados em app/Models. Vamos criar o arquivo User.php:
<?php\n\nnamespace App\\Models;\n\nuse Illuminate\\Database\\Eloquent\\Model;\n\nclass User extends Model\n{\n // O Eloquent automaticamente associará este modelo à tabela 'users'\n // O nome da tabela é determinado pelo nome da classe no plural (snake_case)\n // Se a tabela tiver outro nome, especifique a propriedade $table\n // protected $table = 'my_users';\n\n // Especifique quais campos podem ser preenchidos em massa (para proteção contra mass-assignment)\n protected $fillable = ['name', 'email', 'password'];\n}\ Também na biblioteca
Configuração de aplicações em Go: melhores práticas e ferramentas
Registro em Rust: visão geral das melhores bibliotecas e ferramentas
prometheus/client_golang para Go: guia completo com exemplos práticos