Создаем на PHP простую админ-панель для блога с хранением данных в MongoDB

Сегодня мы создадим простую административную панель на PHP с использованием MongoDB для хранения данных нашего блога.

Шаг 1: Установка и настройка MongoDB

Прежде всего, нам нужно установить MongoDB на наш сервер. Вы можете скачать последнюю версию с официального сайта MongoDB. После установки запустите сервис MongoDB.

Шаг 2: Создание базы данных и коллекции

Давайте создадим базу данных «blog» и коллекцию «posts». Это будет наша основная коллекция, где будут храниться записи блога.
$ mongo
MongoDB shell version v4.4.0
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("8a6d3e9b-97f0-4cce-9190-36722073045d") }
MongoDB server version: 4.4.0

> use blog
switched to db blog

> db.createCollection("posts")
{ "acknowledged" : true, "insertedId" : ObjectId("5ea52e4782b19a7a18671162"), "insertedCount" : 1 }

Шаг 3: Создание модели данных

Теперь давайте определим модель данных для наших записей блога. Мы будем использовать класс «Post» для представления каждой записи.
class Post
{
    public $id;
    public $title;
    public $content;
    public $createdAt;

    public function __construct($title, $content)
    {
        $this->title = $title;
        $this->content = $content;
        $this->createdAt = new DateTime();
    }
}

Шаг 4: Создание административной панели

Далее, мы создадим административную панель, которая позволит нам добавлять, редактировать и удалять записи блога. Для этого мы напишем несколько функций на PHP.
function addPost($title, $content)
{
    global $mongo;

    $post = new Post($title, $content);
    $collection = new MongoDB\Collection($mongo, 'blog');
    $result = $collection->posts->insertOne([
        '_id' => new MongoDB\BSON\ObjectID(),
        'title' => $post->title,
        'content' => $post->content,
        'createdAt' => $post->createdAt->format('Y-m-d H:i:s')
    ]);

    return $result['acknowledged'] ? $result['insertedId'] : null;
}

function editPost($id, $title, $content)
{
    global $mongo;

    $collection = new MongoDB\Collection($mongo, 'blog');
    $filter = ['_id' => (new MongoDB\BSON\ObjectID($id))];
    $update = [
        '$set' => [
            'title' => $title,
            'content' => $content
        ]
    ];
    $options = ['upsert' => false, 'multi' => false];

    $result = $collection->posts->updateOne($filter, $update, $options);

    return $result['modifiedCount'] > 0;
}

function deletePost($id)
{
    global $mongo;

    $collection = new MongoDB\Collection($mongo, 'blog');
    $filter = ['_id' => (new MongoDB\BSON\ObjectID($id))];
    $options = ['single' => true];

    $result = $collection->posts->deleteOne($filter, $options);

    return $result['deletedCount'] > 0;
}

Шаг 5: Добавление пользовательского интерфейса

Теперь, когда у нас есть все необходимые функции, мы можем создать простой пользовательский интерфейс для работы с нашей административной панелью. Для примера возьмем добавление записи.
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Admin Panel</title>
</head>
<body>
<form action="addPost.php" method="post">
    <label for="title">Title:</label>
    <input type="text" id="title" name="title" required>
    <label for="content">Content:</label>
    <textarea id="content" name="content" required></textarea>
    <button type="submit">Add Post</button>
</form>
</body>
</html>

Шаг 6: Запуск административной панели

После того как мы создали все необходимые файлы, мы можем запустить нашу административную панель. Перейдите на страницу «addPost.php» и начните добавлять, редактировать и удалять записи вашего блога.
Поделиться:

Похожие публикации

Тут ничего нет

Нет комментариев