000.構造とセットアップ
PHPBaseは
PHPを階層的に記述することで、各階層の役割を明確にし、
コーディング規則の指針になるよう設計された
DBアクセス支援ライブラリです。
ライブラリ自体のサイズは非常にミニマムなため、インクルードされるPHPファイルも、大変少なくなっています。
commonディレクトリ
PHPBaseは
commonディレクトリに配置されます。このディレクトリ自体はどこにあっても問題はありません。ただ、
各ページのPHPファイルから
相対的パスで見える位置にある必要があります。
具体的に、サンプルコードの階層を以下に紹介します。
- sources
- common
- config.php
- contents_db.php
- contents_func.php
- controls.php
- controls_ex.php
- function.php
- libs.php
- pdointerface.php
このうち赤くなっているファイルは
環境に合わせてあるいは
DBの内容に合わせて各利用者が記述します。
この章では、簡単な例として
都道府県管理を紹介します。
DB接続
DB接続に必要な情報は
config.phpに記述します。
以下はダウンロードした状態の
config.phpです。
<?php
/*!
@file config.php
@brief DB接続変数と、エンコードの定義
@copyright Copyright (c) 2021 Yamanoi Yasushi.
*/
////////////////////////////////////
//実行ブロック
//データベースマネージメント
define('DB_RDBMS','mysql');
//MySQLの場合のキャラ設定にSET NAMESを使用するかどうか
define('DB_MYSQL_SET_NAMES','1');
//ホスト(ローカルの場合は'localhost'と記述)
define('DB_HOST','********');
//ユーザー
define('DB_USER','********');
//パスワード
define('DB_PASS','********');
//DB名
define('DB_NAME','********');
//DBのキャラセット
define('DB_CHARSET','utf8');
//PHPのキャラセット
define('PHP_CHARSET','UTF-8');
この赤くなっている部分を環境に合わせて書き換えする必要があります。
コメントにあるように
ホスト、ユーザー、パスワード、DB名を記述します。
サイトのルートからのパスは、これらのPHPがアップするディレクトリが
http://www.hoge.huga/sources/
であれば
/sources/と記述します。
SQL文によるテーブルの作成
/sql/mysql_prefecture_sql.txtファイルには
都道府県テーブルの
SQL文が記述されています。このSQL文は
MySQL特有の記述も入ってますので、ほかのDBMSで利用する場合は注意してください。
このSQL文をコマンドラインもしくは
phpMyAdminで実行してください。テーブルと47都道府県レコードが作成されます。
config.phpの設定と
SQL文によるテーブルの作成が終わったら、
/sources/ディレクトリ内をサーバーにアップします。
動作チェック
サーバーにアップしましたら、ブラウザから
/sources/index.phpにアクセスします。上記の
http://www.hoge.hugaがサイトURLであれば
http://www.hoge.huga/sources/index.php
にアクセスします。以下のような画面が無事表示されれば、まずは成功です。
図0000aa
続いて
都道府県管理をクリックします。(ほかのメニューのリンクはクリックしないでください。まだ準備ができていません。1章以降でセットアップします)
図0000a
続いて
詳細ページに移行します。どこか都道府県名のリンクをクリックしてみてください。以下の画面になります。
図0000b
ここで
都道府県名を修正して確認すると、以下のようになります。
図0000c
ここで、
更新をクリックするとレコードが更新されます。
また、一覧ページで
新規で詳細ページに移行すると以下の画面になります。
図0000d
ここで、新規に追加できます。ここでは
テスト県を追加してみます。確認の後追加してみてください。
また、一覧ページでは
削除もできます。各レコードにある
削除確認ボタンをクリックすると以下のようなダイアログが出ます。ここでは先ほど追加した
テスト県を削除してみます。
図0000e
ここで
OKをクリックすると削除されます。
このように
追加、更新、削除でできる形になっています。
この例にある
都道府県は、そう変化するものではありませんので、追加や削除機能が必要かどうかは別として、このような機能を実装できます、という例です。
また
追加をしますと、データベースの仕様として
プライマリキーは欠番になります。固定的なマスタテーブルの場合、このような
欠番は一般的にはバグのもとにもなるので初期化しておきましょう。
SQL文によるテーブルの作成の方法で再初期化します。