FuelPHP で掲示板制作

FuelPHP で掲示板を制作します。
* PHP開発環境がない場合は「LAMP環境構築(CentOS8 Minimal, Apache2.4, MySQL8.0, PHP7.4)」で開発環境を作成してください
C:\www\fuel.sunabird.local\ に FuelPHP 環境を構築します


練習1: FuelPHP インストール

C:\www\ ディレクトリに「fuel.sunabird.local」ディレクトリを作成
下記 URL から最新の FuelPHP ZIP ファイルをダウンロード
http://fuelphp.jp/docs/1.9/installation/download.html
ダウンロードした ZIP ファイルを解凍し、「fuel」ディレクトリと「public」ディレクトリと「oil」ファイルを C:\www\fuel.sunabird.local\ ディレクトリに格納

下記 FuelPHP 設定ファイルを修正
C:\www\fuel.sunabird.local\fuel\app\config\config.php
(修正)
'language' => 'ja',
'locale' => 'ja_JP.UTF-8',
'default_timezone' => 'Asia/Tokyo',

サーバーで Virtual Host を設定
# vi /etc/httpd/conf.d/fuel.sunabird.local.conf (全て追加)
<VirtualHost *:80>
ServerName fuel.sunabird.local
DocumentRoot /var/www/fuel.sunabird.local/public/

<Directory "/var/www/fuel.sunabird.local/public/">

AllowOverride All

<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</Directory>
</VirtualHost>

Apache 再起動
# systemctl restart httpd

Windows の hosts ファイルに追加
C:\Windows\System32\drivers\etc\hosts ファイルを開く
(追加)
192.168.56.108 fuel.sunabird.local ネットワークにプロキシサーバーを利用している場合:インターネットオプション > 接続 > LANの設定 > 詳細設定 > プロキシの除外設定 に「fuel.sunabird.local」を追加
ブラウザからアクセスします
http://fuel.sunabird.local


「Welcome!」が表示されれば FuelPHP インストール完了

練習2: FuelPHP と DB 連携

サーバーに FuelPHP 用の DB とテーブルを作成します

MySQLにログイン
# mysql -u root -p
DB fueldb を作成
mysql> CREATE DATABASE fueldb;
DB fueldb に移動
mysql> use fueldb;

t_comment テーブルを作成
mysql> CREATE TABLE t_comment(id SERIAL PRIMARY KEY, name VARCHAR(20), comment TEXT NOT NULL, registed TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP);
サンプルデータを登録
mysql> INSERT INTO t_comment (name, comment) VALUES ('kato', 'comment1');
mysql> INSERT INTO t_comment (name, comment) VALUES ('tajima', 'comment2');

サンプルデータを確認
mysql> SELECT * FROM t_comment;
+----+--------+----------+---------------------+
| id | name   | comment  | registed
+----+--------+----------+---------------------+
| 1  | kato   | comment1 | 2019-04-02 17:05:16
| 2  | tajima | comment2 | 2019-04-02 17:05:28
+----+--------+----------+---------------------+

FuelPHP DB 設定ファイルに DB 接続情報を設定
DB 設定ファイル
C:\www\fuel.sunabird.local\fuel\app\config\development\db.php
(変更)
return array(
    'default' => array(
    'connection' => array(
        'dsn' => 'mysql:host=localhost;dbname=fueldb',
        'username' => 'root',
        'password' => 'Sunabird000000-',
        ),
    ),
);

テーブルデータ操作用の Model クラスファイルを作成します
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\classes\model\tcomment.php

掲示板用の Controller クラスファイルを作成します
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\classes\controller\board.php

掲示板表示用の View ファイルを作成します
(新規作成)
C:\www\fuel.sunabird.local\fuel\app\views\board\index.php

ブラウザからアクセスします
http://fuel.sunabird.local/board/index


課題

課題1:入力項目「お名前」、「コメント」を追加、DBに登録 課題2:入力項目「お名前」、「コメント」が未入力の場合、エラーメッセージ表示(DBに登録しない)