まえがき
スマホから投稿のテストも兼ねて
ちょっとした、空き時間を見つけては
追記していく用のデータベースクラスの作成。
なお、クラスやらOOPやらがてんでダメな奴が作成するので
見ても参考にはならないと思われる…ww
やりたいこと
例えば、
class DB {
public function __construct() {
// DB接続うんたらかんたら…
}
public function insert() {
// insertうんたらかんたら…
}
public function update() {
// updateうんたらかんたら…
}
・
・
}
んな感じでクラスを作成しておき、
DB::insert() とか $this->_db->update() で
呼び出して使う…みたいなことがしたい、と。
で、なるべくの希望として
『クラスを使うときは"簡単"に使いたい!!』
というわけで、ボチボチ作ってみる。
データベースクラスの作成
DBクラス
class DB {
private static _instance = null;
Private _pdo;
public function __construct() {
// 便宜上の色々
$dsn = "mysql:dbname=【データベース名】;host=【ホスト名】;charset=utf8";
$user = "【ユーザー名】";
$pass = "【パスワード】";
try {
$this->_pdo = new PDO($dsn, $user, $pass);
} catch (PDOException $e) {
die($e->getMessage());
}
}
// *1
public static function getInstance() {
if(!isset(self::$_instance)) {
self::$_instance = new DB();
}
return self::$_instance;
}
public function insert() {}
public function update() {}
public function delete() {}
}
プロパティ部分では、外部からアクセスできないように
"private"で指定する部分がほとんどだと思われる。(今後も
コンストラクタを"private"にすることで、インスタンス生成を
制限しておく。呼び出しは(*1)のメソッド getInstance() を
通らなければ、インスタンスの生成はできない。
(こういう形が俗に言う"シングルトンパターン"??)
あとがき
なんとなーく…というか
ぼんやーり…というか
薄ーっすら…というか。