Movatterモバイル変換


[0]ホーム

URL:


Skip to content
DEV Community
Log in Create account

DEV Community

Lithe
Lithe

Posted on • Edited on

     

Criando uma Aplicação CRUD com PHP, MySQL e Lithe

Este guia passo a passo irá te ensinar a construir uma aplicação CRUD utilizando PHP, MySQL e o framework Lithe. Abordaremos desde a configuração do banco de dados até a implementação de controladores para gerenciar operações CRUD.


Configuração do Ambiente

Antes de iniciar, assegure-se de ter o Composer instalado em sua máquina. O Composer é uma ferramenta essencial para gerenciar dependências em projetos PHP. Caso não tenha o Composer, você pode baixá-lo e instalá-lo a partir dosite oficial do Composer.

Criando um Novo Projeto Lithe

Para criar um novo projeto com o framework Lithe, abra o terminal e execute o seguinte comando:

composer create-project lithephp/lithephp crud-app
Enter fullscreen modeExit fullscreen mode

Isso criará um diretório chamadocrud-app, onde todos os arquivos do projeto Lithe serão instalados. Após a instalação, navegue para o diretório do projeto:

cdcrud-app
Enter fullscreen modeExit fullscreen mode

Configurando o Banco de Dados

Agora, você precisa configurar a conexão com o banco de dados. Localize o arquivo.env na raiz do projeto. Este arquivo armazena as variáveis de ambiente que o Lithe usará durante a execução.

No arquivo.env, defina suas variáveis de conexão ao banco de dados conforme o exemplo abaixo:

DB_CONNECTION_METHOD=mysqliDB_CONNECTION=mysqlDB_HOST=localhostDB_NAME=litheDB_USERNAME=rootDB_PASSWORD=DB_SHOULD_INITIATE=true
Enter fullscreen modeExit fullscreen mode

Detalhes das Variáveis

  • DB_CONNECTION_METHOD: Método de conexão (neste caso,mysqli).
  • DB_CONNECTION: Tipo de banco de dados (por exemplo,mysql).
  • DB_HOST: Endereço do servidor de banco de dados (normalmentelocalhost para desenvolvimento local).
  • DB_NAME: Nome do banco de dados que será utilizado (por exemplo,lithe).
  • DB_USERNAME: Nome de usuário para acessar o banco de dados (padrãoroot para muitas configurações locais).
  • DB_PASSWORD: Senha do usuário do banco de dados (deixe em branco se não houver).
  • DB_SHOULD_INITIATE: Define se o banco de dados deve ser iniciado automaticamente ao iniciar a aplicação.

Após configurar o arquivo.env, você estará pronto para prosseguir com a criação da aplicação CRUD.

Com essas variáveis, o Lithe se conecta automaticamente ao banco de dados. Isso é feito pelo arquivo de configuração emsrc/database/config/database.php, que contém o seguinte método:

useLithe\Database\ManagerasDB;returnDB::initialize();
Enter fullscreen modeExit fullscreen mode

Esse método retorna a conexão do banco de dados.


Criando Migrações

Após configurar o banco de dados, o próximo passo é criar a estrutura do banco de dados. Para isso, utilizamos o comandomake:migration do Lithe. Execute o seguinte comando para criar uma migração:

php line make:migration CreateUsersTable
Enter fullscreen modeExit fullscreen mode

Isso criará um arquivo de migração dentro do diretóriosrc/database/migrations/, com um nome no formatoYYYY_MM_DD_HHMMSS_CreateUsersTable.php.

A migração criada terá a seguinte estrutura:

returnnewclass{/**     * Executa as migrações.     *     * @param mysqli $db     * @return void     */publicfunctionup(mysqli$db):void{$query="            CREATE TABLE IF NOT EXISTS users (                id INT(11) AUTO_INCREMENT PRIMARY KEY,                name VARCHAR(255) NOT NULL,                email VARCHAR(255) UNIQUE NOT NULL,                created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,                updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP            )        ";$db->query($query);}/**     * Reverte as migrações.     *     * @param mysqli $db     * @return void     */publicfunctiondown(mysqli$db):void{$query="DROP TABLE IF EXISTS users";$db->query($query);}};
Enter fullscreen modeExit fullscreen mode

Após definir a estrutura da migração, execute o comando a seguir para aplicar as migrações e criar a tabela no banco de dados:

php line migrate
Enter fullscreen modeExit fullscreen mode

Criando um Modelo

Para gerar um modelo que interaja com a tabelausers, execute o seguinte comando:

php line make:model User
Enter fullscreen modeExit fullscreen mode

Isso criará um arquivo emsrc/models, que servirá como base para manipular os dados do usuário. O modelo gerado se parecerá com isso:

namespaceApp\Models;useLithe\Database\ManagerasDB;classUser{// Aqui vai a lógica do modelo}
Enter fullscreen modeExit fullscreen mode

Métodos CRUD no Modelo

Adicione métodos estáticos para realizar operações CRUD usandomysqli.

Create (Criar)

Para inserir um novo usuário, adicione este método:

publicstaticfunctioncreate(array$data):bool{$stmt=DB::connection()->prepare("INSERT INTO users (name, email) VALUES (?, ?)");$stmt->bind_param('ss',$data['name'],$data['email']);return$stmt->execute();}
Enter fullscreen modeExit fullscreen mode

Read (Ler)

Para buscar usuários, implemente os métodos a seguir:

publicstaticfunctionall():array{returnDB::connection()->query("SELECT * FROM users")->fetch_all(MYSQLI_ASSOC);}publicstaticfunctionfind(int$id):?array{$stmt=DB::connection()->prepare("SELECT * FROM users WHERE id = ?");$stmt->bind_param('i',$id);$stmt->execute();return$stmt->get_result()->fetch_assoc()?:null;}
Enter fullscreen modeExit fullscreen mode

Update (Atualizar)

Para atualizar um usuário existente:

publicstaticfunctionupdate(int$id,array$data):bool{$stmt=DB::connection()->prepare("UPDATE users SET name = ?, email = ? WHERE id = ?");$stmt->bind_param('ssi',$data['name'],$data['email'],$id);return$stmt->execute();}
Enter fullscreen modeExit fullscreen mode

Delete (Excluir)

E para excluir um usuário:

publicstaticfunctiondelete(int$id):bool{$stmt=DB::connection()->prepare("DELETE FROM users WHERE id = ?");$stmt->bind_param('i',$id);return$stmt->execute();}
Enter fullscreen modeExit fullscreen mode

Controladores Básicos

Para gerar rapidamente um novo controlador, execute o comandoline make:controller. Todos os controladores gerados são armazenados no diretóriosrc/http/controllers:

php line make:controller UserController
Enter fullscreen modeExit fullscreen mode

Um controlador pode ter qualquer número de métodos públicos que responderão às requisições HTTP. Veja um exemplo de implementação básica para a tabelausers:

namespaceApp\Http\Controllers;useApp\Models\User;useLithe\Http\Request;useLithe\Http\Response;classUserController{/**     * Mostra o perfil de um usuário específico.     */publicfunctionshow(Request$req,Response$res){$id=$req->param('id');return$res->view('user.profile',['user'=>User::find($id)]);}/**     * Cria um novo usuário.     */publicfunctionstore(Request$req,Response$res){$data=(array)$req->body();// Obtém todos os dados do pedidoUser::create($data);return$res->redirect('/users');// Redireciona para a lista de usuários}/**     * Atualiza um usuário existente.     */publicfunctionupdate(Request$req,Response$res){$id=$req->param('id');$data=(array)$req->body();// Obtém todos os dados do pedidoUser::update($id,$data);return$res->redirect('/users');// Redireciona para a lista de usuários}/**     * Exclui um usuário.     */publicfunctiondelete(Request$req,Response$res){$id=$req->param('id');User::delete($id);return$res->redirect('/users');// Redireciona para a lista de usuários}}
Enter fullscreen modeExit fullscreen mode

Adicionando Visualizações

Para exibir as informações dos usuários, crie arquivos de visualização no diretóriosrc/views. Um exemplo de arquivo pode seruser/profile.php, onde você irá construir a interface de exibição dos dados do usuário.


Iniciando a Aplicação

Para começar a desenvolver com o Lithe, você precisa criar uma nova instância da classeLithe\App no arquivosrc/App.php e definir as rotas.

useApp\Http\Controllers\UserController;$app=new\Lithe\App;$app->get('/users/:id',[UserController::class,'show']);$app->post('/users',[UserController::class,'store']);$app->put('/users/:id',[UserController::class,'update']);$app->delete('/users/:id',[UserController::class,'delete']);
Enter fullscreen modeExit fullscreen mode

Rodando a Aplicação

Após definir as rotas, é fundamental chamar o métodolisten() para iniciar o servidor. Você pode fazer isso no mesmo arquivosrc/App.php:

$app->listen();
Enter fullscreen modeExit fullscreen mode

E para rodar a aplicação, utilize o comando:

php line serve
Enter fullscreen modeExit fullscreen mode

Isso inicializa um servidor local que você pode acessar emhttp://localhost:8000.

Agora que sua aplicação CRUD está configurada e em execução, você poderá acessar as rotas de usuários diretamente no seu navegador. Para visualizar a lista de usuários ou interagir com as funções que você implementou, basta acessar:

http://localhost:8000/users
Enter fullscreen modeExit fullscreen mode

Essa rota permitirá que você visualize todos os usuários cadastrados e realize operações como criar, atualizar ou excluir registros conforme as funcionalidades que você implementou nos controladores.


Conclusão

Com esses passos, você já possui uma aplicação CRUD funcional usando PHP, MySQL e o frameworkLithe. Agora, você pode expandir essa base para adicionar mais recursos e funcionalidades conforme sua necessidade.

Para mais informações sobre como utilizar oLithe, consulte adocumentação oficial do Lithe. A documentação abrange desde a configuração inicial até recursos avançados, ajudando você a aproveitar ao máximo o potencial do framework.

Divirta-se programando!

Top comments(2)

Subscribe
pic
Create template

Templates let you quickly answer FAQs or store snippets for re-use.

Dismiss
CollapseExpand
 
mariocoxe0 profile image
Mário Coxe
  • Joined

Very cool 👌🏿

CollapseExpand
 
lithephp profile image
Lithe
Dynamic and adaptable PHP framework.
  • Pronouns
    LithePHP
  • Joined

Obrigado! Fico feliz que você tenha achado legal! 😊👌🏿

Are you sure you want to hide this comment? It will become hidden in your post, but will still be visible via the comment'spermalink.

For further actions, you may consider blocking this person and/orreporting abuse

Dynamic and adaptable PHP framework.
  • Pronouns
    LithePHP
  • Joined

More fromLithe

DEV Community

We're a place where coders share, stay up-to-date and grow their careers.

Log in Create account

[8]ページ先頭

©2009-2025 Movatter.jp