PHP は、Web サイト開発で広く使用されている人気のあるサーバーサイド スクリプト言語です。その中でもフォーラムは古典的なアプリケーションシナリオであるため、PHP をベースとしたフォーラムシステムの開発は非常に有意義な作業です。この記事では、開発者がすぐに始められるように、php フォーラム開発の手順を紹介します。
優れたフォーラムには、投稿、返信、ユーザーなどの機能が必要です。したがって、実装をサポートするデータベース モデルを設計する必要があります。これらの機能の。単純なモデル設計は次のとおりです。
そのうち、ユーザー テーブルは基本的なユーザー情報を保存し、投稿と返信テーブルを関連付ける関連フィールドがあります。投稿テーブルは、タイトル、コンテンツ、作成者、その他の情報を含むトピック投稿を保存するために使用され、返信テーブルは使用されます。返信内容を保存します。返信した人、返信の内容、返信のトピック投稿などの情報が含まれます。
データベース モデルを設計した後、対応するテーブル構造を作成する必要があります。 MySQL データベースでは、SQL ステートメントを使用してテーブル構造を作成できます。
便宜上、まず phpMyAdmin で forum
という名前のデータベースを作成し、その中に 3 つのテーブルを作成します。具体的な SQL ステートメントは次のとおりです。
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `email` varchar(255) NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `posts` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `title` varchar(255) NOT NULL, `content` text NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), CONSTRAINT `posts_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE `replies` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_id` int(11) NOT NULL, `post_id` int(11) NOT NULL, `content` text NOT NULL, `created_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP, `updated_at` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `user_id` (`user_id`), KEY `post_id` (`post_id`), CONSTRAINT `replies_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `replies_ibfk_2` FOREIGN KEY (`post_id`) REFERENCES `posts` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
php コードを作成する前に、まずデータベース接続情報を設定する必要があります。ここでは、このタスクを実行するために簡単な構成ファイルを使用します。具体的なコードは次のとおりです。
// config.php define('DB_HOST', 'localhost'); define('DB_USERNAME', 'root'); define('DB_PASSWORD', ''); define('DB_NAME', 'forum');
このファイルは、データベースのホスト アドレス、ユーザー名とパスワード、データベース名など、データベース接続に必要な情報を定義します。
php コードを書く前に、必要な依存ライブラリをインストールする必要があります。ここでは、composer を使用して依存ライブラリのインストールを完了します。具体的なプロセスは次のとおりです:
composer init
と入力して、新しい Composer プロジェクトを初期化します。 composer.json
ファイルを編集し、次の依存関係を追加します。 { "require": { "slim/slim": "^4.5", "illuminate/database": "^8.0" } }
ここでは、ルーティング管理に 2 つの依存関係ライブラリ、slim と、illuminate/database を使用します。およびデータベース呼び出し。このうちslimはRESTfulインターフェースを簡単に実装できる軽量なphpフレームワークで、illuminate/databaseはLaravelフレームワークで使用されるデータベースORMモジュールで、非常にリッチなデータベース操作方法を提供します。
composer install
を実行して、依存関係をインストールします。 依存ライブラリのインストールが完了したら、php コードの記述を開始できます。ここでは、フォーラムからのさまざまなリクエストを処理するために、index.php
という名前を付けます。
<?php require 'vendor/autoload.php'; require 'config.php'; use Illuminate\Database\Capsule\Manager as Capsule; use Slim\Factory\AppFactory; use Slim\Views\PhpRenderer; $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => DB_HOST, 'username' => DB_USERNAME, 'password' => DB_PASSWORD, 'database' => DB_NAME, 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', ]); $capsule->setAsGlobal(); $capsule->bootEloquent(); $renderer = new PhpRenderer('templates/'); $app = AppFactory::create(); $app->get('/', function ($request, $response, $args) use ($renderer) { $posts = Capsule::table('posts') ->select('posts.id', 'posts.title', 'posts.content', 'posts.created_at', 'users.id as user_id', 'users.username') ->leftJoin('users', 'posts.user_id', '=', 'users.id') ->orderBy('posts.created_at', 'desc') ->get(); return $renderer->render($response, 'index.php', [ 'posts' => $posts ]); }); $app->run();
コードでは、スリム フレームワークを使用してルーティング リクエストを処理し、illuminate/database を使用してデータベースを処理します。
サーバー側のコードが完了したら、フロントエンド ページのコードも記述する必要があります。ここでは、ブートストラップ フレームワークを使用してこれを実現できます。具体的なコードは次のとおりです。
<!DOCTYPE html> <html> <head> <title>论坛首页</title> <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/5.0.0-alpha2/css/bootstrap.min.css"> <script src="https://cdn.bootcss.com/bootstrap/5.0.0-alpha2/js/bootstrap.bundle.min.js"></script> </head> <body> <nav class="navbar navbar-expand-md navbar-dark bg-dark"> <div class="container"> <a href="#" class="navbar-brand">论坛首页</a> </div> </nav> <div class="container mt-3"> <table class="table table-hover"> <thead> <tr> <th>#</th> <th>标题</th> <th>作者</th> <th>发布时间</th> <th>操作</th> </tr> </thead> <tbody> <?php foreach ($posts as $post): ?> <tr> <td><?= $post->id ?></td> <td><?= $post->title ?></td> <td><?= $post->username ?></td> <td><?= $post->created_at ?></td> <td> <a href="#" class="btn btn-sm btn-outline-secondary">编辑</a> <a href="#" class="btn btn-sm btn-outline-danger">删除</a> </td> </tr> <?php endforeach ?> </tbody> </table> </div> </body> </html>
phpとフロントエンドコードの記述が完了したら、いよいよ動作をテストします。フォーラムの。まず、ターミナルまたはコマンド ラインで次のコマンドを実行してサーバーを起動する必要があります:
php -S localhost:8080 index.php
次に、ブラウザに http://localhost:8080
と入力してフォーラムにアクセスします。ホームページ。
これで、PHP をベースとしたフォーラム システムの開発が完了しました。このプロセスでは、大多数の開発者の役に立つことを願って、データベース モデルの設計、データベース スクリプトの作成、PHP コードの作成、フロントエンド ページの設計の完全なプロセスを紹介しました。
以上がPHPフォーラムの開発手順の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。