سیستم مدیریت وظایف در PHP: راهنمای کامل و جامع


در دنیای امروز، مدیریت کارها و وظایف روزمره، چه در محیط‌های کاری و چه در پروژه‌های شخصی، اهمیت فوق‌العاده‌ای یافته است. بر همین اساس، توسعه سیستم‌های مدیریت وظایف (Task Management System) به منظور سازماندهی بهتر، افزایش بهره‌وری و کاهش استرس، به یکی از نیازهای اساسی در حوزه برنامه‌نویسی وب تبدیل شده است. یکی از روش‌های محبوب و کاربردی برای پیاده‌سازی این سیستم‌ها، استفاده از زبان برنامه‌نویسی PHP است. در ادامه، ما به صورت جامع و کامل درباره اسکریپت سیستم مدیریت وظایف در PHP، کد منبع و نحوه ساخت آن توضیح خواهیم داد.

مفاهیم پایه و اهداف سیستم مدیریت وظایف




قبل از شروع به برنامه‌نویسی، باید نکاتی اساسی درباره اهداف و وظایف اصلی این سیستم در نظر گرفته شود. سیستم مدیریت وظایف باید قابلیت‌های زیر را دارا باشد:
- ایجاد وظایف جدید: کاربر باید بتواند وظایف جدید را ثبت کند.

- ویرایش وظایف موجود: امکان تغییر جزئیات وظایف، مانند عنوان، توضیحات، تاریخ انجام و وضعیت.

- حذف وظایف: حذف وظایف غیرضروری یا انجام‌شده.

- نمایش لیست وظایف: نمایش وظایف بر اساس حالت‌های مختلف، مانند وظایف انجام‌نشده، در حال انجام یا انجام‌شده.

- مرتب‌سازی وظایف: بر اساس تاریخ، اولویت، یا وضعیت.

- مدیریت کاربران (در صورت نیاز): چندکاربره بودن سیستم، و تعیین وظایف برای کاربران خاص.

ساختار پایگاه داده در سیستم مدیریت وظایف




برای پیاده‌سازی این سیستم، نیاز به طراحی یک پایگاه داده مناسب است. در اینجا، یک ساختار ساده و کارا را معرفی می‌کنیم:
sql  

CREATE TABLE tasks (

id INT AUTO_INCREMENT PRIMARY KEY,

title VARCHAR(255) NOT NULL,

description TEXT,

due_date DATE,

status ENUM('pending', 'in_progress', 'completed') DEFAULT 'pending',

created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,

updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP

);


در این ساختار، هر وظیفه با شناسه یکتا، عنوان، توضیحات، تاریخ انجام، وضعیت، و زمان‌های ثبت و بروزرسانی مشخص می‌شود. این طراحی، امکان افزودن ویژگی‌های جدید را به سادگی فراهم می‌کند.

توسعه اسکریپت PHP برای مدیریت وظایف




در ادامه، نحوه ساخت اسکریپت PHP برای انجام عملیات CRUD (ایجاد، خواندن، بروزرسانی، حذف) بر روی وظایف را شرح می‌دهیم. در اینجا، فرض بر این است که شما با مفاهیم پایه‌ای PHP و پایگاه داده MySQL آشنا هستید.

اتصال به پایگاه داده




ابتدا، یک فایل جداگانه برای اتصال به پایگاه داده باید ساخته شود، مثلا `db.php`:
php  

<?php

$host = 'localhost';

$db_user = 'root';

$db_password = '';

$db_name = 'task_management';
try {

$pdo = new PDO("mysql:host=$host;dbname=$db_name;charset=utf8mb4", $db_user, $db_password);

$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch (PDOException $e) {

die("Connection failed: " . $e->getMessage());

}

?>


این کد، اتصال امن و پایداری را به پایگاه داده فراهم می‌کند و خطاهای احتمالی را مدیریت می‌کند.

نمایش لیست وظایف




برای نمایش وظایف، یک فایل `index.php` ساخته می‌شود که وظایف را از پایگاه داده دریافت و در قالب جدول نمایش می‌دهد:
php  

<?php

include 'db.php';
$stmt = $pdo->prepare("SELECT * FROM tasks ORDER BY due_date ASC");

$stmt->execute();

$tasks = $stmt->fetchAll(PDO::FETCH_ASSOC);

?>
<!DOCTYPE html>

<html>

<head>

<title>مدیریت وظایف</title>

</head>

<body>

<h1>لیست وظایف</h1>

<a href="create.php">ایجاد وظیفه جدید</a>

<table border="1" cellpadding="10" cellspacing="0">

<tr>

<th>شناسه</th>

<th>عنوان</th>

<th>توضیحات</th>

<th>تاریخ انجام</th>

<th>وضعیت</th>

<th>عملیات</th>

</tr>

<?php foreach ($tasks as $task): ?>

<tr>

<td><?= $task['id'] ?></td>

<td><?= htmlspecialchars($task['title']) ?></td>

<td><?= htmlspecialchars($task['description']) ?></td>

<td><?= $task['due_date'] ?></td>

<td><?= $task['status'] ?></td>

<td>

<a href="edit.php?id=<?= $task['id'] ?>">ویرایش</a> |

<a href="delete.php?id=<?= $task['id'] ?>">حذف</a>

</td>

</tr>

<?php endforeach; ?>

</table>

</body>

</html>


این صفحه، تمامی وظایف را در قالب جدولی منظم نمایش می‌دهد، و لینک‌هایی برای ویرایش و حذف هر وظیفه قرار داده است.

افزودن وظیفه جدید




برای افزودن وظیفه، صفحه `create.php` طراحی می‌شود که فرم ثبت وظیفه جدید را نشان می‌دهد و پس از ارسال، داده‌ها را در پایگاه وارد می‌کند:
php  

<?php

include 'db.php';
if ($_SERVER['REQUEST_METHOD'] == 'POST') {

$title = $_POST['title'];

$description = $_POST['description'];

$due_date = $_POST['due_date'];

$status = $_POST['status'];
$stmt = $pdo->prepare("INSERT INTO tasks (title, description, due_date, status) VALUES (?, ?, ?, ?)");

... ← ادامه مطلب در magicfile.ir