CRUD com PHP

o que é CRUD?

CRUD é um acrônimo para os verbos em inglês: Create, Read, Update e Delete, que se referem a operações básicas de manipulação de dados no backend da aplicação. O "create" refere-se a inserção de dados no banco, o "read" à leitura/recuperação desses dados do banco, o "update" a atualização de dados registrados e o "delete" à deleção destes dados. Esses verbos CRUD estão diretamente ligados aos verbos HTTP (GET, POST, PUT e DELETE), que são usados para definir o tipo de ação que o cliente (navegador ou outra aplicação) deseja realizar no servidor. O client (navegador) envia uma requisição ao servidor, contendo algum verbo http no cabeçalho, o backend processa essa requisição (realiza alguma ação) e envia uma resposta HTTP ao cliente, indicando o resultado desta operação.

Na comunicação HTTP, cada requisição vem acompanhada de um status code que indica ao cliente como a operação ocorreu. Por exemplo, "201" (Created) é retornado quando um recurso é criado com sucesso, enquanto "200" (OK) confirma o sucesso da requisição. Já "204" (No Content) significa que o servidor processou a requisição e não há conteúdo a retornar. Esses códigos ajudam o client (navegador ou outra aplicação) a entender se a ação foi concluída corretamente ou se houve erro.

Nos capítulos anteriores vimos como inserir dados no banco com PDO, isso já configuraria o que chamamos de "Create" no CRUD, agora iremos abordar os demais verbos neste capítulo.

exemplo fictício

function create() {
    echo "Inserindo dados no banco";
    http_response_code(201); //status code 201: Created
}

function read() {
    echo "Recuperando dados do banco";
    http_response_code(200); //status code 200: OK
}

function update() {
    echo "Atualizando dados no banco";
    http_response_code(200); //status code 200: OK
}

function delete() {
    echo "Deletando dados no banco";
    http_response_code(204); //status code 204: No Content
}

//A variável global "$_SERVER" recupera o método da requisição (GET, POST, PUT, DELETE)
$method = $_SERVER['REQUEST_METHOD'];

//Roteamento básico para simular cada operação CRUD
switch ($method) {
    case 'POST':
        create();
        break;
    case 'GET':
        read();
        break;
    case 'PUT':
        update();
        break;
    case 'DELETE':
        delete();
        break;
}

🚨 No t07-mvc abordaremos na prática os conceitos de um sistema de roteamento em um projeto real