CRUD para gerenciar currículos na Medeiros Corporation Inc. Abaixo, segue o guia passo a passo para a implementação desse sistema:
library-system ├── src │ ├── Controller │ │ ├── ResumeController.php │ ├── Model │ │ ├── Resume.php │ ├── View │ │ ├── ResumeView.php │ ├── Service │ │ ├── ResumeService.php ├── public │ └── index.php ├── config │ └── database.php ├── vendor └── composer.json
src/Model/Resume.php
<?php namespace LibrarySystem\Model; class Resume { private $id_resume; private $collaborator_id; private $education; private $experience; private $skills; // Getters and Setters public function getIdResume() { return $this->id_resume; } public function setIdResume($id) { $this->id_resume = (int)$id; // Sanitização } public function getCollaboratorId() { return $this->collaborator_id; } public function setCollaboratorId($id) { $this->collaborator_id = (int)$id; // Sanitização } public function getEducation() { return $this->education; } public function setEducation($education) { $this->education = htmlspecialchars(strip_tags($education)); // Sanitização } public function getExperience() { return $this->experience; } public function setExperience($experience) { $this->experience = htmlspecialchars(strip_tags($experience)); // Sanitização } public function getSkills() { return $this->skills; } public function setSkills($skills) { $this->skills = htmlspecialchars(strip_tags($skills)); // Sanitização } }
src/View/PositionView.php
html /html
src/Controller/ResumeController.php
<?php namespace LibrarySystem\Controller; use LibrarySystem\Model\Resume; use LibrarySystem\Service\ResumeService; class ResumeController { private $resumeService; public function __construct($dbConnection) { $this->resumeService = new ResumeService($dbConnection); } public function create() { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $resume = new Resume(); $resume->setCollaboratorId($_POST['collaborator_id']); $resume->setEducation($_POST['education']); $resume->setExperience($_POST['experience']); $resume->setSkills($_POST['skills']); $this->resumeService->createResume($resume); header('Location: /resumes'); } } public function read() { $resumes = $this->resumeService->getAllResumes(); include '../src/View/ResumeView.php'; } public function update($id) { if ($_SERVER['REQUEST_METHOD'] === 'POST') { $resume = new Resume(); $resume->setIdResume($id); $resume->setCollaboratorId($_POST['collaborator_id']); $resume->setEducation($_POST['education']); $resume->setExperience($_POST['experience']); $resume->setSkills($_POST['skills']); $this->resumeService->updateResume($resume); header('Location: /resumes'); } else { $resume = $this->resumeService->getResume($id); include '../src/View/ResumeView.php'; } } public function delete($id) { $this->resumeService->deleteResume($id); header('Location: /resumes'); } }
src/Service/ResumeService.php
<?php namespace LibrarySystem\Service; use LibrarySystem\Model\Resume; class ResumeService { private $db; public function __construct($dbConnection) { $this->db = $dbConnection; } public function createResume(Resume $resume) { $stmt = $this->db->prepare("INSERT INTO resumes (collaborator_id, education, experience, skills) VALUES (:collaborator_id, :education, :experience, :skills)"); $stmt->bindValue(':collaborator_id', $resume->getCollaboratorId()); $stmt->bindValue(':education', $resume->getEducation()); $stmt->bindValue(':experience', $resume->getExperience()); $stmt->bindValue(':skills', $resume->getSkills()); return $stmt->execute(); } public function getAllResumes() { $stmt = $this->db->query("SELECT * FROM resumes"); return $stmt->fetchAll(\PDO::FETCH_ASSOC); } public function getResume($id) { $stmt = $this->db->prepare("SELECT * FROM resumes WHERE id_resume = :id"); $stmt->bindValue(':id', (int)$id); $stmt->execute(); return $stmt->fetch(\PDO::FETCH_ASSOC); } public function updateResume(Resume $resume) { $stmt = $this->db->prepare("UPDATE resumes SET collaborator_id = :collaborator_id, education = :education, experience = :experience, skills = :skills WHERE id_resume = :id"); $stmt->bindValue(':collaborator_id', $resume->getCollaboratorId()); $stmt->bindValue(':education', $resume->getEducation()); $stmt->bindValue(':experience', $resume->getExperience()); $stmt->bindValue(':skills', $resume->getSkills()); $stmt->bindValue(':id', $resume->getIdResume()); return $stmt->execute(); } public function deleteResume($id) { $stmt = $this->db->prepare("DELETE FROM resumes WHERE id_resume = :id"); $stmt->bindValue(':id', (int)$id); return $stmt->execute(); } }
Verifique se a conexão com o banco de dados está configurada corretamente em config/database.php.
Implemente o roteamento em public/index.php para chamar os métodos corretos do controlador de acordo com as requisições.
Este CRUD para gerenciamento de currículos segue as melhores práticas de sanitização, encapsulamento e um design orientado a objetos. Adapte e expanda conforme necessário para atender às necessidades específicas da Medeiros Corporation Inc.