0

単一の Web サイトに対して DB 接続を使用して PDO クラスを作成しましたが、実際には複数の Web サイトで同じクラスを使用する必要があります。

クラスで何かを変更すると、変更は1つだけでなくすべてのWebサイトに反映されますが、これら2つのWebサイトは引き続き2つの別々のDBを使用します

私の問題を解決する方法、またはどこから調べればよいかアドバイスをいただけませんか

例えば

core\ classes \ product.class.php

Web_1 
-databass.class.php for Web_1 using the core\classes\

Web_2
-databass.class.php for Web_2 using the core\classes\

これは私のコードの一部です

ファイル dbConfig.php

<?php 
define('DB_TYPE', 'mysql');
define('USER_NAME', 'test');
define('USER_PASSWORD', '********');
define('HOSTNAME', 'localhost');
define('DB_NAME', 'test_db');?>

ファイルdatabase.class.php

<?php
include_once($_SERVER['DOCUMENT_ROOT'] . 'dbConfig.php');
class DatabasePDO
{
    private static $_instance = array();
    static function getInstance ($dbName = DB_NAME)
    {
        if (! array_key_exists($dbName, self::$_instance)) {
            $dsn = DB_TYPE . ":host=" . HOSTNAME . ";dbname=" . $dbName;
            try {
                self::$_instance[$dbName] = new PDO($dsn, USER_NAME, USER_PASSWORD);
                self::$_instance[$dbName]->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
            } catch (PDOException $e) {
                echo "echo "Error!: " . $e->getMessage();
                die();
            }
        }
        return self::$_instance[$dbName];
    }
}?>

ファイル product.class.php

<?php
require_once "databass.class.php";

class products_CLS
{
    private $pid = null;
    private $title  = '';

    private static $dbConn = null;

    public function __construct ()
    {
        self::initializeConnection();
    }

    private static function initializeConnection ()
    {
        if (is_null(self::$dbConn)) {
            self::$dbConn = DatabasePDO::getInstance();
        }
    }

    /**
     * @return the $productid
     */
    public function getProductId()
    {
        return $this->pid;
    }   

    /**
     * @return the $producttitle
     */
    public function getProductTitle()
    {
        return $this->title;
    }
}?>
4

0 に答える 0