【第1回】PHPで自作GroupWareを作ろう|開発準備とプロジェクト構造の理解
このチュートリアルシリーズでは、実務レベルで使えるグループウェアを、フレームワークを使わずにPHPとJavaScriptで一から構築する方法を徹底的に解説していきます。
第1回では、「開発環境の準備」「プロジェクトの初期構造」「MVCモデルの理解」「データベース設計」など、基盤のすべてを解説します。
🧩 全10回構成チュートリアル(予定構成)
回 | タイトル | 内容概要 |
---|---|---|
第1回 | 開発準備とプロジェクト構造の理解 | PHP・MySQL環境構築/MVC構造/ルーター/ベースController・DB接続作成 |
第2回 | ログイン・認証機能の実装 | ユーザー登録・ログイン処理/セッション管理/ログインガードの仕組み |
第3回 | 組織管理機能の作成 | 部署階層のCRUD処理/一覧・追加・編集・削除画面の作成 |
第4回 | ユーザー管理機能の作成 | 管理者によるユーザー登録・編集/所属部署割当/権限管理 |
第5回 | スケジュール機能の実装 | 日/週/月カレンダー表示/スケジュール作成・表示・共有/ドラッグ操作対応 |
第6回 | メッセージ機能の実装 | チャット風UIでの送受信/グループメッセージ/既読管理/ファイル添付対応 |
第7回 | ワークフロー機能の実装 | 承認ルート定義/申請→承認プロセス管理/テンプレート作成 |
第8回 | WEBデータベース機能の作成 | 自由にテーブル設計→入力画面生成/フィルター検索/CSV出力 |
第9回 | タスク管理(カンバン)機能の実装 | ボード・リスト・カードの管理/ステータス移動/進捗率表示 |
第10回 | ホーム画面と通知・設定管理 | ダッシュボード実装/通知機能/メール通知処理/各種設定項目管理 |
本記事を読んで実行すれば
- PHP開発環境を構築できる
- 自作MVC構成の考え方が理解できる
- GroupWareアプリの全体像が掴める
また、初学者でも迷わず進められるよう、すべてのコマンド・コード・図解を盛り込みます。
▶ GitHub: Yuusuke9228/groupware
📌 1. 開発環境を整える
1-1. PHP・MySQL・Apacheの準備
Windowsの場合は XAMPP、Macの場合は MAMP を使うのが最も簡単です。
✅ XAMPPの導入(Windows)
- XAMPP公式サイトからインストーラーをダウンロード
- PHPバージョン 7.4 以上推奨
- ApacheとMySQLを「Start」しておく
✅ MAMPの導入(Mac)
- MAMP公式からインストール
- 設定画面で、PHPとMySQLのバージョンを確認
1-2. Gitとエディタの準備
コマンド操作に慣れるために、Git Bash
やターミナル
を使いましょう。
コードエディタはVisual Studio Codeを推奨します。
📦 2. プロジェクトをクローン&配置
2-1. GitHubからコードを取得
git clone https://github.com/Yuusuke9228/groupware.git
cd groupware
2-2. 公開ディレクトリの配置
public
フォルダをWebサーバーのルートに設定(例:htdocs/groupware/public
)
Apacheなら、httpd.conf または VirtualHost の DocumentRoot を以下のように変更:
DocumentRoot "C:/xampp/htdocs/groupware/public"
<Directory "C:/xampp/htdocs/groupware/public">
AllowOverride All
</Directory>
2-3. configファイルのコピー
cd config
cp config_sample.php config.php
cp database_sample.php database.php
中を開いて、自分のMySQLユーザー名・パスワードに合わせて設定してください。
🧠 3. MVCモデルとは?なぜ使うのか?
MVCとは以下の3つの設計要素を分離するアーキテクチャです:
- Model:データベース処理
- View:画面表示(HTML)
- Controller:画面遷移や処理の制御

メリット:
- Viewを変えてもModelはそのまま
- Controllerが処理を一元管理
- 役割が分かれ、複数人開発に強い
本プロジェクトでは自作の簡易MVC構造を使って構築されています。
📁 4. プロジェクトの構造を理解する
以下が全体構成図です:

この構成を見ながら、各ディレクトリの役割を理解していきましょう。
主要ディレクトリの解説:
Controllers/
:画面・機能別の処理Models/
:DBアクセス用クラスviews/
:HTML出力テンプレートCore/
:RouterやDB接続などアプリの中心
Routerの仕組み:
// public/index.php
require_once '../Core/Router.php';
$router = new Router();
$router->dispatch($_SERVER['REQUEST_URI']);
このように、RouterがURLを解釈して適切なControllerに処理を振り分けます。
🗃 5. データベース構築とER図
データベースは db/schema.sql
に全て記述済みです。
phpMyAdmin等で次のようにインポートします:
mysql -u root -p groupware_db < db/schema.sql

主なテーブル例:
users
:ユーザー管理organizations
:部署階層schedules
:予定管理messages
:チャット・メッセージ
🚀 6. ローカルでの動作確認
Apacheを起動後、以下にアクセスします:
http://localhost/index.php
ログイン画面が表示されれば成功です。
まだ初期ユーザーがいないので、DBに手動で登録しておきましょう。
INSERT INTO users (username, email, password, role) VALUES (
'admin', 'admin@example.com', MD5('password'), 'admin'
);
(※ セキュリティ強化のため、次回以降で bcrypt に変更します)
🧩 まとめと次回予告
- PHP + MySQL 環境を構築した
- GitHubリポジトリをクローン&配置した
- MVC構造を理解し、Router起点でアプリが起動することを確認
- データベースとER図の概要を把握
次回(第2回)はいよいよ「ログイン・認証機能の作成」に入っていきます。
初学者が最もつまづきやすいセッション管理、バリデーション、パスワードのハッシュ化をわかりやすく解説予定です。
ぜひお気に入り登録・GitHubスターをお願いします。